这5条指令的的功用均为原寄存器的内容加1,成果送回原寄存器。加1指令不会对任何标志有影响,假如原寄存器的内容为FFH,履行加1后,成果就会是00H。这组指令共有直接、寄存器、寄存器减间址等寻址办法:
INC A;(A)+1→(A) 累加器A中的内容加1,成果存在A中
INC data;(data)+1→(data) 直接地址单元中的内容加1,成果送回原地址单元中
INC @Ri;((Ri))+1→((Ri)) 寄存器的内容指向的地址单元中的内容加1,成果送回原地址单元中
INC Rn;(Rn)+1→(Rn)寄存器Rn的内容加1,成果送回原地址单元中
INC DPTR;(DPTR)+1→(DPTR)数据指针的内容加1,成果送回数据指针中
用处很简单,便是将后边方针中的值加1。
例:(A)=12H,(R0)=33H,(21H)=32H,(34H)=22H,DPTR=1234H。履行下面的指令;
INC A;(A)=13H
INC R0;(R0)=34H
INC 21H;(21H)=33H
INC @R0;(34H)=23H
INC DPTR;(DPTR)=1235H
这些指令履行后的成果都附在了指令的后边。
阐明:从成果上看,INC A和ADD A,#1差不多,但INC A是单字节,单周期指令,而ADD A,#1则是双字节双周期指令,并且INC A不会影响PSW位,如(A)=0FFH,INC A后(A)=00H,而CY仍然坚持不变。假如是ADD A,#1,则(A)=00H,而CY一定是1。因而加1指令并不适合做加法运算,事实上它主要是用来做计数、地址增加等用处。别的,加法类指令都是以A为中心的,其间一个数有必要放在A中,而运算成果也有必要放在A中,而加1类指令的目标则广泛得多,可所以寄存器、内存地址、间址寻址的地址等等。