MCS-51指令详解

合集下载

MCS51单片机指令系统

MCS51单片机指令系统

二、指令中的常用符号(书本27)
三、寻址方式
所谓寻址方式, 就是寻找操作数地址的方式, 在用汇编语 言编程时, 数据的存放、传送、 运算都要通过指令来完成。 编程者必须自始至终都要十分清楚操作数的位置, 以及如何 将它们传送到适当的寄存器去参与运算。每一种计算机都具 有多种寻址方式。寻址方式的多少是反映指令系统优劣的主 要指标之一。 寻址方式越多,指令功能越强。
在 MCS -51单片机指令系统中, 有以下7种寻 址方式:
(1) 立即寻址; (2) 直接寻址; (3) 寄存器寻址; (4) 寄存器间接寻址; (5) 基址寄存器加变址寄存器间接寻址; (6) 相对寻址; (7) 位寻址。
(1) 立即寻址;
立即寻址方式是将操作数直接存放在指令字节中,作为指 令的一部分存放在代码段里。
(2)堆栈操作必须是字节操作,且只能直接寻址。将累加器 A入栈、出栈指令可以写成:PUSH ACC和POP ACC而不 能写成PUSH A和POP A
7. 位寻址 指按照位进行的寻址操作,(前面讲的都是按字节进
行的寻址操作)。该种寻址方式中, 操作数是内部RAM单元 中20H到2FH的128个位地址以及SFR中的11个可进行 位寻址的寄存器中的位地址寻址。
比如:MOV C,20H;就是将RAM中位寻址区中20H位地 址中的内容送给C。区别与MOV A,20H;这个是将内部 RAM中20H单元的内容送给A。

第三章MCS51系列单片机指令系统及汇编语言程序设计

第三章MCS51系列单片机指令系统及汇编语言程序设计
例如: MOVX A, @R1 ;外部数据RAM中地址为P2R1的单元内容→A MOVX @DPTR,A ;A→外部数据RAM中DPTR为地址的单元
寄存器间接寻址的存储器空间包括:内部数据RAM和外部数据RAM。 内部数据RAM共用128字节,用一个字节的R0或R1可寻址整个空间。 外部数据RAM最大可达64K字节,仅用R0或R1无法寻址整个空间。在 MCS-51系列单片机指令中,对外部数据RAM作间接寻址有两种方法:第一种 由P2口提供高8位外部数据RAM地址,由R0或R1提供低8位地址,由此共同 寻址64K空间;第二种是用16位的DPTR作寄存器间接寻址。
3.1 MCS-51单片机的寻址方式
MCS-51单片机共有7种寻址方式:
➢ 立即寻址 ➢ 直接寻址 ➢ 寄存器寻址 ➢ 寄存器间接寻址 ➢ 变址寻址 ➢ 相对寻址 ➢ 位寻址
1. 立即寻址
立即寻址就是把操作数直接在指令中给出,即操作 数包含在指令中。立即操作数有8位和16位两种形式, 前面加“#”来表示。
CLR A ;0→A,累加器A中的内容清零 循环移位指令(4条)
RL A ;累加器A中的内容左移一位 RR A ;累加器A中的内容右移一位 RLC A ;累加器A中的内容连同进位位C左移一位 RRC A ;累加器A中的内容连同进位位C右移一位 例:A=16H,指令RR A执行后,A=0BH。
4.控制转移类指令 (共17条)

MCS-51指令详解

MCS-51指令详解

MCS-51指令详解

说明:为了使MCS-51单片机初学者快速入门,迅速掌握单片机指令含意、操作码、操作数及对应地址,汇编语言怎样编写等,现按指令操作码按顺序编写。

ORG 0000H

NOP ; 空操作指令

AJMP L0003 ; 绝对转移指令

L0003: LJMP L0006 ; 长调用指令

L0006: RR A ; 累加器A内容右移(先置A为88H)

INC A ; 累加器A 内容加1

