51单片机汇编语言指令集

发布者:WhisperingWinds最新更新时间:2015-09-10 来源: eefocus关键字:51单片机  汇编语言  指令集 手机看文章 扫描二维码
随时随地手机看文章
【汇编语言】51单片机汇编语言指令集


指 令 集(111条)

助 记 

说明

字节

周期

代 

1.数据传送指令(30条)

MOV A,Rn

寄存器送 

1

1

E8--EF

MOV A,data

直接字节送A 

2

1

E5

MOV A,@Ri

间接RAM 送A 

1

1

E6--E7

MOV A,#data

立接数送 

2

1

74

MOV Rn,A

送寄存器

1

1

F8--FF

MOV Rn,data

直接数送寄存器

2

2

A8--AF

MOV Rn,#data

立即数送寄存器

2

1

78--7F

MOV data,A

送直接字节

2

1

F5

MOV data,Rn

寄存器送直接字节

2

1

88—8F

MOV data,data

直接字节送直接字节

3

2

85

MOV data,@Ri

间接 Rn 送直接字节

2

2

86;87

MOV data,#data

立即数送直接字节

3

2

75

MOV @Ri,A

送间接 Rn

1

2

F6;F7

MOV @Ri,data

直接字节送间接Rn

1

1

A6;A7

MOV @Ri,#data

立即数送间接 Rn

2

2

76;77

MOV DPTR,#data16

16 位常数送数据指针

3

1

90

MOV C,bit

直接位送进位位

2

1

A2

MOV bit,C

进位位送直接位

2

2

92

MOVC A,@A+DPTR

A+DPTR 寻址程序存贮字节送 A

3

2

93

MOVC A,@A+PC

A+PC 寻址程序存贮字节送A

1

2

83

MOVX A,@Ri

外部数据送A(8 位地址)

1

2

E2;E3

MOVX A,@DPTR

外部数据送A(16 位地址)

1

2

E0

MOVX @Ri,A

送外部数据(8 位地址)

1

2

F2;F3

MOVX @DPTR,A 

送外部数据(16 位地址)

1

2

F0

PUSH data

直接字节进栈道,SP 加1

2

2

C0

POP data

直接字节出栈,SP 减1

2

2

D0

XCH A,Rn

寄存器与 交换

1

1

C8—CF

XCH A,data

直接字节与A 交换

2

1

C5

XCH A,@Ri

间接Rn 与A 交换

1

1

C6;C7

XCHD A,@Ri

间接Rn 与A 低半字节交换

1

1

D6;D7

2.逻辑运算指令(35条)

ANL A,Rn

寄存器与到A

1

1

58—5F

ANL A,data

直接字节与到A

2

1

55

ANL A,@Ri

间接RAM与到A

1

1

56;57

ANL A,#data

立即数与到A

2

1

54

ANL data,A

A与到直接字节

2

1

52

ANL data,#data

立即数与到直接字节

3

2

53

ANL C,bit

直接位与到进位位

2

2

82

ANL C,/bit

直接位的反码与到进位位

2

2

B0

ORL A,Rn

寄存器或到A

1

1

48—4F

ORL A,data

直接字节或到A

2

1

45

ORL A,@Ri

间接RAM或到A

1

1

46;47

ORL A,#data

立即数或到A

2

1

44

ORL data,A

A或到直接字节

2

1

42

ORL data,#data

立即数或到直接字节

3

2

43

ORL C,bit

直接位或到进位位

2

2

72

ORL C,/bit

直接位的反码或到进位位

2

2

A0

XRL A,Rn

寄存器异或到A

1

1

68—6F

XRL A,data

直接字节异或到A

2

1

65

XRL A,@Ri

间接RAM异或到A

1

1

66;67

XRL A,#data

立即数异或到A

2

1

64

XRL data,A

A异或到直接字节

2

1

62

XRL data,#data

立即数异或到直接字节

3

2

63

SETB C

进位位置 1

1

1

D3

SETB bit

直接位置 1

2

1

D2

CLR A

A清0

1

1

E4

CLR C

进位位清 0

1

1

C3

CLR bit

直接位清 0

2

1

C2

CPL A

A求反码

1

1

F4

CPL C

进位位取反 

1

1

B3

CPL bit

直接位取反

2

1

B2

RL A

A循环左移一位 

1

1

23

RLC A

带进位左移一位

1

1

33

RR A

A右移一位

1

1

03

RRC A

带进位右移一位

1

1

13

SWAP A

半字节交换

1

1

C4

3.算术运算指令(24条)

ADD A,Rn

寄存器加到A 

1

1

28—2F

