51單片機匯編語言:控制轉(zhuǎn)移指令有哪些?
跳轉(zhuǎn)指令
短跳指令 AJMP addr11
PC←addr11,跳轉(zhuǎn)范圍2k
長跳指令 LJMP addr16
PC←addr16,跳轉(zhuǎn)范圍64k
間接跳轉(zhuǎn)指令 JMP @A+DPTR
PC←(A)+(DPTR)
相對轉(zhuǎn)移指令 SJMP rel
條件轉(zhuǎn)移指令
JZ rel ;(A)=0,轉(zhuǎn)移
JNZ rel ;(A)≠0,轉(zhuǎn)移
JC rel ;如 C=1, 轉(zhuǎn)移
JNC rel ;如 C=0, 轉(zhuǎn)移
JB bit,rel ;如 bit=1, 轉(zhuǎn)移
JNB bit,rel ;如 bit=0, 轉(zhuǎn)移
JBC bit,rel ;如 bit=1, 轉(zhuǎn)移并 bit=0
比較不相等轉(zhuǎn)移指令
CJNE A,#data,rel;(A)=#data,繼續(xù)C←0 (A)>#data,轉(zhuǎn)C←0 (A)<#data,轉(zhuǎn)C←1
特點:只有<時, C←1
CJNE A,direct,rel
CJNE Rn,#data,rel
CJNE @Ri,#data,rel
減 1 不為 0 轉(zhuǎn)移指令
DJNZ Rn,rel ;
DJNZ direct,rel
例:延時子程序
delay: MOV R7, #03H
delay0: MOV R6, #19H
delay1: DJNZ R6, delay1
DJNZ R7, delay0
RET
調(diào)用子程序指令
短調(diào)用指令 ACALL addr11
長調(diào)用指令 LCALL addr16
子程序返回指令 RET
中斷返回指令 RETI
空操作指令 NOP
編輯:admin 最后修改時間:2018-05-18