INC 01H ; 直接地址(字节01H)内容加1

INC @R0 ; R0的内容(为地址) 的内容即间接RAM加1

;设R0=02H,02H=03H,单步执行后02H=04H

INC @R1 ; R1的内容(为地址) 的内容即间接RAM加1

;设R1=02H,02H=03H,单步执行后02H=04H

INC R0 ; R0的内容加1 (设R0为00H,单步执行后查R0内容为多少)

INC R1 ; R1的内容加1(设R1为01H,单步执行后查R1内容为多少)

INC R2 ; R2的内容加1 (设R2为02H,单步执行后查R2内容为多少)

INC R3 ; R3的内容加1(设R3为03H,单步执行后查R3内容为多少)

INC R4 ; R4的内容加1(设R4为04H,单步执行后查R4内容为多少)

INC R5 ; R5的内容加1(设R5为05H,单步执行后查R5内容为多少)

INC R6 ; R6的内容加1(设R6为06H,单步执行后查R6内容为多少)

INC R7 ; R7的内容加1(设R7为07H,单步执行后查R7内容为多少)

MCS-51单片机汇编指令集

MCS-51单片机汇编指令集

MCS-51单片机汇编指令集

2009-06-01 13:56

MCS-51单片机汇编指令集

(1)数据传送类指令(7种助记符)

1.MOV(英文为Move):对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送;

2.MOVC(Move Code)读取程序存储器数据表格的数据传送;

3.MOVX (Move External RAM) 对外部RAM的数据传送;

4.XCH (Exchange) 字节交换;

5.XCHD (Exchange low-order Digit) 低半字节交换;

6.PUSH (Push onto Stack) 入栈;

7.POP (Pop from Stack) 出栈;

(2)算术运算类指令(8种助记符)

1.ADD(Addition) 加法;

2.ADDC(Add with Carry) 带进位加法;

3.SUBB(Subtract with Borrow) 带借位减法;

4.DA(Decimal Adjust) 十进制调整;

5.INC(Increment) 加1;

6.DEC(Decrement) 减1;

7.MUL(Multiplication、Multiply) 乘法;

8.DIV(Division、Divide) 除法;

(3)逻辑运算类指令(10种助记符)

1.ANL(AND Logic) 逻辑与;

2.ORL(OR Logic) 逻辑或;

3.XRL(Exclusive-OR Logic) 逻辑异或;

4.CLR(Clear) 清零;

5.CPL(Complement) 取反;

6.RL(Rotate left) 循环左移;

第3章MCS-51单片机的指令系统

第3章MCS-51单片机的指令系统

第3章MCS-51单片机的指令系统

本章内容

MCS-51单片机指令系统的格式

MCS-51单片机寻址方式

指令系统的分析

本章采用简单例程讲解解汇编语言指令功能

3.1 指令格式

指令:即命令,人们给计算机的命令

指令有两种表示方式:

机器码——机器语言(机器能直接识别)

助记符——汇编语言(供设计人员使用)机器码和助记符一一对应,汇编语言可汇编为机器语言,机器语言可反汇编为汇编语言。

3.1 指令格式

汇编语言格式:

[标号:] 操作码助记符[操作数] ;[注释]

START : MOV A , #20H; 把数20H送入累加器A 中INC A; (A)加一

汇编语言指令的形式:

(1)没有操作数:

RET,RETI,NOP

(2)有1个操作数:

INC A,DEC 20H,CLR C,SJMP NEXT

(3)有2个操作数:

MOV R7, #DATA,ADD A, R0,DJNZ R2, LOOP (4)有3个操作数:

CJNE A, #20H, NEQ

机器语言的形式:

(1)单字节指令:

INC DPTR 指令机器代码:A3

ADD A, R7 指令机器代码:2F

(2)双字节指令:

SUBB A, 2BH 指令机器代码:95 2B

ORL C, /27H 指令机器代码:A0 27 (3)三字节指令:

