51单片机加1指令(5条) 举例说明
2017-10-16 来源:eefocus
这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类指令的对象则广泛得多,可以是寄存器、内存地址、间址寻址的地址等等。
在INC data这条指令中,如果直接地址是I/O,其功能是先读入I/O锁存器的内容,然后在CPU进行加1操作,再输出到I/O上,这就是“读—修改—写”操作。
上一篇:51单片机减1指令(4条)
下一篇:51单片机除法指令(1条)有例子