- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章节汇编语言程序设计”
2. 80C51汇编程序设计中常用的伪指令 (1)ORG 汇编起始指令 规定目标程序的起始地址,格式如下: 标号 操作码 操作数 ORG 表达式(exp)必须为16位地址 (2) EQU 赋值指令 把操作数段中的地址或数据赋值给标号,格式如下: 标号 操作码 操作数 字符名称 EQU 数或汇编符号 例1 AA EQU R1 ;R1与AA等值 则 MOV A, AA 指令与 MOV A,R1指令结果相同。 (4) DW 定义字指令 定义程序存储器中存放的若干个字的数据或ASCII码字符16位常数表格式 DW16位数据表。 例3 ORG 2200H DW 1246H,7BH,10 则 (2200H)=12H (2201H)=46H (2202H)=00 (2203H)=7BH (2204H)=00 (2205H)=0AH (5) BIT 定义位地址指令 格式 字符名称BIT位地址 例4 ABC BIT P1.0 Q4 BIT P2.2 则汇编后,位地址P1.0,P1.2分别赋给变量ABC和Q4。 (6) END 汇编结束指令 5.2.2 循环程序包含多次重复执行的程序段,循环结构使程序紧凑。 简单循环结构:循环体中不套循环。 多重循环循环体中套循环结构。以双重循环使用较多。 试计算延时程序的执行时间。 源程序 指令周期(M) 指令执行次数 习题:试计算延时程序的执行时间。 源程序 指令周期(M) 指令执行次数 5.3 分支程序设计 5.3.1 分支程序设计综述 分支程序应用要点是正确使用转移指令,通常有如下3种指令。 1. 无条件转移:与以执行程序的结果无关,只要给出正确的转移目标地址或偏移量即可 2. 条件转移 :根据已执行程序对特殊或特定存储器的影响结果来决定程序的走向。 3. 散转:根据某种已输入的或运算的结果,是程序转到各个处理程序中 例3 设5AH单元中有一变量X,请编写计算下述函数式的程序,结果存入5BH单元 Y= 3X , X 10 Y= 2X +10 , 10= X= 15 Y= 40 , X 15 ORG 200H MOV A,5AH ADD A,5AH ;2X→A MOV R1,A MOV A,5AH ;重新把X装入A CJNE A,#10,L1 L1: JC L2 ;X10转L2 MOV R0,#40 ;先假设X15 CJNE A,#10H,L3 ;与16比 L3: JNC L4 ;X15转L4 MOV A,R1 ADD A,#10 ;10≤X≤15,Y=2X+10 MOV R0,A SJMP L4 L2: MOV A,R1 ADD A,5AH ;X10,Y=3X MOV R0,A L4 : MOV 5BH,R0 ;存结果 SJMP $ END 5.3.3 散转程序设计 例5 根据R3的内容,转向各个操作程序。 R3=0, 转入OPR0 R3=1, 转入OPR1 ………. R3=n, 转入OPRn 解:程序清单如下。 MOV DPTR,#TAB1 ;跳转表首地址送数据指针 MOV A,R3 ;R3×2 ?A(修正变址值) ADD A,R3 JNC NOAD ;判有否进位 INC DPH ;有进位则加到高字节地址 NOAD: JMP @A+DPTR ;转向形成的散转地址入口 TAB1: AJMP OPR0 ;转移到OPR0 AJMP OPR1 ……..
原创力文档


文档评论(0)