- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
51单片机学习05[算逻指令]
作业一 :(讲评)
补充:如下程序段,请在指令左边写出各机器指令代码,在各操作数下方注明其寻址方式,分析每条指令执行后的结果以及最终A、B、R1、R5、(3AH)、(3BH)等单元的内容。
79 3A MOV R1 , #3AH ;R1=3AH
74 48 MOV A , #48H ;A = 48H
A7 E0 MOV @R1 , ACC ;(3AH)=48H
85 3A F0 MOV B , 3AH ; B = 48H
75 3A 5C MOV 3AH , #5CH ;(3AH)=5CH
87 3B MOV 3BH , @R1 ;(3BH)=5CH
AD F0 MOV R5 , 0F0H ; R5 = 48H
77 7D MOV @R1 , #7DH ;(3AH)=7DH
85 3B E0 MOV 0E0H , 3BH ; A = 5CH;3.程序状态字寄存器PSW (标志寄存器)
记存CPU执行算术运算及某些操作的一些特征标志信息,以备后用
;不影响
标志位
C AC OV ;【例3-1】 (A)=53H,(R0)=FCH,执行指令
ADD A,R0
结果: (A)=4FH,Cy=1,Ac=0,OV=0,P=1
注意:运算中,由于位6和位7同时有进位,所以标志位OV=0。
【例3-2】 (A)= 85H,(R0)=20H,(20H)=AFH,执行指令:
ADD A,@R0
结果:(A)=34H,Cy=1,Ac=1,OV=1,P=1
注意:由于位7有进位,而位6无进位,所以标志位OV=1;【例3-3】 (A)=85H,(20H)=FFH,Cy=1,执行指令:
ADDC A,20H
结果为:(A)=85H,Cy=1,Ac=1,OV=0,P=1
【例3-4】 (A)=56H,(R5)=67H,把它们看作为两个压缩的BCD数,进行BCD数的加法。执行指令:
ADD A,R5 ;先按二进制加,得BDH
DA A ;紧接着进行BCD调整,得23H且有向上进位
结果为:(A)=23H,Cy=1 (维持ADD后的Ac=1,OV=1),P=1。
可见,56+67=123,结果是正确的。
【例3-5】(A)=C9H,(R2)=54H,Cy=1,执行指令
SUBB A,R2
结果:(A)=74H,Cy=0,Ac=0,OV=1(位6向位7借位而位7无 向上借位) ,P=0 ;【例3-6】 (A)=0FH,(R7)=19H,(30H)=00H,(R1)=40H,(40H)=0FFH,执行指令
DEC A ;(A)-1→A = 0EH
DEC R7 ;(R7)-1→R7 =18H
DEC 30H ;(30H)-1→30H = FFH
DEC @R1 ;((R1))-1→(R1) = FEH
结果为?(A)=0EH,(R7)=18H,(30H)=0FFH,(40H)=0FEH,P=1,
不影响其他标志
【例3-7】 (A)=FBH,(B)=12H,执行指令
DIV AB
结果为?(A)=0DH,(B)=11H,Cy=0,OV=0。;【例B3-7】编程序实现R1、R2中的双字节BCD数加上R3、R4中的双字节BCD数,三字节和值存放于R5、R6、R7中。
ORG 11A0H
11A0 EA MOV A,R2 ;取被加数低字节
11A1 2C ADD A,R4 ;加上加数低字节
11A2 D4 DA A ;十进制调整
11A3 FF MOV R7,A ;存和值的低字节
11A4 E9 MOV A,R1 ;取被加数高字节
11A5 3B ADDC A,R3 ;加上加数高字节及低字节的进位
11A6 D4 DA A ;十进制调整
11A7 FE MOV R6,A ;存和值的高字节
11A8 74 00 MOV A,#00H ;被加数与加数无第三字节,设其为0
11AA 34 00 ADDC A,#00H
原创力文档


文档评论(0)