MOV 20H, #00H 指令机器代码:75 20 00

3.2 MCS-51 单片机的寻址方式

寻址方式:CPU执行指令时获取操作数的方式MCS-51单片机有7种不同的寻址方式:

(1)立即寻址方式

(2)直接寻址方式

(3)寄存器寻址方式

MCS-51单片机汇编指令详解

MCS-51单片机汇编指令详解

MCS-51单片机汇编指令详解

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

MOV A,Rn

MOV A,direct

MOV A,@Ri

MOV A,#data

第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。第四条指令是将立即数data送到A中。

下面我们通过一些例子加以说明:

MOV A,R1 ;将工作寄存器R1中的值送入A,R1中的值保持不变。

MOV A,30H ;将内存30H单元中的值送入A,30H单元中的值保持不变。

MOV A,@R1 ;先看R1中是什么值,把这个值作为地址,并将这个地址单元中的值送入A中。如执行命令前R1中的值为20H,则是将20H单元中的值送

入A中。

MOV A,#34H ;将立即数34H送入A中,执行完本条指令后,A中的值是3 4H。

以寄存器Rn为目的操作的指令

MOV Rn,A

MOV Rn,direct

MOV Rn,#data

这组指令功能是把源地址单元中的内容送入工作寄存器,源操作数不变。

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

MOV direct,A 例: MOV 20H,A

MOV direct,Rn MOV 20H,R1

MOV direct1,direct2 MOV 20H,30H

MOV direct,@Ri MOV 20H,@R1

MOV direct,#data MOV 20H,#34H

以间接地址为目的操作数的指令

MOV @Ri,A 例:MOV @R0,A

MOV @Ri,direct MOV @R1,20H

MOV @Ri,#data MOV @R0,#34H

MCS-51指令大全

MCS-51指令大全

MCS-51系列单片机指令大全

以字母的顺序排列(A--Z)

A:

--------------------------------------------------------------------

1、ACALL addr11

指令名称:绝对调用指令

指令代码:

指令功能:构造目的地址,进行子程序调用其方法是以指令提供的11位地址(al0~a0),取代PC的低11位,PC的高5位不变。

操作内容:

PC←(PC)+2

SP←(SP)+1

(SP)←(PC)7~0

SP←(SP)+1

(SP)←(PC)15~8

PC10~0←addr l0~0

字节数:2

机器周期:2

使用说明:由于指令只给出子程序入口地址的低11位,因此调用范围是2KB。

2、ADD A,Rn

指令名称:寄存器加法指令

指令代码:28H~2FH

指令功能:累加器内容与寄存器内容相加

操作内容:A←(A)+(R n),n=0~7

字节数:1

机器周期;1

影响标志位:C,AC,OV

3、ADD A,direct

指令名称:直接寻址加法指令

指令代码:25H

指令功能:累加器内容与内部RAM单元或专用寄存器内容相加操作内容:A←(A)+(direct)

字节数:2

机器周期:1

影响标志位:C,AC,OV

4、ADD A,@Ri ’

指令名称:间接寻址加法指令

指令代码:26H~27H

指令功能:累加器内容与内部RAM低128单元内容相加

操作内容:A←(A)+((Ri)),i=0,1

字节数:1

机器周期:1

影响标志位:C,AC,OV

5、ADD A,#data

指令名称:立即数加法指令

MCS-51单片机的指令

MCS-51单片机的指令

MCS-51单⽚机的指令

MCS-51单⽚机的指令

⼀.数据传送类指令(29条)

.1 通⽤传送指令(16条)

格式:MOV ⽬的操作数,源操作数

功能:把第⼆操作数指定的字节内容传送到第⼀操作数指定的单元中。不影响源操作数内容,不影响别的寄存器和标志。

根据⽬的操作数的不同,通⽤传送指令⼜分为以下⼏种类型:

1.1 以累加器A为⽬的操作数的传送类指令(4条)

