单片机之汇编指令系统
控制转移指令:
AJMP addr ;绝对跳转指令
SJMP rel ;相对跳转指令,(PC)+2+rel→PC
LJMP addr16 ;长跳转指令,addr16→PC
JMP @A+DPTR ;间接跳转指令
JZ rel ;判零跳转指令,(A)=1,则(PC)+2+rel→PC,若A!=0,则(PC)+2→PC
JNZ rel ;与上相反
CJNE A,direct,rel;比较不相等跳转指令.执行过程为:a.(A)=(direct),则(PC)+3→(PC),Cy=0
b.(A)>(direct),则(PC)+3+rel→(PC),Cy=0
c.(A)(direct),则(PC)+3+rel→(PC),Cy=1
DJNZ Rn,rel ;减一不为零跳转指令 .执行过错为 a.(PC)+2→PC. b.(Rn)-1→direct c.若Rn!=0,则(PC)+rel→PC;若direct=0,则程序往下执行
ACALL addr ;短调用指令
LCALL addr ;长调用指令
RET ;从子程序返回指令
RETI ;从中断返回指令
NOP ;空操作指令
指令助记注释:
ADDC ---Add with Carry Flag
SUBB ---Subtract With Borrow
INC ---- Increment
DEC-------Decrement
MUL----Multiply
DIV----Divide
DA----Decimal Adjust
MOV----move
MOVX----move external RAM
MOVC----move code
XCH----Exchange
XCHD----Exchange low-order Digit
ANL----and logical
ORL----or logical
XRL----exclusive-or logical
CLR----clear
CPL----complement logical
RL----rotate left
RR---rotate right
ACALL----absolute subroutine call
LCALL----long subroutine call
RET----return from subroutine
RETI----return from interrupt
AJUMP----absolute jump
LJMP----long jump
SJMP----short jump
JZ----jump if accumulator is zero
JNZ----jump if not zero
JC----jump if carray flag is set
JB----jump if direct bit not set
CJNE----compare jmp if not equal
DJNZ----decrement jump if zero
NOP----no operation
评论