《精》微机原理与接口技术复习材料.pptVIP

  • 12
  • 0
  • 约1.85万字
  • 约 47页
  • 2017-01-16 发布于湖北
  • 举报

《精》微机原理与接口技术复习材料.ppt

【例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 ;加上高字节向第三字节的进位 ;无需进行十进制调整(其结果为00H或01H) 11AC FD MOV R5,A ;存和值的第三字节 11AD 80 FE SJMP $ ;自循环暂停 11AF 【练习】如果是双字节数相加结果只需双字节呢? 如果是双字节二进制数相加(不是BCD数)呢? 如果是双字节二进制数相减结果为双字节二进制数呢? 如果是单字节二进制数相加结果为双字节呢? 如果是(31H)、(30H)的双字节数加上(41H)、(40H)中的双字节数,三字节结果存放于(52H)、(51H)、(50H)中,前者为高字节,如何编程。 ;单字节BCD码加法运算 0000 ORG 0000H 0000 802E SJMP MAIN 0002 0030 ORG 0030H 0030 7456 MAIN:MOV A , #56H 0032 2467 ADD A , #67H

文档评论(0)

1亿VIP精品文档

相关文档