指令助记符及功能说明如下:

⽬的操作数源操作数功能说明源操作数寻

址⽅式

MO V A, direct ;(A)←

(direct)

直接寻址

MO V A, @Ri ;(A)←

((Ri))

寄存器间接

寻址

MO V A, Rn ;(A)←

(Rn)

寄存器寻址

MO A, #data ;(A)←data ⽴即寻址

V

这类指令的功能是将源操作数送到⽬的操作数A中。指令执⾏后的结果:除了奇偶标志P始终跟踪A中数据的奇偶性外,不影响PSW中的其他标志位。

1.2 以Rn为⽬的操作数的传送类指令(3条)

指令助记符及功能说明如下:

⽬的操作数源操作数功能说明源操作数寻址

⽅式

MO

V

Rn, A ;(Rn)←(A) 寄存器寻址

MO V Rn, direct ;(Rn)←

(direct)

其中,Rn是R0,…,R7中的任意⼀个。

例1 若(A)=20H,则执⾏指令MOV R3, A后,(R3)=20H。注意:Rn寄存器之间不能直接传送数据。如指令“MOV R1, R7”是错误的。

该类指令执⾏后,不影响PSW中的标志位。

1.3. 以直接地址directX为⽬的操作数的传送类指令(5条)

指令助记符及功能说明如下:

MCS-51单片机指令系统教程(2)

MCS-51单片机指令系统教程(2)
乘法指令 16位寄存器DPTR加一
从表中可见,指令的字节数与指令周期不是对等的关系 返回
2.1.4 指令的分类
MCS-51单片机的指令如果按功能划分可以分为五类: 1,数据传送类指令:完成数据在单片机内部之间的传送。
分为8位数和16位两种。除了奇偶位外,指令的执行对 PSW无影响。
2,算术运算指令:用于操作数之间的加、减、乘除运算。 【特点】:多数情况下:操作数之一在累加器A中,结果 也保留在A中,运算结果要影响PSW(进位标志、奇偶和 溢出标志等)。
49
48
47
46
45
44
43
42
41
40
3F
3E
3D
3C
3B
3A
39
38
37
26
25
24
23
22
21
20
2F
2E
2D
2C
2B
2A
29
28
24H
27
26
25
24
23
22
21 20 位地址
1F
1E
1D
1C
1B
1A
19
18
17
16
15
14
13
12
11
10
0F
0E
0D

MCS-51指令简介

MCS-51指令简介

MCS-51指令简介

MCS-51系列单片机指令系统分类

计算机的许多功能都是由程序实现,而程序是由指令编写而成,所以熟悉并掌握单片机的指令是非常重要的。为了便于学习,常把指令分成许多类型。51系列单片机共有111条指令,这些指令的集合称为指令系统。常用的分类方式有以下几种。

按寻址方式分为以下七种:

1、立即寻址

2、直接寻址

3、寄存器寻址

4、寄存器间接寻址

5、相对寻址

6、变址寻址

7、位寻址

按功能分为以下四种

1、数据传送指令

2、算术、逻辑运算指令

3、控制转移类指令

4、位操作指令(布尔指令)

若按字节又可分为单字节指令、双字节指令和三字节指令。

指令格式

MCS-51单片机采用汇编语言指令,一条汇编语言的语句最多包括四部分:标号、操作码、操作数和注释,其结构为:

标号:操作码操作数;注释

(1)标号位于语句的开始,由字母和数字组成,它代表该语句的地址。标号必须由字母打头,冒号结束。字母和数字的总数不应超过一定数量,一般标号不能为助记符。标号不是语句必要的组成部分。

(2)操作码在标号之后,是指令的助记符,表示语句的性质,是语句的核心。没有标号时,它作为语句的开始。

(3)操作数在操作码之后,二者用空格分开。操作数既可以是数据,也可以是地址,且必须满足寻址方式的规定。有多个操作数时,操作数之间用“,”分开。

