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