- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 单片机的汇编语言与程序设计 朱华贵 2010年09月17日 例: 试编写计算1234H-0FE7H的程序,将和的高8位存入41H单元,低8位存入40H单元。 解:进行6为减法时也要分两步进行,先进行低8位运算,若产生借位,则在高8位运算时一起减去 CLR C ;进位位C清零 MOV A,#34H ;34H→A SUBB A,#0E7H ;A-0E7H-CY→A MOV 40H,A ;A→(40H) MOV A,#12H ;12H→A SUBB A,#0FH ;A-0FH-CY→A MOV 41H,A ;A→(41H) 例: 试编写计算17H×68H的程序,将乘积的高8位存入31H单元,第8位存入30H单元。 解: MOV A,#17H ;17H→A MOV B,#68H ;68H→B MUL AB ;A×B→BA MOV 30H,A ;A→(30H) MOV 31H,B ;B→(31H) 3.逻辑运算及移位类指令 算术运算类指令(Arithmetic Operations Instruction)共有24条,包括加、减、乘、除4种基本的算术运算指令。 该类指令的主要功能有,对8位无符号数可进行直接运算;借助溢出标志,可对带符号数进行补码运算;借助进位标志,可进行多字节加减运算,也可对压缩BCD码(即单字节中存放两位BCD码)进行运算。 特点:算术运算指令一般对程序状态字PSW中的CY、AC、OV三个标志位都有影响,所有指令如表3.3所示。 MCS-51逻辑运算及移位类指令 逻辑运算指令快捷记忆法 例: 编制程序,将M1单元中数字0~9的ASCII码变为相应数字的BCD码。 解: 由于0~9的ASCII码为30H~39H,故只要将0~9数字ASCII码的高4位变为0,低4位不变就是其BCD码。 ANL M1,#0FH ;M1←(M1)∧0FH 例: 把累加器A中低4位送入P1口低4位,P1口的高4位不变。 解: ANL A,#0FH ; A高4位清零,低4位不变 ANL P1,#0F0H ; P1低4位清零,高4位不变 ORL P1,A ; P1高4位不变,低4位等于 ;A低4位 例: 已知40H单元中有一个带符号数X,编制对它求补的程序。 解: 一个8位带符号二进制数的补码可以定义为反码加“1”。 MOV A,40H ;A←X CPL A ; A←/A INC A ;补码=反码+1 MOV 40H,A ;X补码送回40H 例: 将A.5与80H位相与的结果,通过P1.4输出。 解: MOV C,A.5 ;A.5→C ANL C,80H ;80H﹠C→C MOV P1.4,C ;C→P1.4 4.控制转移类指令 控制转移(Control Flow Instruction)类指令的主要功能是通过改变程序计数器PC中内容,改变程序执行的流向。该类指令共有22条 MCS-51控制转移类指令一览表 MCS-51控制转移类指令一览表 MCS-51控制转移类指令一览表 控制转移类指令快捷记忆法 注:所有条件转移都只能是在rel的范围内进行,即-128~127。 无条件转移范围可用下图表示: AA: …… LJMP AA …… AA: …… SJMP AA …… AA: …… AJMP AA …… ≤65535 -128~ ≤2047 +127 可见,LJMP、SJMP和AJMP的最大转移范围分别是65,535,-128~127和2,047。 例: 设A中为整数0~3(对应于0~3号任务) ,B中为整数3,则下列程序可实现4个分支程序的跳转功能。 解: MUL AB ;将A乘以3 MOV DPTR, #BLOCK ;转移首地址放入DPTR JMP @A+DPTR
原创力文档


文档评论(0)