4.6.3增量、减量指令(9条) 增量指令完成加1运算,减量运算完成减1运算。 这两条指令均不影响标志位(INCA,DECA影响标志P) 增量指令(5条) INC A ;A←-A+1 INC addr (addr8)<(addr8)+1 INC@Ri;(Ri)←(Ri)+1 INC Rn ;Rn←-Rn+1 NC DPTR ;DPTR←DPTR+1 204237 3:01:41
3:01:41 4.6.3 增量、减量指令(9条) 增量指令完成加1运算,减量运算完成减1运算。 这两条指令均不影响标志位(INC A, DEC A 影响标志P)。 1、增量指令(5条) INC A ;A ← A+1 INC addr8 ;(addr8) ←(addr8) +1 INC @Ri ;(Ri) ← (Ri) +1 INC Rn ;Rn ← Rn+1 INC DPTR ;DPTR ← DPTR+1 19 20:42:37
1、增量指令(5条) ◇注意:INC指令将指定变量加1,结果送回原地址单元, 原来内容若为0FFH,加1后将变成00H,运算结果不 影响任何标志位(NCA影响奇偶标志位P)。 ◇例如,设R0=7EH,内部数据RAM中(7EH)=0FFH, (7FH)=40H,则执行指令: INC@R0;(7EH)←00H INCR0R0←R0+1,执行后,R0=7FH INC@R0;(7FH)←4IH 204237 3:01:41
3:01:41 1、增量指令(5条) 注意: INC指令将指定变量加1,结果送回原地址单元, 原来内容若为0FFH,加1后将变成00H,运算结果不 影响任何标志位(INC A 影响奇偶标志位P)。 例如,设R0=7EH,内部数据RAM中 (7EH) =0FFH, (7FH) =40H,则执行指令: INC @R0 ; (7EH) ← 00H INC R0 ;R0 ← R0+1,执行后,R0=7FH INC @R0 ; (7FH) ← 41H 20 20:42:37
2、减量指令(4条)①DECA影响奇偶标位P( DEC A A←A-1 DEC addr i (addr8)(addr8 )-1 DEC aRi ;(Ri)←(Rij)-1 DEC Rn Rn←-Rn-1 ◇注意:DEC指令将指定变量减1,结果送回原地址单元,不 影响任何标志位,原内容若为00H,减1后变成0FFH。 ◇例如程序:(若A=,DECA后,A中还是偶数个,不影响P) MOVR1。#7FH (R1)←7FH MOV TEH, #00H ,(7EH)+00H MOV 7FH, #40H ,(7FH)+40H DEC RI ;(7FH)←3FH←40H-1 DEC RI (R1)←7EH←7FH-1 DEC RI (7EH)←0FFH←00H-1 204237 3:01:41
3:01:41 2、减量指令(4条) DEC A ;A ← A - 1 DEC addr8 ;(addr8) ←(addr8) - 1 DEC @Ri ;(Ri) ← (Ri) - 1 DEC Rn ;Rn ← Rn - 1 注意: DEC指令将指定变量减1, 结果送回原地址单元, 不 影响任何标志位, 原内容若为00H, 减1后变成0FFH。 21 20:42:37 例如程序: MOV R1, #7FH ; (R1) ← 7FH MOV 7EH, #00H ; (7EH) ← 00H MOV 7FH, #40H ; (7FH) ← 40H DEC @R1 ; (7FH) ← 3FH ← 40H -1 DEC R1 ; (R1) ← 7EH← 7FH -1 DEC @R1 ; (7EH) ← 0FFH ← 00H -1 (DEC A 影响奇偶标志位P) (若A=0, DEC A 后, A中还是偶数个1, 不影响P)
4.64二—十进制的加法的调整指令(1条) ◇指令如下:DAA 原因:压缩BCD码要求按照十进制 规则运算、进位,但计算机只能按 ◇该指令的调整条件和方法:照《()进制规则运算进位 ◆若A3>9或AC=1,则A30←A30+06H; ◆若A74>9或CY=1,则A4←A4+6H(A70A70+60H) ◆若两个条件同时满足或者A2=9且低4位修正有进位, 则A70←A70+6H 871000011 68011 01000 DA指令使用说明 EF11101111 ◆是对二十进制加法进行调整的指令。150101010 ◆两个压缩型BCD码按二进制数规则相加,须经本条指令调 整后才能得到压缩型的BCD码和数(可用87H+68H测算)。 204237 3:01:41
3:01:41 4.6.4 二——十进制的加法的调整指令(1条) 指令如下: DA A 该指令的调整条件和方法: 若A3-0>9或AC=1, 则A3-0←A3-0+06H; 若A7-4>9或CY=1, 则A7-4←A7-4+6H(A7-0←A7-0+60H)。 若两个条件同时满足或者A7-4=9且低4位修正有进位, 则A7-0←A7-0+66H。 22 20:42:37 DA指令使用说明 是对二—十进制加法进行调整的指令。 两个压缩型BCD码按二进制数规则相加, 须经本条指令调 整后才能得到压缩型的BCD码和数(可用87H+68H测算)。 1000 0111 + 0110 1000 1110 1111 + 0110 0110 10101 0101 87 68 CY 原因:压缩BCD码要求按照十进制 规则运算、进位, 但计算机只能按 照16(二)进制规则运算、进位。 EF 66 155
DA指令使用说明 ◆因指令要用AC、CY等标志位才能起到正确的调整作 用,因此它需跟在加法(ADD,ADDC)指令后面使用。 ◆若该指令前无加法指令,(不)能用DAA完成累加器A内 容的二十进制转换。 ◆对用户而言,只要保证参加运算的两数为BCD码,并先 对BCD码执行二进制加法运算(用ADD,ADDC指令 然后紧跟一条DAA指令即可。 ◆DAA指令不能对减法进行十进制调整。 ◆DA指令不清除标志位C,若高4位有进位,则置C为1, 否则,不改变进位标志C。 204237 3:01:41
3:01:41 DA指令使用说明 因指令要用AC、CY等标志位才能起到正确的调整作 用, 因此它需跟在加法(ADD, ADDC)指令后面使用。 若该指令前无加法指令, (不)能用DA A完成累加器A内 容的二十进制转换。 对用户而言,只要保证参加运算的两数为BCD码, 并先 对BCD码执行二进制加法运算(用ADD, ADDC指令), 然后紧跟一条DA A指令即可。 DA A指令不能对减法进行十进制调整。 DA指令不清除标志位C, 若高4位有进位, 则置C为1, 否则, 不改变进位标志C。 23 20:42:37