51单片机汇编指令表--STC宏晶MCU

发布时间:2024年01月10日

51单片机汇编指令表–STC宏晶MCU


51单片机汇编指令简介

51系列单片机汇编指令表非常庞大,包含了五大类指令,以下是各类指令的一个简要概述和部分示例:

一、数据传送类指令

这些指令用于在寄存器之间、寄存器与存储单元之间以及立即数与寄存器之间的数据传输。

  • MOV:通用数据传送指令
    • MOV A,Rn 将工作寄存器Rn的内容传送到累加器A中。
    • MOV direct,A 将累加器A的内容传送到直接地址指定的内部RAM单元。
    • MOVX A,@Ri (对于访问外部RAM)通过间接寻址将外部RAM中的内容传送到累加器A(其中Ri为R0或R1)。
    • MOVX @DPTR,A 向外部RAM以DPTR指向的地址写入累加器A的内容。

二、算术操作类指令

包括加法、减法、比较等操作。

  • ADD、ADDC:对累加器进行加法运算。
  • SUBB:带借位的减法运算。
  • INC、DEC:递增或递减指定寄存器或内存单元的值。

三、逻辑运算类指令

涉及逻辑与、或、异或等操作。

  • ANL(AND Logical):按位逻辑与操作。
  • ORL(OR Logical):按位逻辑或操作。
  • XRL(Exclusive OR Logical):按位逻辑异或操作。

四、控制转移类指令

用于程序流程控制,如条件跳转和无条件跳转。

  • JMP:无条件跳转到指定地址。
  • AJMP、LJMP:短跳转和长跳转到子程序或其他地址。
  • JC、JNC、JZ、JNZ 等:根据标志位状态进行条件转移。

五、位操作类指令

处理单个位的操作。

  • SETB:设置一个位为1。
  • CLR:清零一个位。
  • CPL:取反一个位。
  • JB(Jump if Bit Set)、JNB(Jump if Bit Not Set):依据某位的状态进行跳转。
    以上只是简单的举例,并未列出所有51单片机的汇编指令。每条指令的具体格式、功能和使用情况可以参考完整的MCS-51汇编语言手册。

宏晶MCU-STC8Hxx

算术运算

助记符指令说明字节时钟
ADD A,Rn寄存器内容加到累加器11
ADD A,direct直接地址单元的数据加到累加器21
ADD A,@Ri间接地址单元的数据加到累加器11
ADD A,#data立即数加到累加器21
ADDC A,Rn寄存器带进位加到累加器11
ADDC A,direct直接地址单元的数据带进位加到累加器21
ADDC A,@Ri间接地址单元的数据带进位加到累加器11
ADDC A,#data立即数带进位加到累加器21
SUBB A,Rn累加器带借位减寄存器内容11
SUBB A,direct累加器带借位减直接地址单元的内容21
SUBB A,@Ri累加器带借位减间接地址单元的内容11
SUBB A,#data累加器带借位减立即数21
INC A累加器加111
INC Rn寄存器加111
INC direct直接地址单元加121
INC @Ri间接地址单元加111
DEC A累加器减111
DEC Rn寄存器减111
DEC direct直接地址单元减121
DEC @Ri间接地址单元减111
INC DPTR地址寄存器DPTR加111
MUL ABA乘以B,B存放高字节,A存放低字节12
DIV ABA除以B,B存放余数,A存放商16
DA A累加器十进制调整13

逻辑运算

助记符指令说明字节时钟
ANL A,Rn累加器与寄存器相与11
ANL A,direct累加器与直接地址单元相与21
ANL A,@Ri累加器与间接地址单元相与11
ANL A,#data累加器与立即数相与21
ANL direct,A直接地址单元与累加器相与21
ANL direct,#data直接地址单元与立即数相与31
ORL A,Rn累加器与寄存器相或11
ORL A,direct累加器与直接地址单元相或21
ORL A,@Ri累加器与间接地址单元相或11
ORL A,#data累加器与立即数相或21
ORL direct,A直接地址单元与累加器相或21
ORL direct,#data直接地址单元与立即数相或31
XRL A,Rn累加器与寄存器相异或11
XRL A,direct累加器与直接地址单元相异或21
XRL A,@Ri累加器与间接地址单元相异或11
XRL A,#data累加器与立即数相异或21
XRL direct,A直接地址单元与累加器相异或21
XRL direct,#data直接地址单元与立即数相异或31
CLR A累加器清011
CPL A累加器取反11
RL A累加器循环左移11
RLC A累加器带进位循环左移11
RR A累加器循环右移11
RRC A累加器带进位循环右移11
SWAP A累加器高低半字节交换11