指令中的常数可以是十进制、十六进制或二进制,具体格式如下:

二进制常数以B结尾,如:10100011B;

十六进制常数以H结尾,如:65H、0F1H;

十进制常数以D(可以省略)结尾,如:65D或65;

字符串常数用‘’表示,如‘A’表示A的ASCII码。

MCS51单片机指令系统详解

MCS51单片机指令系统详解

1.立即寻址 指令中直接给出参与操作的常数(称为立即数),这种
寻址方式称为立即寻址。 【例3-1】 MOV A,#60H 机器码为“74H 60H” 【例3-2】 MOV DPTR,#1808H 机器码是“90H 18H 08H”
2.直接寻址 指令中直接给出操作数所在存储单元的地址,这种寻址
方式称为直接寻址。 (1) 内部数据存储区(00H~7FH) 【例3-3】 MOV A, 40H 机器码是“E5H 40H”
7.BIT(定义位) 指令格式: 标号 BIT 项 指令功能:用于定义某特定位的标号。项指的是所定义的位。
经定义后,便可用指令中队左面的标号来代替BIT面项所指 出的位。 例如: FLG BIT F0 经BIT伪指令定义后,可以在指令中用FLG来代替位地址F0。 这就是直接寻址位的第四种表示方式,
3.1.2 伪指令
伪指令由程序设计人员在源程序中写出,是对汇编程序 进行汇编是下达的指示。例如,指定程序存放的地址,定义符 号,指定暂存数据的存储区等。伪指令并不生成目标代码,仅 仅在汇编过程中起作用,故又称他为汇编命令或汇编程序控制 命令。
不同的单片机开发系统,其汇编程序的伪指令并不完全相 同,下面介绍一些常用的伪指令。
例如指令: MOV 20H,#79H 机器码为:01110101 00100000 01111001B, 十六进制代 码为:752079H,其中75H为操作码,20H为操作数1,79H 为操作数2。

MCS-51单片机指令全总结

MCS-51单片机指令全总结

MCS-51单片机指令全总结

MCS-51单片机指令全总结

MCS-51单片机指令总结

(1)操作数中有direct、#data、bit的都是2字节指令;

(2)在操作数中没有以上三个变量却有@标志的都是1字节指令;(3)凡是3字节指令的都是两周期的指令;(4)乘除是单字节四周期的指令;

(5)字节调用指令、字节/位转移指令、字节/位逻辑指令、进/出栈指令、返回

指令、INCDPTR、MOVdirect,Rn、MOVRn,direct、MOVdirect,@Ri、MOV@Ri,direct、MOVX(外部数据)以及MOVC(程序寄存器)都是2周期指令;

(6)凡是direct、#data在一起的,数值比较转移指令(CJNE)、减1条件转移

指令(DJNZ)、位条件转移指令(JB/JNB)、位条件清0转移指令(JBC)、长调用指令(LCALL)、长转移指令(LJMP)、MOVDPTR,#data16都是3字节指令;

(7)绝对调用指令(ACALL)、绝对转移指令(AJMP)、减1条件转移指令(DJNZ)、累加器位条件转移指令(JC/JNC)、判0转移指令(JZ/JNZ)、短转移指令(SJMP)都是2字节指令;

(8)其他指令都是1字节1周期指令,所有指令中无3周期指令;以上即51单片机所有指令的汇总,如有不足,敬请指正。

20xx-10-20

扩展阅读:MCS-51单片机学习及其心得

MCS-51单片机学习及其心得

机械电子工程学院09电子(2)班曹小迪20xx10330236

20xx-20xx上学年我们专业开设了MCS-51单片机的原理及接口技术这么专业课程,对于电子专业学生的我们是非常有必要的。单片机是一切自动智能电子产品必须具备的一个不可或缺的控制中枢系统。通俗点讲就是电子产品的“大脑”。所以学习单片机对于做电子设计的我们来说有着远的意义。

第十一章 MCS-51单片机的指令

