(1) 累加器判0转移指令:
JZrel;如果(A)=0,跳转到目标语句,否则顺序执行
JNZrel;如果(A)≠0,跳转到目标语句,否则顺序执行
(2) 比较转移指令:
CJNZA,#data,rel;如果(A)≠data,则跳转到目标语句,否则程序顺序执行
CJNZAdirect,rel; 如果(A)≠(direct),则跳转到目标语句,否则程序顺序执行
CJNZRn#data,rel; 如果(A)≠data,则跳转到目标语句,否则程序顺序执行
CJNZ@Ri#data,rel; 如果(A)≠data,则跳转到目标语句,否则程序顺序执行
(3) 循环控制转移指令:
DJNZRn,rel;(Rn)先减1,如减1后(Rn)≠0,则跳转到目标语句;否则顺序执行
DJNZfirect,rel; (direct)先减1,如减1后(direct)≠0,则跳转到目标语句;否则顺序执行
(十三) 子程序调用和返回指令
(1) 绝对调用指令:
ACALLaddr11
(2) 长调用指令:
LCALLaddr16
(3) 返回指令:
RET子程序返回
RETI中断服务程序返回
(十四) 空操作指令
NOP空操作指令是一条特殊指令,单片机在执行该指令时不进行任何操作,只是消耗1个机器周期的时间,所以该指令长用于延时程序.软件陷阱程序等
(十五) 位操作类指令
(1) 位传送指令:
MOVC,bit;(Cy)<-(bit),bit位的状态不变
MOVbit,C; (bit) <- (Cy),Cy位的状态不变
(2) 位置位和复位指令:
SETBC;(Cy)<-1
SETBbit;(bit)<-1
CLRC;(Cy)<-0
CLRbit;(bit)<-0
(3) 位运算指令:
ANLC,bit;(Cy)<-(Cy)∧(bit),Cy位和bit位相与,结果赋给Cy
ANLC,/bit;(Cy)<-(Cy)∧(bit),Cy位和bit位相与,结果赋给Cy
ORLC,bit;(Cy)<-(Cy)∨(bit),Cy位和bit位相或,结果赋给Cy
ORLC,/bit;(Cy)<-(Cy) ∨(bit),Cy位和bit位相或,结果赋给Cy
CPLC; (Cy)<-(Cy),Cy位取反
CPLbit;(bit)<-(bit),bit位取反
(4) 位测试转移指令:
(1) 以Cy位状态为条件的转移指令
JCrel;如果Cy位=1,跳转到目标语句,否则顺序执行
JNCrel;如果Cy位=0,跳转到目标语句,否则顺序执行
(2) 以指定位状态为条件的转移指令:
JBbit,rel;如果bit=1,跳转到目标语句,否则顺序执行
JNBbit,rel;如果bit=0,跳转到目标语句,否则顺序执行
JBCbit,rel;如果bit=1,跳转到目标语句,同时将bit位清0;否则顺序执行