试验0-1通过一个简单的程序实例来说明一个程序的调试过程.docVIP

试验0-1通过一个简单的程序实例来说明一个程序的调试过程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
试验0-1通过一个简单的程序实例来说明一个程序的调试过程

实验0-1:通过一个简单的程序实例来说明一个程序的调试过程。 ORG 8000H ; 实验板开始执行的第一条指令所处的地址 LJMP MAIN ; 跳转到主程序 ORG 8030H ; 主程序开始的地址;避开中断入口地址 MAIN: CLR P3.4 ; 使口线P3.4为低电平,从而驱动蜂鸣器发声 LCALL DELAY1S ; 调用延时1S左右的延时程序,蜂鸣器发声1S左右时间 SETB P3.4 ; 使口线P3.4为高电平,从而关闭驱动蜂鸣器 LCALL DELAY1S ; 调用延时1S左右的延时程序,蜂鸣器停止发声1S左右时间 LJMP MAIN ; 跳转到主程序入口 ;-------以下是延时程序,延时约1S---------- ; 用以分隔程序,使程序清晰易懂 DELAY1S: MOV R0, #00H ; 给R0、R1和R2赋初值,在12Hz晶振时延时时间为 MOV R1, #00H ; 256(R0循环次数)×256(R1循环次数)×8(R2循 MOV R2, #08H ; 环次数)×2×10-6(DJNZ指令耗时)=1.048576 S DELAY1S1: DJNZ R0, $ ; R0单元减1,非0继续执行当前指令,“$”指当前指令地址 DJNZ R1, DELAY1S1 ; R1减1,非0跳转到标号DELAY1S1处执行 DJNZ R2, DELAY1S1 ; R2减1,非0跳转到标号DELAY1S1处执行 RET ; 延时子程序完成,返回调用处,子程序必须以“RET”指令结束 ;+++++++++++++++++++++++++++++ ; 用以分隔程序,使程序清晰易懂 END ; 程序结束,编译程序不理会END以后的内容 实验3-1:外部数据块搬移(≤256字节) 把处于程序存储器(XCODE)中从Data_TAB开始的256个字节数据传送到外部数据存储器从B000H开始的256个单元中去。 ORG 8000H ; 实验板开始执行的第一条指令所处的地址 LJMP MAIN ; 跳转到主程序 ORG 8030H ; 主程序开始的地址;避开中断入口地址 MAIN: MOV DPTR, # Data_TAB ; 使DPTR指向XCODE中的Data_TAB开始的256个字节数据 MOV P2, #0B0H ; 使P2口指向XDATA中的目的地址高8位 MOV R0, #00H ; 使R0口指向XDATA中的目的地址低8位起始地址 MOVEDATA: MOV A, #00H ; 清除累加器,以便下一条指令能准确指向XCODE中的数据 MOVC A, @A+DPTR ; 从XCODE中读取数据,请注意指令形式 MOVX @R0, A ; 把数据写到XDATA中 INC DPTR ; 修改源数据指针 INC R0 ; 修改目的数据指针 CJNE R0, #00H, MOVEDATA ; 没有送完256个数据,跳转到MOVEDATA继续送数 HALT: LJMP HALT ; 送完256个数据,在此死循环,实际程序中应为后续操作 ;++++++++以下为XCODE中的数据表++++++++ ; 用以分隔程序,使程序清晰易懂 Data_TAB: ; 常数或数据表格前用标号表示其起始地址 DB 0, 1, 2, 3, 4, 5, 6, 7 ; 立即数可以用十进制数表示,也可以用十六进制数表示, 后者有后缀“H” DB 8, 9, 0AH, 0BH, 0CH, 0DH, 0EH, 0FH ; 十六进制数中最高位数为A~F时,前面要补数字“0” DB 10H, 11H, 12H, 13H, 14H, 15H, 16H, 17H ; 十六进制数中最高位数为A~F时,前面要补数字“0” DB 18H, 19H, 1AH, 1BH, 1CH, 1DH, 1EH, 1FH ; 每行起始用伪指令“DB”定义数据,“DB”表示数据字节 DB 20H, 21H, 22H, 23H, 24H, 25H, 26H, 27H DB 28H, 29H, 2AH, 2BH, 2CH, 2DH, 2EH, 2FH DB 30H, 31H, 32H, 33H, 34H, 35H, 36H, 37H DB 38H, 39H, 3AH, 3BH, 3CH, 3DH, 3EH, 3FH DB 40H, 41H, 4

文档评论(0)

zhuwo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档