ADD A,data

直接字节加到A

2

1

25

ADD A,@Ri

间接RAM 加到A

1

1

26;27

ADD A,#data

立即数加到A

2

1

24

ADDC A,Rn

寄存器带进位加到 A

1

1

38—3F

ADDC A,data

直接字节带进位加到A

2

1

35

ADDC A,@Ri

间接RAM 带进位加到A

1

1

36;37

ADDC A,#data

立即数带进位加到 A

2

1

34

SUBB A,Rn

从A 中减去寄存器和进位

1

1

98—9F

SUBB A,data

从A 中减去直接字节和进位

2

1

95

SUBB A,@Ri 

从A 中减去间接RAM 和进位

1

1

96;97

SUBB A,#data

从A 中减去立即数和进位

2

1

94

INC A

A加1

1

1

04

INC Rn

寄存器加 1

1

1

08—0F

INC data

直接字节加1

2

1

05

INC @Ri

间接RAM 加1

1

1

06;07

INC DPTR

数据指针加1

1

2

A3

DEC A

A减1

1

1

14

DEC Rn

寄存器减 1

1

1

18—1F

DEC data

直接字节减1

2

1

15

DEC @Ri

间接RAM 减1

1

1

16;17

MUL AB

A乘B

1

4

A4

DIV AB

A被B除

1

4

84

DA A

A十进制调整

1

1

D4

4.转移指令(22条)

AJMP addr 11

绝对转移

2

2

*1

LJMP addr 16

长转移

3

2

02

SJMP rel

短转移

2

2

80

JMP @A+DPTR

相对于DPTR 间接转移

1

2

73

JZ rel

若A=0 则转移

2

2

60

JNZ rel

若A≠0 则转移

2

2

70

JC rel

若C=1 则转移

2

2

40

JNC rel

若C≠1 则转移

2

2

50

JB bit,rel

若直接位=1 则转移

3

2

20

JNB bit,rel

若直接位=0 则转移

3

2

30

JBC bit,rel

若直接位=1 则转移且清除

3

2

10

CJNE A,data,rel

直接数与 比较,不等转移

3

2

B5

CJNE A,#data,rel

立即数与 比较,不等转移

3

2

B4

CJNE @Ri,#data,rel

立即数与间接RAM比较,不等转移

3

2

B6;B7

CJNE Rn,#data,rel

立即数与寄存器比较不等转移

3

2

B8—BF

DJNZ Rn,rel 

寄存器减 不为0 转移

2

2

D8—DF

DJNZ data,rel

直接字节减1 不为 转移

3

2

D5

ACALL addr 11

绝对子程序调用

2

2

*1

LCALL addr 16

子程序调用

3

2

12

RET

子程序调用返回

1

2

22

RETI

中断程序调用返回

1

2

32

NOP

空操作

1

1

00

 

关键字:51单片机  汇编语言  指令集 引用地址:51单片机汇编语言指令集

上一篇:测温并24l01无线传输设计(二)
下一篇:51单片机A/D和D/A转换器

推荐阅读最新更新时间:2024-03-16 14:31

51单片机12M晶振的延时程序
这是本人慢慢调出来的参数,有误差是必须的,除非用汇编才会精确,后续我会更新修改,尽量精确。 调试环境:Keil V4.02 源代码如下: #include reg52.h #include intrins.h //--延时0.2*n(ms)函数,若需延时1ms,则*5。适合延时50ms以下或左右的--// void DelayMSx02(unsigned char n) { unsigned char x, y; for(x=n; x 0; x--) for(y=96; y 0; y--); //for循环中的 -- 位置前后都可以 } //--延时t*2+5(us)函数 --// void DelayUS
[单片机]
8051单片机的中断响应过程解析
8051的CPU在每个机器周期期间,顺序采样每个中断源,CPU在下一个机器周期按优先级顺序查询中断标志,如查询到某个中断标志为1,将在下一个机器周期期间按优先级来进行中断处理。在下列任一种情况存在时,中断申请将被封锁。 1、CPU正在执一个同级或高级的中断服务程序2、当前机器周期不是当前指令周期的最后一个机器周期,即要保证把当前指令执行完。 CPU响应中断, 由硬件自动将相应的中断矢量地址装入程序程序计数器PC,转入该中断服务程序进行处理。 对于有些中断源,CPU在响应中断后会自动清除中断标志,如定时器溢出标志TF0,TF1,以及部中断标志IE0,IE1。 而有些中断标志,不会自动清除,只能由用户用户软件清除,如串
[单片机]
AT89S51单片机扩展EEPROM AT2864的设计
  2864A与AT89S51单片机的接口电路如下图所示。 2864A的片选端CE与高地址线P2.7连接,P2.7=0才能选中2864A。这种线选法决定了2864A对应多组地址空间,即0000H~1FFFH,2000H~3FFFH,4000H~5FFFH,6000H~7FFFH。当系统中有其他ROM和RAM 存储器 时,要统一考虑编址问题。      这8K字节存储器可作为数据存储器使用,但掉电后数据不丢失。      AT89S51对2864A进行写操作时所用指令包括: AT89S51对2864A进行读操作时所用指令包括: 下面介绍对2864A装载一个页面数据(16个字节)的子程序W
