单片机之汇编指令系统
数据传送指令:
MOV Rn,#data ;立即寻址,data→Rn
MOV A,@Ri ;间接寻址,((Ri))→A,i=0,1
MOV direct,Rn ;寄存器寻址,(Rn)→direct
MOV @Ri,A ;寄存器寻址,(A)→(Ri)
MOV DPTR,#data16 ;把16位立即数传送到数据指针DPTR,高8位送DPH,低八位送DPL.
(例:MOV DPTR,#1234H;DPTR=1234H,DPH=12H,DPL=34H.)
MOVC A,@A+PC ;((A)+(PC)→A)
MOVX @DPTR,A ;寄存器间接寻址,(A)→(DPTR)
PUSH direct ;直接寻址.(SP)+1→SP,(direct)→SP
POP direct ;直接寻址,((SP))→direct,(SP-1)→SP
XCH A,Rn ;(A)←→(Rn)交换
XCHD A,@Rn ;(A)0~3←→((Rn))0~3
SWAP A ;(A)0~3←→(A)4~7
算术运算指令
ADD A,@Ri ;(A)+(Ri)→A,不带进位加法
ADDC A,Ri ;(A)+(Ri)+Cy→A
SUBB A,#data ;(A)-data-Cy→A
INC direct ;(direct)+1→direct,加一指令
DEC @Ri ;((Ri))-1→(Ri)
DA A ;十进制调整指令
MUL AB ;把A,B两个8位无符号数相乘,其16位积的低八位存入A,高八位存入B
,如果积大于255(0FFH),则置位溢出标志OV,进位标志Cy总是清零.
DIV AB ;A除以B.所得数的整数部分放入A,余数部分放入B
如果B为0,则A,B结果不变,置位溢出标志OV,进位标志Cy总是清零.
逻辑运算指令:
CLR A ;(A)=0
CPL A ;/A→A
RL A ;左循环移位1
RR A ;右循环移位1
RLC A ;A与Cy左循环移位1
RRC A ;A与Cy右循环移位1
ANL 逻辑与操作指令
ORL 逻辑或操作指令
XRL 逻辑异或操作指令
位操作指令:
MOV C,bit ;(bit)→Cy
CLR 清零
CPL 取反
SETB 置1
ANL 与
ORL 或
JC rel ;若Cy=1,则(PC)+2+rel→PC,若Cy=0,则(PC)+2→PC
JNC rel ;若Cy=1,则(PC)+2→PC,若Cy=0,则(PC)+2+rel→PC
JB bit,rel ;若(bit)=1,则(PC)+3+rel→PC,若(bit)=0,则(PC)+2→PC
JNB 与上相反
JBC bit,rel ;若(bit)=1,则(PC)+3+rel→PC且置(bit)=0,若bit=0,则(PC)+2→PC
评论