1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.多分支转移结构 例4-13 根据寄存器R2的内容,转向各个处理程序PRGX(X=0~n)。 (R2)=0,转PRG0 (R2)=1,转PRG1 ┇ (R2)=n, 转PRGn 跳转地址=#TAB5+R2*3 4.3.7 分支转移程序设计 第4章 MCS-51汇编语言程序设计 4.3 汇编语言实用程序设计 特点是程序中含有可以反复执行的程序段,该程序段通常称为循环体。例如求100个数的累加和,则没有必要连续安排100条加法指令,可以只用一条加法指令并使其循环执行100次。 (1)可大大缩短程序长度(2)使程序所占的内存单元数量少(3)使程序结构紧凑和可读性变好。 一、循环程序的结构 循环结构程序主要由以下四部分组成。 1.循环初始化 循环初始化程序段用于完成循环前的的准备工作。例如,循环控制计数初值的设置、地址指针的起始地址的设置、为变量预置初值等。 4.3.8 循环程序设计 第4章 MCS-51汇编语言程序设计 4.3 汇编语言实用程序设计 二、 子程序的基本结构 MAIN: ┇ ;MAIN为主程序或调用程序标号 LCALL SUB;调用子程序SUB ┇ SUB:PUSH PSW ;现场保护 PUSH ACC ; 子程序处理程序段 POP ACC ;现场恢复 POP PSW ; RET ;最后一条指令必须为RET 4.3.2 子程序的设计 第4章 MCS-51汇编语言程序设计 4.3 汇编语言实用程序设计 二、 子程序的基本结构 例4-3 单字节有符号数的加减法子程序(自己阅读) 本例中参数传递是通过累加器A完成的,主程序将被转换的数送到A中,子程序将A中的有符号数求补后存于A中,主程序再将结果放回原来的单元。 4.3.2 子程序的设计 第4章 MCS-51汇编语言程序设计 4.3 汇编语言实用程序设计 二、 子程序的基本结构 例4-4 4位BCD码的减法程序(自己阅读) 主程序通过地址寄存器R0和R1将参加运算的BCD码的地址传递给子程序,子程序则通过累加器将差传递给主程序。 A-B=A+(100-B)=A+(#9A-B) 4.3.2 子程序的设计 第4章 MCS-51汇编语言程序设计 4.3 汇编语言实用程序设计 数据补偿、修正、计算、转换等各种功能,具有程序简单、执行速度快等优点。 查表就是根据自变量x,在表格中寻找y,使y=f(x)。 执行查表指令时,发出读程序存储器选通脉冲/PSEN。指令系统中提供了两条查表指令: ⑴ MOVC A,@A+DPTR 指令“MOVC A,@A+DPTR”完成把A中的内容作为一个无符号数与DPTR中的内容相加,所得结果为某一程序存储单元的地址,然后把该地址单元中的内容送到累加器A中。 4.3.3 查表程序设计 第4章 MCS-51汇编语言程序设计 4.3 汇编语言实用程序设计 ⑵ MOVC A,@A+PC 指令“MOVC A,@A+PC”以PC作为基址寄存器,PC的内容和A的内容作为无符号数,相加后所得的数作为某一程序存储器单元的地址,根据地址取出程序存储器相应单元中的内容送到累加器A中。 指令执行完,PC的内容不发生变化,仍指向查表指令的下一条指令。优点在于预处理较少且不影响其它特殊功能寄存器的值,所以不必保护其它特殊功能寄存器的原先值。缺点在于该表格只能存放在这条指令的地址X3X2X1X0以下的00~FFH之中。表格所在的程序空间受到了限制。 4.3.3 查表程序设计 第4章 MCS-51汇编语言程序设计 4.3 汇编语言实用程序设计 表格长度不能超过256个字节,且表格只能存放于MOVC A,@A+PC指令以下的256个单元中。 例4-5 子程序的功能为:根据累加器A中的数x(0~9之间)查x的平方表y,根据x的值查出相应的平方y。x和y均为单字节数。 地 址 子程序 Y3Y2Y1Y0 ADD A,#01H Y3Y2Y1Y0+2 MOVC A,@A+PC PC= Y3Y2Y1Y0+3 Y3Y2Y1Y0+3 RET Y3Y2Y1Y0+4 DB 00H,01H,04H,09H,10H DB 19H,24H,31H,40H,51H 第1条指令 ADD A,#01H 的作用是加上偏移量,可以根据A的内容查出X对应的平方。的00~FFH之中。表格所在的程序空间受到了限制。 4.3.3 查表程序设计 第4章 MCS-51汇编语言程序设计 4.3 汇编语言实用程序设计 偏移量=表首地址-(查表指令所在的地址+1) M

文档评论(0)

wtw4044 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档