第十一章 MCS-51单片机的指令

P124,表11-2 3、ROM数据传送指令(MOVC,共2条) 只能采用变址寻址方式 MOVC A, @A+DPTR MOVC A, @A+PC 用于查表操作(类似于C语言的数组) 4、数据交换指令 目的操作数必须是A XCH: Exchang 交换 XCHD:低4位交换 SWAP A:A中的高4位与低4位交换
比较转移指令 六、 (类似C语言的比较运算)
C语言运算 符号 含义 > 大于 >= 大于等于 < 小于 <= 小于等于 == 恒等于 != 不等于
类别
汇编指令
关系运算 符
CJNE指令 (配合JC、 JNC指令)
2011年35题 执行完下列程序程序转向: 3151H MOV A, #5EH 3153H CJNE A, #5EH, 21H (2字节) (3字节) 此处,(A)==5EH 故不转移,顺序 执行,即执行 3156H处的指令
3156H 上述程序:3151H~3156H为存放该行指令的地址 2字节、3字节为存放该行指令需要的内存空间 CJNE: Compare Jump Not Equation,比较不相等则转移 CJNE A, #5EH, 21H ; A中数据不等于立即数5EH就转 ;移到21H,执行那里的指令 另外:若(A)>=5EH,即(A)-5EH>=0,够减,CY=0 若(A)<5EH,即(A)-5EH<0,不够减,要借位,CY=1 检测CY的值:P140,JC、JNC指令

MCS-51指令系统概述

MCS-51指令系统概述

MCS-51指令系统概述

1. 引言

MCS-51指令系统是一种被广泛使用的8位微控制器指令集架构。

它是Intel公司于1980年代开发的,旨在满足各种嵌入式系统的需求。MCS-51指令系统提供了丰富的指令集,包括数据操作、控制流程和

I/O操作等指令,可用于开发各种应用。

2. 指令格式

MCS-51指令系统的指令由不同长度的操作码组成,通常包括一个

或多个操作数。以下是MCS-51指令系统的指令格式:

[操作码] [操作数1] [操作数2]

其中,操作码表示要执行的操作,操作数用于指定相关数据或地址。

3. 数据操作指令

MCS-51指令系统提供了丰富的数据操作指令,方便对数据进行加载、存储和处理。以下是一些常用的数据操作指令:

•MOV:将一个操作数的值复制到另一个操作数。

•ADD:将两个操作数相加,并将结果存储在目标操作数中。

•SUB:将第二个操作数从第一个操作数中减去,并将结果存储在目标操作数中。

•INC:将操作数的值加1。

•DEC:将操作数的值减1。

4. 控制流程指令

MCS-51指令系统提供了各种控制流程指令,用于实现条件和无条件的控制流程。以下是一些常用的控制流程指令:

•JMP:无条件跳转到指定的地址。

•JZ:如果零标志位被设置,那么跳转到指定的地址。

•JC:如果进位标志位被设置,那么跳转到指定的地址。

•CALL:调用一个子程序,并将返回地址存储在堆栈中。

5. I/O操作指令

MCS-51指令系统提供了丰富的I/O操作指令,用于控制外设设备的输入和输出。以下是一些常用的I/O操作指令:

•MOV:将一个操作数的值复制到特殊功能存放器或外设设备存放器。

单片机教程3-MCS-51指令系统

单片机教程3-MCS-51指令系统

