[高玉芹单片机原理与应用课件]第三章单片机汇编程序设计.ppt

[高玉芹单片机原理与应用课件]第三章单片机汇编程序设计.ppt

  1. 1、本文档共119页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[高玉芹单片机原理与应用课件]第三章单片机汇编程序设计.ppt

例3-45以下程序利用查表的方式设计4分支程序。A的内容为0~4。 ORG 0000H MOV R0, #8 MOV DPTR, #BRTAB RLA JMP @A+DPTR LEND:SJMP $ BRTAB:AJMP BR0 ;转移表 AJMP BR1 AJMP BR2 AJMP BR3 BR0: … SJMP LEND BR1: … SJMP LEND BR2: … SJMP LEND BR3: … SJMP LEND END 3.6.5 子程序设计 调用子程序的指令是ACALL和LCALL。子程序的调用需要注意以下几点: 保存与恢复寄存器:由于主程序和子程序经常是分别编写的,所以它们所使用的寄存器会发生冲突。主程序在调用子程序以前,要保护那些可能被子程序破坏的寄存器。在结束子程序运行前,要恢复那些被保护的寄存器。一般采用压栈和出栈的方法实现寄存器的保护和恢复。 子程序的参数传送:主程序在调用子程序时,经常需要传送一些参数给子程序,成为输入参数;子程序运行完后经常要回送一些信息给主程序,称为输出参数。 §3.6 51系列单片机汇编程序设计 例3-32:已知寄存器R0、R1、R2存放的是八位二进制数,分别将它们转换成BCD码,存放在内部RAM的60H~65H单元。八位二进制数的对应BCD码是3位(百位、十位、个位)十进制数,总共12个比特位,所以用两个字节来表示对应BCD码。十位和个位分别存放在第一个字节的高4位和低4位,百位存放在第二个字节的低四位。第二个字节的高四位为全0。 §3.6 51系列单片机汇编程序设计 解:编写一个子程序,该子程序的功能是转换一个八位二进制数为BCD码。 该子程序的输入参数是:待转换的单字节数在累加器A中。输出参数是:转换后的BCD码整数(十位和个位)仍在累加器A中,百位在R3中。 根据题意,将该子程序调用三次,每次的结果放置到相应的内存单元中。 程序如下: §3.6 51系列单片机汇编程序设计 ORG 0000H MOV A, R0 ACALL CHBCD MOV 60H, A ;将十位数和个位数置于存储器中 MOV 61H, R3 ;将百位数置于存储器中 MOV A, R1 ACALL CHBCD MOV 62H, A ;将十位数和个位数置于存储器中 MOV 63H, R3 ;将百位数置于存储器中 MOV A, R2 ACALL CHBCD MOV 64H, A ;将十位数和个位数置于存储器中 MOV 65H, R3 ;将百位数置于存储器中 LEND:SJMP $ §3.6 51系列单片机汇编程序设计 CHBCD:PUSH PSW ;保护现场 PUSH B MOV B, #100 DIV AB ;A←BCD码的百位 MOV R3, A ;R3←BCD码的百位 MOV A, #10 ;余数继续分离十位和个位 XCH A, B DIV AB ;A←BCD码的十位 SWAP A ORL A, B ;将十位和个位拼装成BCD码 POP B ;恢复现场 POP PSW RET END §3.6 51系列单片机汇编程序设计 3.5.5 字定义伪指令 格式:[标号:] DW 项或项表 这条指令与DB相似,但用于定义字数据。项或项表指所定义的一个字在存储器中占两个字节。汇编时,机器自动按高字节在前低字节在后存放。 【例3-21】 ORG 3000H TAB2:DW 1234H,5678H 汇编后,各个数据在存储单元中的存放情况如左图: 12H 34H 56H 78H 3000H 3001H 3002H 3003H §3.5 51系列单片机汇编程序常用伪指令 3.5.6 存储区定义伪指令 格式:[标号:] DS 数值表达式 该伪指令用在存储器中保留一定数量的字节单元。保留存贮空间主要为以后存放数据。保留的字节单元数由表达式的值决定。 【例3-22】 ORG 2000H TAB1: DB 12H,34H DS 4H DB '5' 汇编后,存储单元中的分配情况如左图: 12H 34H - - - - 35H 3000H 3001H 3002H 3003H 3004H 3005H 3006H §3.5 51系列单片机汇编程序常用伪指令 3.5.7 位定义伪指令 格式:符号 bit 位地址 bit该伪指令用于给位地址赋予符号,经赋值后可用该符号代替bit后面的位地址。 【例3-23】

文档评论(0)

教学专家 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档