51单片机汇编语言指令汇总

51单片机汇编语言指令汇总本文以 AT89C51 为例 列举 51 单片机汇编语言指令集 AT89C51 单片机的汇编指令共有 111 条 可按功能分为 5 大类 数据传送类指令 28 条 算数操作类指令 24 条 逻辑运算类指令 25 条 控制转移类 17 条 位操作类 17 条 在此约定下列指令中各符号的意义 Rn 当前寄存器区的 8 个工作寄存器 n 0 7 Ri 当前寄存器区中可作间接寻址寄存器的 2 个寄存器 i 01 Direct 直接地址 data 包含在指令中的 8 位立即数 rel 相对转移指令中的偏移量 为 8 位带符号补码数 DPTR

在此约定下列指令中各符号的意义:

Rn:当前寄存器区的8个工作寄存器(n=0~7)
Ri:当前寄存器区中可作间接寻址寄存器的2个寄存器(i=0 1)
Direct:直接地址
#data:包含在指令中的8位立即数
rel:相对转移指令中的偏移量,为8位带符号补码数
DPTR:数据指针,16位数据地址寄存器
bit:直接寻址位
C:进位标志位
addr11:11位目的地址
addr16:16位目的地址
@:间接寻址寄存器前缀









一、数据传送类指令

1.以累加器为目的操作数指令

MOV A,Rn
MOV A,@Ri
MOV A,direct
MOV A,#data


2.以Rn为目的操作数的指令

MOV Rn,A
MOV Rn,direct
MOV Rn,#data

3.以直接地址为目的操作数指令

4.以寄存器间接地址为目的操作数指令

MOV @Ri,A
MOV @Ri,direct
MOV @Ri,#data

5.16位传送指令

MOV DPTR,#data16

6.堆栈操作指令

7.累加器A与外部数据存储器传送指令

8.查表指令

9.字节交换命令

XCH A,Rn
XCH A,direct
XCH A,@Ri

10.半字节交换指令

XCHD @Ri

二、算数操作类指令

1.加法指令

ADD A,Rn
ADD A,direct
ADD A,@Ri
ADD A,#data


2.带进位加法指令

ADDC A,Rn
ADDC A,direct
ADDC A,@Ri
ADDC A,#data


3.增1指令

4.十进制调整指令

DA A

5.带借位减法

SUBB A,Rn
SUBB A,direct
SUBB A,@Ri
SUBB A,#data


6.减1指令

7.乘法指令

MUL AB

8.除法指令

DIV AB

三、逻辑操作类指令

1.简单逻辑操作指令

2.左循环指令

RL A

3.带进位左移指令

RLC A

4.右移指令

RR A

5.带进位循环指令

RRC A

6.累加器半字节交换指令

SWAP A

7.逻辑与指令

ANL A,Rn
ANL A,direct
ANL A,#data
ANL A,@Ri
ANL direct,A
ANL direct,#data




7.逻辑或指令

ORL A,Rn
ORL A,direct
ORL A,#data
ORL A,@Ri
ORL direct,A
ORL direct,#data




7.逻辑异或指令

XRL A,Rn
XRL A,direct
XRL A,#data
XRL A,@Ri
XRL direct,A
XRL direct,#data




四、控制转移类指令

1.无条件转移指令

AJMP addr11

2.相对转移指令

SJMP rel

3.长跳转指令

LJMP addr16

4.间接跳转指令

JMP @A+DPTR

5.条件转移指令

6.比较不相等转移指令

7.减1不为0转移指令

DJNZ Rn,rel
DJNZ direct,rel

8.调用子程序指令

9.子程序返回指令

RET

10.中断返回指令

RETI

11.空操作指令

NOP

五、位操作指令

1.数据位传送指令

2.位变量修改指令

3.位变量逻辑与指令

3.位变量逻辑或指令

4.条件转移类指令

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176535.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午9:41
下一篇 2026年3月26日 下午9:42


相关推荐

  • 手写Dubbo框架「建议收藏」

    一句话认识DubboDubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。现在已成为Apache的开源项目。了解Dubbo详细了解直接进dubbo官网看中文文档:http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html一句话…

    2022年4月11日
    48
  • 6种php加密解密方法

    6种php加密解密方法<?phpfunctionencryptDecrypt($key,$string,$decrypt){if($decrypt){$decrypted=rtrim(mcrypt_d

    2022年8月1日
    13
  • Linux虚拟机连不上网

    Linux虚拟机连不上网Linux虚拟机连不上网

    2022年6月26日
    29
  • spring data jpa 深入浅出的理解「建议收藏」

    spring data jpa 深入浅出的理解「建议收藏」文章来源于:https://www.cnblogs.com/cmfwm/p/8109433.html这是一篇写得很不错的关于spring-data-jpa的文章,转载到此,方便大家学习交流.本篇进行Spring-data-jpa的介绍,几乎涵盖该框架的所有方面,在日常的开发当中,基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用,所有的内容都是在和Spri…

    2022年5月5日
    41
  • mac系统更新失败是怎么回事_苹果X注册Id出现验证失败

    mac系统更新失败是怎么回事_苹果X注册Id出现验证失败MacPorts在OSXMavericks上更新失败作者:CSDN阿锐运行更新命令:sudoport-vselfupdate时提示失败:localhost:previewmichael$sudoportselfupdate—>UpdatingMacPortsbasesourcesusingrsyncMacPortsbase

    2025年11月25日
    4
  • python pkl文件_Python字符串格式化输出的方式包括

    python pkl文件_Python字符串格式化输出的方式包括1.pkl文件pkl文件是python里面保存文件的一种格式,如果直接打开会显示一堆序列化的东西(二进制文件)。常用于保存神经网络训练的模型或者各种需要存储的数据。保存神经网络训练模型举例(使用pytorch进行保存)保存整个网络:torch.save(net,‘net.pkl’)保存网络的状态信息:torch.save(net.state_dict(),‘net_params.pkl’)提取神经网络的方法:torch.load(‘net.pkl’)存储数据举例importpan

    2025年10月15日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号