THANKS FOR WATCHING
感谢您的观看
03
丰富的指令集,支持多种寻 址方式。
04
05
具有低功耗模式和空闲模式。
MCS-51单片机的应用领域
智能仪表
用于数据采集、处理和控制。
工业自动化
用于控制电机、阀门等设备。
智能家居
用于家电控制、安防监控等。
通信设备
用于调制解调器、路由器等设 备。
MCS-51单片机的历史与发展
01
1976年,Intel公司发布MCS-48系列单片机。
SUB
从目标操作数中减去另一个操作数,并将结果存储在目标操作数 中。
CMP
比较两个操作数的大小,并将结果存储在累加器中。
乘法指令
MUL
将累加器中的值与另一个操作数相乘,并将结果存储在目标操作数中。
MULA
将累加器中的值与另一个16位操作数相乘,并将结果存储在目标操作数中。
除法指令
DIV
将累加器中的值除以另一个操作数,并将商存储在累加器中,余数存储在寄存 器中。
DIVA
将累加器中的值与另一个16位操作数相除,并将商存储在累加器中,余数存储 在寄存器中。
Βιβλιοθήκη Baidu
05 控制指令
程序控制指令
无条件跳转指令
如`AJMP`、`SJMP`、`LJMP`等,用于改 变程序的执行流程,直接跳转到指定地 址。

MCS-51指令系统概述(ppt 49页)

MCS-51指令系统概述(ppt 49页)
转移目的地址 =下一条指令的第一个字节地 址 PC+相对偏移量 rel • 利用内部RAM单元作程序循环计数器。
三、调用和返回指令 • 主程序和子程序结构
主程序二次调用子程序示意图
二级子程序嵌套示意图
• 调用和返回
子程序是独立于主程序的具有特定功能的程序段,单独编 写,能被主程序调用,又能返回主程序。
第三章 MCS-51指令系统
第一节 指令系统概述
一、指令类型
MCS-51指令系统: • 数据传送指令 • 算术运算指令 • 逻辑运算指令 • 位操作指令 • 控制转移指令
二、指令格式
操作码 [操作数1],[操作数2],[操作数3] • 操作码:表示指令进行何种操作。 • 操作数:指出了参加操作的数据或数据存放的地
状态 C B A 状态转换操作 0 0 0 1 状态5转0:0→C 1 0 1 1 状态0转1;1→B 2 0 1 0 状态1转2;0→A 3 1 1 0 状态2转3;1→C 4 1 0 0 状态3转4;0→B 5 1 0 1 状态4转5:1→A
主程序: MAIN:MOV SP,#60H ;初始化 MOV 30H,#0 SETB P1.0
4.汇编结束伪指令
END 功能:汇编结束标志。
5.标号和注释 标号:操作码 [操作数1],[操作数2],[操作数3];注释
标号:加在指令之前,必须以字母开始,后跟1~8个字母 或数字,并以冒号“:”结尾。标号的值是它后面的指令 存储地址。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MCS-51指令详解

说明:为了使MCS-51单片机初学者快速入门,迅速掌握单片机指令含意、操作码、操作数及;对应地址,汇编语言怎样编写等,现按指令操作码按顺序编写,可对照本公司编写的<>一书第145页指令手册查看,更详细资料请阅第四章 MCS-51指令系统" 及第124页指令系统摘要。并在仿真器上装入;JJM.HEX文件,并对有关单元置数,用单步(F8)验证其正确性及其运行结果。

ORG 0000H

NOP ;空操作指令

AJMP L0003 ;绝对转移指令

L0003: LJMP L0006 ;长调用指令

L0006: RR A ;累加器A内容右移(先置A为88H)

INC A ; 累加器A 内容加1

INC 01H ;直接地址(字节01H)内容加1

INC @R0 ; R0的内容(为地址) 的内容即间接RAM加1

;(设R0=02H,02H=03H,单步执行后02H=04H)

INC @R1 ; R1的内容(为地址) 的内容即间接RAM加1

;(设R1=02H,02H=03H,单步执行后02H=04H)

INC R0 ; R0的内容加1 (设R0为00H,单步执行后查R0内容为多少) INC R1 ; R1的内容加1(设R1为01H,单步执行后查R1内容为多少)

