加 1 指令
INC A
INC Rn
INC direct
INC @Ri
INC DPTR
用途很简单,就是将后面目标中的值加 1 。例:( A ) =12H ,( R0 ) =33H ,( 21H ) =32H ,( 34H ) =22H , DPTR=1234H 。执行下面的指令:
INC A ( A ) =13H
INC R2 ( R0 ) =34H
INC 21H ( 21H ) =33H
INC @R0 ( 34H ) =23H
INC DPTR ( DPTR ) =1235H
后结果如上所示。
说明:从结果上看 INC A 和 ADD A , #1 差不多,但 INC A 是单字节,单周期指令,而 ADD #1 则是双字节,双周期指令,而且 INC A 不会影响 PSW 位,如( A ) =0FFH , INC A 后( A ) =00H ,而 CY 依然保持不变。如果是 ADD A , #1 ,则( A ) =00H ,而 CY 一定是 1 。因此加 1 指令并不适合做加法,事实上它主要是用来做计数、地址增加等用途。另外,加法类指令都是以 A 为核心的��其中一个数必须放在 A 中,而运算结果也必须放在 A 中,而加 1 类指令的对象则广泛得多,可以是寄存器、内存地址、间址寻址的地址等等。
减 1 指令
减 1 指令
DEC A
DEC RN
DEC direct
DEC @Ri
与加 1 指令类似,就不多说了。
综合练习:
MOV A , #12H
MOV R0 , #24H
MOV 21H , #56H
ADD A , #12H
MOV DPTR , #4316H
ADD A , DPH
ADD A , R0
CLR C
SUBB A , DPL
SUBB A , #25H
INC A
SETB C
ADDC A , 21H
INC R0
SUBB A , R0
MOV 24H , #16H
CLR C
ADD A , @R0
先写出每步运行结果,然后将以上题目建入,并在软件仿真中运行,观察寄存器及有关单元的内容的变化,是否与自已的预想结果相同
|