Addc A, Rn ;(A) (A)+(Rn)+(C) ;以下类同 ADDC A, direct ADDC A, Ri ADDC A, #data 上述四条指令多用于多字节数相加。 ⅠNCA (A)—(A)+1,以下类同。 ⅠNCRn Inc direct ⅠNC@Ri INC DPTR 片机原理与运用
ADDC A,Rn ;(A) (A)+(Rn)+(C) ; 以下类同。 ADDC A,direct ADDC A,@Ri ADDC A,#data 上述四条指令多用于多字节数相加。 INC A ;(A) (A)+1 ,以下类同。 INC Rn INC direct INC @Ri INC DPTR
NC A ;(A) (A)+1 ;以下类同。 INC Rn inc direct INC ORi INC DPTR 例1、设(R0)=7FH;(7EH)=40H 执行:INC@R0 INC RO ⅠNC@RO后, (R0)=7FH;(TEH)=00H;(7FH)=41HI
INC A ;(A) (A)+1 ;以下类同。 INC Rn INC direct INC @Ri INC DPTR 例1、设(R0)= 7FH; (7EH)= 40H 执行:INC @R0 INC R0 INC @R0 后, (R0)= 7FH; (7EH)= 00H; (7FH)= 41H
DA A 十进制调整指令。 执行过程中,CPU能根据加法运算后,累加器中的值和PSW中的 AC及C标志位的状况自动选择一个修正值(00H、06H、60H、 66H)与原运算结果相加,进行二—十进制调整。 选择修正值的规则: (A3~0)>9时或(AC)=1时,(A3~0)←(A3~0)+6 (A7~4)>9或(C)=1时,(A7~4)←(A7~4)+6
DA A ;二 ——十进制调整指令。 执行过程中,CPU能根据加法运算后,累加器中的值和PSW中的 AC及C标志位的状况自动选择一个修正值(00H、06H、60H、 66H)与原运算结果相加,进行二——十进制调整。 (A3 ~ 0)> 9时或(AC)= 1时,(A3 ~ 0) (A3 ~ 0)+6 (A7 ~ 4)> 9或(C) = 1时, (A7 ~ 4) (A7 ~ 4)+ 6 选择修正值的规则:
例2、设(A)=56H为56的压缩的BCD码数,(R3)=67H, (CY)=1 执行 ADDC A,R3 DA A 结果为:124 注意:1)DA指令只能跟在加法指令后面使用; 2)调整前参与运算的两数是BCD码数; 3)DA指令不能与减法指令配对使用,但可以实现对A中 压缩BCD数进行减一操作。 例3、设(A)=30H(压缩BCD码数),执行: ADD A, #99H DAA 理与运用 后,便实现了30-1=29的操作
例2、设(A)= 56H 为56的压缩的BCD码数,(R3)= 67H, (CY)=1 执行 ADDC A,R3 DA A 结果为:124 注意:1)DA指令只能跟在加法指令后面使用; 2)调整前参与运算的两数是BCD码数; 3)DA指令不能与减法指令配对使用,但可以实现对A中 压缩BCD数进行减一操作。 例3、设(A)=30H(压缩BCD码数),执行: ADD A,#99H DA A 后,便实现了30 - 1 = 29的操作
例4、两个4位BCD码相加,一个存放在(31H)(30H); 另一个存放在(33H)(32H);和数拟回存在(3H) (30H)中,试编程实现之。 解: MOV RO, #30H MOV RI, #32H MOV A, RO ADD A, RI DAA MOV aRO, A 机原理与运用
例4、两个4位BCD码相加,一个存放在(31H)(30H); 另一个存放在(33H)(32H);和数拟回存在(31H) (30H)中,试编程实现之。 解: MOV R0,#30H MOV R1,#32H MOV A,@R0 ADD A,@R1 DA A MOV @R0,A