INC R2 ; R2的内容加1 (设R2为02H,单步执行后查R2内容为多少) INC R3 ; R3的内容加1(设R3为03H,单步执行后查R3内容为多少) INC R4 ; R4的内容加1(设R4为04H,单步执行后查R4内容为多少) INC R5 ; R5的内容加1(设R5为05H,单步执行后查R5内容为多少) INC R6 ; R6的内容加1(设R6为06H,单步执行后查R6内容为多少) INC R7 ; R7的内容加1(设R7为07H,单步执行后查R7内容为多少) JBC 20H,L0017; 如果位(如20H,即24H的0位)为1,则转移并清0该位L0017: ACALL S0019 ;绝对调用

S0019: LCALL S001C ;长调用

S001C: RRC A ;累加器A的内容带进位位右移(设A=11H,C=0

;单步执行后查A和C内容为多少)

DEC A ;A的内容减1

DEC 01H ;直接地址(01H)内容减1

DEC @R0 ;R0间址减1,即R0的内容为地址,该地址的内容减1 DEC @R1 ; R1间址减1

DEC R0 ; R0内容减1

DEC R1 ; R1内容减1

DEC R2 ; R2内容减1

DEC R3 ; R3内容减1

DEC R4 ; R4内容减1

DEC R5 ; R5内容减1

DEC R6 ; R6内容减1

DEC R7 ; R7内容减1

JB 20H,L002D;如果位(20H,即24H的0位)为1则转移L002D: AJMP L0017 ;绝对转移

RET ;子程序返回指令

RL A ;A左移

ADD A,#01H ;A的内容与立即数(01H)相加

ADD A,01H ; A的内容与直接地址(01H内容)相加 ADD A,@R0 ; A的内容与寄存器R0的间址内容相加 ADD A,@R1 ; A的内容与寄存器R1的间址内容相加 ADD A,R0 ; A的内容与寄存器R0的内容相加

ADD A,R1 ; A的内容与寄存器R1的内容相加

ADD A,R2 ; A的内容与寄存器R2的内容相加

ADD A,R3 ; A的内容与寄存器R3的内容相加

ADD A,R4 ; A的内容与寄存器R4的内容相加

ADD A,R5 ; A的内容与寄存器R5的内容相加

ADD A,R6 ; A的内容与寄存器R6的内容相加

ADD A,R7 ; A的内容与寄存器R7的内容相加

JNB 30H,L0041 ;直接位(30H)为0相对转移

L0041: ACALL S0100 ;绝对调用

RETI ;中断返回指令

RLC A ;带进位位左移

ADDC A,#02H ;A带进位位与立即数(#02H)相加

ADDC A,02H ; A带进位位与直接地扯(02H内容)相加

ADDC A,@R0 ; A带进位位与R0间扯内容相加 ADDC A,@R1 ; A带进位位与R1间扯内容相加 ADDC A,R0 ; A带进位位与R0内容相加

ADDC A,R1 ; A带进位位与R1内容相加

ADDC A,R2 ; A带进位位与R2内容相加

ADDC A,R3 ; A带进位位与R3内容相加

ADDC A,R4 ; A带进位位与R4内容相加

ADDC A,R5 ; A带进位位与R5内容相加

ADDC A,R6 ; A带进位位与R6内容相加

ADDC A,R7 ; A带进位位与R7内容相加 JC L0095 ;进位为1转移

NOP

AJMP L0017 ;绝对转移

ORL 02H,A ;直接地址内容与A或

ORL 02H,#02H ; 直接地址内容与立即数或 ORL A,#44H ;A与立即数或

ORL A,02H ; A与直接地址内容或

ORL A,@R0 ; A与R0间址内容或

ORL A,@R1 ; A与R1间址内容或 ORL A,R0 ; A与R0内容或

ORL A,R1 ; A与R1内容或

ORL A,R2 ; A与R2内容或

ORL A,R3 ; A与R3内容或

ORL A,R4 ; A与R4内容或

ORL A,R5 ; A与R5内容或

ORL A,R6 ; A与R6内容或

ORL A,R7 ; A与R7内容或

相关文档
最新文档