数据传输

助记符指令说明字节时钟
MOV C,bit直接地址位送入进位位21
MOV bit,C进位位送入直接地址位21
MOV A,Rn寄存器内容送入累加器11
MOV A,direct直接地址单元中的数据送入累加器21
MOV A,@Ri间接地址中的数据送入累加器11
MOV A,#data立即数送入累加器21
MOV Rn,A累加器内容送入寄存器11
MOV Rn,direct直接地址单元中的数据送入寄存器21
MOV Rn,#data立即数送入寄存器21
MOV direct,A累加器内容送入直接地址单元21
MOV direct,Rn寄存器内容送入直接地址单元21
MOV direct,direct直接地址单元中的数据送入另一个直接地址单元31
MOV direct,@Ri间接地址中的数据送入直接地址单元21
MOV direct,#data立即数送入直接地址单元31
MOV @Ri,A累加器内容送间接地址单元11
MOV @Ri,direct直接地址单元数据送入间接地址单元21
MOV @Ri,#data立即数送入间接地址单元21
MOV DPTR,#data1616位立即数送入数据指针31
MOVC A,@A+DPTR以DPTR为基地址变址寻址单元中的数据送入累加器14
MOVC A,@A+PC以PC为基地址变址寻址单元中的数据送入累加器13
MOVX A,@Ri扩展地址(8位地址)的内容送入累加器A中13[1]
MOVX A,@DPTR扩展RAM(16位地址)的内容送入累加器A中12[1]
MOVX @Ri,A将累加器A的内容送入扩展RAM(8位地址)中13[1]
MOVX @DPTR,A将累加器A的内容送入扩展RAM(16位地址)中12[1]
PUSH direct直接地址单元中的数据压入堆栈21
POP direct栈底数据弹出送入直接地址单元21
XCH A,Rn寄存器与累加器交换11
XCH A,direct直接地址单元与累加器交换21
XCH A,@Ri间接地址与累加器交换11
XCHD A,@Ri间接地址的低半字节与累加器交换11

布尔操作

助记符指令说明字节时钟
CLR C清零进位位11
CLR bit清0直接地址位21
SETB C置1进位位11
SETB bit置1直接地址位21
CPL C进位位求反11
CPL bit直接地址位求反21
ANL C,bit进位位和直接地址位相与21
ANL C,/bit进位位和直接地址位的反码相与21
ORL C,bit进位位和直接地址位相或21
ORL C,/bit进位位和直接地址位的反码相或21
JC rel进位位为1跳转21/3[2]
JNC rel进位位为0跳转21/3[2]
JB bit,rel直接地址位为1则跳转31/3[2]
JNB bit,rel直接地址位为0则跳转31/3[2]
JBC bit,rel直接地址位为1则跳转,该位清031/3[2]

程序分支

助记符指令说明字节时钟
ACALL addr11短调用子程序23
LCALL addr16长调用子程序33
RET子程序返回13
RETI中断返回13
AJMP addr11短跳转23
LJMP addr16长跳转33
SJMP rel相对跳转23
JMP @A+DPTR相对于DPTR的间接跳转14
JZ rel累加器为零跳转21/3[2]
JNZ rel累加器非零跳转21/3[2]
CJNE A,direct,rel累加器与直接地址单元不相等跳转32/3[3]
CJNE A,#data,rel累加器与立即数不相等跳转31/3[2]
CJNE Rn,#data,rel寄存器与立即数不相等跳转32/3[3]
CJNE @Ri,#data,rel间接地址单元与立即数不相等跳转32/3[3]
DJNZ Rn,rel寄存器减1后非零跳转22/3[3]
DJNZ direct,rel直接地址单元减1后非零跳转32/3[3]
NOP空操作11
  • 1、访问外部扩展 RAM 时,指令的执行周期与寄存器 BUS_SPEED 中的 SPEED[2:0]位有关
  • 2、对于条件跳转语句的执行时间会依据条件是否满足而不同。当条件不满足时,不会发生跳转而继续执行下一条指令,此时条件跳转语句的执行时间为 1 个时钟;当条件满足时, 则会发生跳转,此时条件跳转语句的执行时间为 3 个时钟。
  • 3、对于条件跳转语句的执行时间会依据条件是否满足而不同。当条件不满足时,不会发生跳转而继续执行下一条指令,此时条件跳转语句的执行时间为 2 个时钟;当条件满足时,则会发生跳转,此条件跳转语句的执行时间为 3 个时钟
文章来源:https://blog.csdn.net/qq_39567970/article/details/135501670
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。