(该类指令有加、减、乘、除四种,其特点是运算结果影响程序状态寄存器 PSW中的标志位)

1.加法类运算指令

(1)加法指令(影响 CY、OV、AC、P)

1
2
3
4
ADD A,#data	;A<-(A)+data
ADD A,Rn ;A<-(A)+(Rn)
ADD A,direct ;A<-(A)+(direct)
ADD A,@Ri ;A<-(A)+((Ri))

(2)带进位位 CY 的加法(影响 CY、OV、AC、P)

1
2
3
4
ADDC A,#data	;A<-(A)+data+CY
ADDC A,Rn ;A<-(A)+(Rn)+CY
ADDC A,direct ;A<-(A)+(direct)+CY
ADDC A,@Ri ;A<-(A)+((Ri))+CY

(3)加一指令

1
2
3
4
INC A	;A<-(A)+1	(影响P)
INC Rn ;Rn<-(Rn)+1
INC direct ;direct<-(direct)+1
INC @Ri ;(Ri)<-((Ri))+1

2.减法运算指令

(1)带借位位 CY 的减法(影响 CY、OV、AC、P)

1
2
3
4
SUBB A,#data	;A<-(A)-data-CY
SUBB A,Rn ;A<-(A)-(Rn)-CY
SUBB A,direct ;A<-(A)-(direct)-CY
SUBB A,@Ri ;A<-(A)-((Ri))-CY

(2)减一指令

1
2
3
4
DEC A	;A<-(A)-1	(影响P)
DEC Rn ;Rn<-(Rn)-1
DEC direct ;direct<-(direct)-1
DEC @Ri ;(Ri)<-((Ri))-1

3.乘除指令

(1)乘法指令

1
2
MUL AB	;B、A<-(A)*(B)	影响OV、P
;若(B)>0,则OV=1;否则OV=0

(2)除法指令

1
2
DIV AB	;A、B<-(A)/(B)	影响OV、P
;A中存放被除数,B中存放除数,执行之后A中存放商,B中存放余数。若除数为0,则OV=1,表示除法无意义

4.十进制调整指令

十进制调整指令用于 BCD 码十进制数加法运算结果进行调整。

1
DA A

调整方法为:

  • A 中低四位大于 9 或标志位 AC=1,则低四位加 6 调整,即 A<-(A)+06H
  • A 中高四位大于 9 或标志位 CY=1,则高四位加 6 调整,即 A<-(A)+06H