[单片机]
AT89S<font color='red'>51单片机</font>扩展EEPROM AT2864的设计
ILI9235的51单片机驱动程序-推箱子游戏
完整的代码下载地址: http://www.51hei.com/bbs/dpj-20611-1.html 下面是ILI9235的驱动程序部分预览 #include mylib.h /******************************************************************************* 函数名称:void ClearScreen(uint Color) 函数功能:刷屏使得全屏显示单一的颜色 入口参数:Clolr:屏幕背景的颜色(直接写入颜色的英文,在.h中有定义) 出口参数:无 备 注: ***************************************
[单片机]
ILI9235的<font color='red'>51单片机</font>驱动程序-推箱子游戏
51单片机DS18B20温度计制作 带仿真和源码
1、温度可通过调整DS18B20“+”“-”进行调整。 2、当温度超出范围,会有声光报警 3、因为在proteus中找不到三极管8550,所以拿了NPN管MSP8098代替,其原理是相同的,但程序稍做修改,位选本来用低电平,现在高电平位选。 4、如何装载程序?双击单片机—program file—找到相应的hex文件。 仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) 单片机源程序如下: #include reg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include math.h #include INTRINS.H #define uchar unsigne
[单片机]
<font color='red'>51单片机</font>DS18B20温度计制作 带仿真和源码
51单片机实现多级液晶显示中文菜单
  一、引言   目前小型的显示器主要有LCD和LED,LED显示器只能显示数字和有限个英文字符,不能显示汉字,显示内容不直观,操作人员只能根据约定格式了解显示内容。而LCD则可显示各种汉字和图形,尤其能实现中文菜单显示,为操作者提供方便友好的操作界面,并且功耗低,因此LCD得到广泛应用。而现在市面上带中文字库的LCD比比皆是,价格适中,且大部分具有与MCU统一的标准接口,为使用LCD实现中文菜单操作提供了很大的方便。相信更多的 电子 产品在提升性能的同时,设计更加人性化的中文菜单交互界面,将会使产品具有更广阔的前景。   二、YM12864液晶显示模块简介   YM12864汉字图形点阵液晶显示模块,可显示汉字及图形
[单片机]
<font color='red'>51单片机</font>实现多级液晶显示中文菜单
51单片机学习笔记7 -- 超声波测距
1.超声波 蝙蝠和某些海洋动物都能够利用高频率的声音进行回声定位或信息交流。它们能通过口腔或鼻腔把从喉部产生的超声波发射出去,利用折回的声波来定向,并判定附近物体的位置、大小以及是否在移动。超声波是一种频率高于20000赫兹的声波,它的方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。超声波因其频率下限大于人的听觉上限而得名。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹(Hz)。我们人类耳朵能听到的声波频率为20Hz-20000Hz。因此,我们把频率高于20000赫兹的声波称为“超声波”。通常用于医学诊断的超声波频率为1
[单片机]
<font color='red'>51单片机</font>学习笔记7 -- 超声波测距
基于80C51单片机和CH375芯片实现打印机驱动系统的设计
引言 本课题来源于北京普析通用公司的一个项目。由于公司现有单机版光谱仪器产品(如1810、T6等)采用的是并行口打印技术,而随着USB打印机技术的逐渐普及,并行口打印机越来越不好买到,而且有些用户的打印机只是USB接口而非并行口,因此现有仪器产品对打印机的支持变得不能适应用户需要。为了实现能将公司的并行口仪器直接和USB打印机相连进行打印,决定设计开发一款LPT-USB打印机的驱动器,负责并口仪器和USB打印机的连接。 本文利用单片机和USB总线接口芯片实现LPT-USB打印机的驱动器设计。利用该设计将能够实现并行打印口数据可以在USB打印机上的直接打印工作,克服了有些并口仪器必须连接并口打印机才能打印的弊端,极大地方便了用户
[单片机]
基于80C<font color='red'>51单片机</font>和CH375芯片实现打印机驱动系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved