资源描述:
《片机学习05-数逻指令.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、作业一:(讲评)补充:如下程序段,请在指令左边写出各机器指令代码,在各操作数下方注明其寻址方式,分析每条指令执行后的结果以及最终A、B、R1、R5、(3AH)、(3BH)等单元的内容。793AMOVR1,#3AH;R1=3AH7448MOVA,#48H;A=48HA7E0MOV@R1,ACC;(3AH)=48H853AF0MOVB,3AH;B=48H753A5CMOV3AH,#5CH;(3AH)=5CH873BMOV3BH,@R1;(3BH)=5CHADF0MOVR5,0F0H;R5=48H777DMOV@R1,#7DH;(3AH)=7DH853BE
2、0MOV0E0H,3BH;A=5CH寄存器寻址立即寻址寄存器寻址立即寻址寄存器间接寻址直接寻址直接寻址直接寻址直接寻址立即寻址直接寻址寄存器间接寻址寄存器寻址直接寻址寄存器间接寻址立即寻址直接寻址直接寻址答:执行上述程序段后A=5CH,B=48H,R1=3AH,R5=48H,(3AH)=7DH,(3BH)=5CH。3.程序状态字寄存器PSW(标志寄存器)记存CPU执行算术运算及某些操作的一些特征标志信息,以备后用SFR名+位次:PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0字节地址+位次:0D0H.70D0H.60D
3、0H.50D0H.40D0H.30D0H.20D0H.10D0H.0位地址:D7HD6HD5HD4HD3HD2HD1HD0HSFR名字节地址位名称位次进位标志位辅助进位标志位溢出标志位奇偶标志位用户标志位工作寄存器区选择控制位加减运算时最高位向上有进/借位则置‘1’加减运算时D3位向D4位有进/借位则置‘1’BCD数运算修正用加减运算时D7、D6位向上的进/借位不同则置‘1’补码运算时表征溢出A中‘1’的个数为奇则置‘1’表征8位码的奇偶性P.14图2-3PSW的格式半进位标志位随时根据A的内容变化生成不影响标志位CACOV3.4.2算术运算类指令积
4、>FF则0V=1B=0则0V=1不影响ACOV标志结果存累加器ACyCyTM【例3-1】(A)=53H,(R0)=FCH,执行指令ADDA,R0结果:(A)=4FH,Cy=1,Ac=0,OV=0,P=1注意:运算中,由于位6和位7同时有进位,所以标志位OV=0。【例3-2】(A)=85H,(R0)=20H,(20H)=AFH,执行指令:ADDA,@R0结果:(A)=34H,Cy=1,Ac=1,OV=1,P=1注意:由于位7有进位,而位6无进位,所以标志位OV=1P.3801010011+111111001110000=01001111Cy:11000
5、0101+101011110001111=00110100Cy:1【例3-3】(A)=85H,(20H)=FFH,Cy=1,执行指令:ADDCA,20H结果为:(A)=85H,Cy=1,Ac=1,OV=0,P=1【例3-4】(A)=56H,(R5)=67H,把它们看作为两个压缩的BCD数,进行BCD数的加法。执行指令:ADDA,R5;先按二进制加,得BDHDAA;紧接着进行BCD调整,得23H且有向上进位结果为:(A)=23H,Cy=1(维持ADD后的Ac=1,OV=1),P=1。可见,56+67=123,结果是正确的。【例3-5】(A)=C9H,(
6、R2)=54H,Cy=1,执行指令SUBBA,R2结果:(A)=74H,Cy=0,Ac=0,OV=1(位6向位7借位而位7无向上借位),P=0P.38~4010000101+1111111111111111=10000101Cy:1←原Cy11001001-01010100-1=01110100Cy:0←原Cy【例3-6】(A)=0FH,(R7)=19H,(30H)=00H,(R1)=40H,(40H)=0FFH,执行指令DECA;(A)-1→A=0EHDECR7;(R7)-1→R7=18HDEC30H;(30H)-1→30H=FFHDEC@R1;(
7、(R1))-1→(R1)=FEH结果为(A)=0EH,(R7)=18H,(30H)=0FFH,(40H)=0FEH,P=1,不影响其他标志【例3-7】(A)=FBH,(B)=12H,执行指令DIVAB结果为(A)=0DH,(B)=11H,Cy=0,OV=0。P.41【例B3-7】编程序实现R1、R2中的双字节BCD数加上R3、R4中的双字节BCD数,三字节和值存放于R5、R6、R7中。ORG11A0H11A0EAMOVA,R2;取被加数低字节11A12CADDA,R4;加上加数低字节11A2D4DAA;十进制调整11A3FFMOVR7,A;存和值的低
8、字节11A4E9MOVA,R1;取被加数高字节11A53BADDCA,R3;加上加数高字节及低字节的进位11