导图社区 软件-单片机汇编语言-各类指令操作码格式总结
包括数据传送类指令,算术运算类指令,循环位移类指令,控制转移类指令、位操作类指令等。
社区模板帮助中心,点此进入>>
操作码
数据传送类指令
基本RAM传送指令MOV
累加器A
寄存器Rn
直接地址direct
寄存器间接地址@Ri
16位数据传送DPTR
累加器A与扩展RAM之间的传送指令(MOVX)
读扩展:MOVX A,@Ri
写扩展:MOVX @DPTR,A
访问程序存储器指令(亦称查表指令MOVC)
以DPTR为基址寄存器:MOVC A,@A+DPTR(64KB,远程查表)
以PC为基址寄存器:MOVC A,@A+PC(查表指令后256B,近程查表)
交换指令
字节交换XCH
半字节交换
XCHD低4位互换
SWAP高、低4位自交换
堆栈操作指令
PUSH入栈,SP+1
POP出栈,SP-1
算数运算类指令
加法指令
ADD不带进位位
ADDC带进位位
减法指令
SUBB带借位位
SUBB A,R2;A-R2
乘法指令
MUL AB;BA=(A)*(B),CY=0,AC不变,若(B)=0,则OV=0,否则为1
除法指令
DIV AB;A=A/B的商,B=A/B的余数,CY=0,若除数为0,OV=1,否则为0
BCD码加法调整指令
DA A;对加法指令后A的结果进行”加6(0110)修正“
加1指令
INC,只影响奇偶标志位
减1指令
DEC
逻辑运算类与循环位移类指令
与ANL
要屏蔽的位与0相与
或ORL
要置位的位与1相或
异或XRL(相同为0,相异为1)
要取反的位与1异或
清零CLR
取反CPL
循环左移RL,RLC
当A最高位为0时,左移一位相当于A的内容*2
循环右移RR,RRC
当A最低位为0时,右移一位相当于A的内容/2
控制转移类指令
无条件转移指令
短转移LJMP addr11
目标地址:下一指令首址的高5位与addr11合并
长转移AJMP addr16
目标地址:addr16
相对转移SJMP rel
目标地址:下一指令首址与rel相加
散转移JMP @A+DPTR
目标地址:A与DPTR内容相加
空操作NOP
目标地址:下一指令首址
条件转移指令
判0转移指令
JZ:A为0转移到目标地址执行,否则顺序执行
JNZ:A非0转移
比较不等转移指令
CJNE
减1非0转移指令
DJNZ
子程序调用及返回指令
子程序调用
LCALL addr16
三字节指令
ACALL addr11
二字节指令
子程序返回
RET
中断返回
RETI
位操作类指令
位数据传送
MOV C,bit
位变量修改
CLR,SETB
位逻辑与、或、取反
ANL、ORL、CPL
位条件转移
CY
JC为1转移
JNC
(BIT)
JB为1转移,否则顺序执行
JNB
JBC为1转移,否则将bit清零