51单片机的指令系统

合集下载

MCS-51单片机的指令系统

MCS-51单片机的指令系统

整理ppt
12
4.2 寻址方式
51汇编语言有42种操作码助记符,用来描述33种操作功 能。一种操作码可以使用一种以上的数据类型,又由于 助记符规定了其访问的存储器空间,所以一种功能可能 有几个助记符(如MOV、MOVX、MOVC)。功能助记 符与寻址方式组合,得到111条指令。
整理ppt
13
4.2 寻址方式
1)无操作数单字节指令
这类指令只有操作码字段,操作数隐含在操作码中。
例如:INC DPTR
指令码为 :
数据指针隐含其中
整理ppt
6
指令的组成及字节数
2)含有操作数寄存器号的单字节指令 单字节的指令码由操作码字段和指示操作数所 在寄 存器号的字段组成。 例如;MOV A,Rn 指令码为:
其中,rrr为寄存器Rn的编号
整理ppt
2
4.1 指令和指令程序
“指令”: CPU能直接识别和执行的命令。 指令系统:CPU所能执行的全部指令的集合。
与CPU的能力、使用的方便灵活性密切相关。 指令的记忆问题?指令本身是二进制代码。
例如以下的51单片机指令:
把10放到累 740AH 加器A中 为பைடு நூலகம்便于记忆 指令助
A加20,结 果仍在A中
整理ppt
8
指令的组成及字节数
3.三字节指令(17条)
这条指令的指令码的第1字节为操作码;第2和第3字节为 操作数或操作数地址,有如下3类。 1)16位数据 例如:MOV DPTR,#26ABH 指令码为:
整理ppt
9
指令的组成及字节数
2)8位地址和8位数据 例如:MOV 74H,#0FFH 指令码为:
在MCS-51指令中,若操作数是以R0~R7来表示操作数时, 就属于寄存器寻址方式。

MCS51单片机指令系统

MCS51单片机指令系统

第一条指令为远查表指令,可以在64K的程序存储器空间寻 址。基地址寄存器为DPTR,其意思为,DPTR里面存放的是 程序存储器中数据表格的首地址,A为数据地址的偏移量。
这条指令执行以后,以 (A)+(DPTR)的数值为地址数 据就送进A里面来了,也就是从表格首地址开始以后的第(A) 个数据被送进A了。(举例子说明)
编写好的程序都放在程序存储器中,由于一个存储地址所 指示的存储单元只能存放一字节的数据。所以,在存放指令时, 必须将指令拆分成一个一个字节进行连续存放。
比如: 实现“累加器加10H”这条指令,其机器语言为 0111010000010000, 占用了两个字节,就必须拆成两个字节 进行连续存储。
但是,用二进制来表示比较麻烦,因此,也常用十六进制来 表示如:74H 10H来表示以上这条机器语言。可见,用十六进 制表示指令比较简单,但是,指令系统有上百条指令,不易记 住。所以,一般采用容易记住的一些缩写符号来表示机器语言,
2. 在指令中直接给出操作数的地址, 这种寻址方式就属
于直接寻址方式。在这种方式中, 指令的操作数部分直接 是操作数的地址。
比如:MOV A,30H;将30H里面的数送到A里面 MOV 21H,30H;将30H里面的数存放到21H里面 在MCS -51 单片机指令系统中, 直接寻址方式中可
以访问 3 种存储器空间: (1) 内部数据存储器的低 128 个字节单元(00H~
7. 位寻址 指按照位进行的寻址操作,(前面讲的都是按字节进
行的寻址操作)。该种寻址方式中, 操作数是内部RAM单元 中20H到2FH的128个位地址以及SFR中的11个可进行 位寻址的寄存器中的位地址寻址。
比如:MOV C,20H;就是将RAM中位寻址区中20H位地 址中的内容送给C。区别与MOV A,20H;这个是将内部 RAM中20H单元的内容送给A。

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

第三章MCS51系列单片机指令系统及汇编语言程序设计
AJMP addr11 绝对转移指令为2K地址范围内的转移指令,对转移目的地址的要求与 ACALL指令中对子程序入口地址的要求相同。 【3】短转移指令
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)

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

第四章 MCS-51单片机的指令系统
7种寻址方式,111条指令
字节数 单字节指令:49条 双字节指令:45条 三字节指令:17条 单周期指令:64条 双周期指令:45条 四周期指令:2 条 数据传送类:29条 算术运算类:24条 逻辑运算类:24条 控制转移类:17条 位操作类: 17条
运算速度
功能
4.3 MCS-51的指令系统
1.数据传送指令
4.2 寻址方式
5.变址寻址 变址寻址只能对程序存储器中数据进行 操作。由于程序存储器是只读的,因此变址 寻址只有读操作而无写操作。 有效地址 =基地址寄存器 +变址寄存器 基地址寄存器 DPTR 或 PC 变址寄存器 A 该寻址方式常用于访问程序存储器,查表 例:MOVC A,@ A+DPTR ;A←(A+DPTR) 如:MOVC A,@ A+PC ;A←(A+PC)
4.2 寻址方式
说明: (1)本寻址方式是专门针对程序存储器的 寻址方式,寻址范围可达到64KB。 (2)本寻址方式的指令只有3条: MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR
4.2 寻址方式
6.相对寻址 把指令中给定的地址偏移量与本指令所 在单元地址(PC内容)相加得到真正有效的 操作数所存放的地址。 如 JC 60H ;设(PC)= 2000H为基 址,偏移量为60H; 则当C=1时,转移的目的地址=2000H+2+60H 相对寻址的有效地址: D=PC+rel 则rel=D-PC D:目的地址 PC:源地址 rel:相对地址
片内RAM和SFR之间的传送:MOV


片外RAM与ACC之间的传送:MOVX
程序存储器的数据送ACC :MOVC 数据交换类:XCH、XCHD、SWAP 堆栈操作类:PUSH、POP

单片机应用-MCS-51单片机指令系统

单片机应用-MCS-51单片机指令系统

单片机应用-MCS-51单片机指令系统单片机应用 MCS-51 单片机指令系统在当今的电子技术领域,单片机的应用可谓无处不在。

从家用电器到工业自动化,从医疗设备到航空航天,单片机都扮演着至关重要的角色。

而在众多单片机中,MCS-51 单片机以其经典的架构和丰富的指令系统,成为了学习和应用单片机的重要基础。

MCS-51 单片机的指令系统是其能够实现各种功能的核心。

指令就像是单片机的“语言”,通过这些指令,我们可以让单片机执行各种各样的任务,如数据的运算、存储和传输,控制外部设备的工作,实现复杂的逻辑判断等等。

MCS-51 单片机的指令可以分为五大类:数据传送指令、算术运算指令、逻辑运算指令、控制转移指令和位操作指令。

数据传送指令是最基本也是最常用的指令类型。

它包括了将数据从一个存储单元传送到另一个存储单元,或者将立即数传送到寄存器或存储单元等操作。

例如,“MOV A, 50H”这条指令就是将立即数 50H 传送到累加器 A 中。

通过数据传送指令,我们可以在单片机内部实现数据的灵活调配和共享。

算术运算指令则用于进行加、减、乘、除等基本的数学运算。

这些指令能够对寄存器中的数据或者立即数进行操作,并将结果存放在指定的寄存器中。

比如,“ADD A, R0”指令会将累加器 A 的值和寄存器R0 的值相加,结果存放在累加器 A 中。

算术运算指令在实现数据处理和计算功能时非常有用。

逻辑运算指令主要包括与、或、异或等操作。

这些指令可以对寄存器中的数据进行位级的逻辑运算,从而实现对数据的筛选、组合和变换。

例如,“ANL A, R0”指令会对累加器 A 和寄存器 R0 的值进行按位与操作。

控制转移指令是实现程序流程控制的关键。

它们可以让程序根据特定的条件跳转到不同的地址执行,或者在一定的范围内循环执行一段代码。

常见的控制转移指令有无条件转移指令(如“LJMP addr16”)、条件转移指令(如“JC rel”)和循环指令(如“DJNZ Rn, rel”)。

MCS-51单片机指令系统

MCS-51单片机指令系统

6、堆栈操作指令
进栈 【PUSH direct;(SP)+1→SP,(dirsct)→(SP)】 出栈 【POP direct;(SP)→(dirsct),(SP)-1→SP】
MCS-51指令系统中有两条读程序存储器中表格数据的指令。 因为对程序存储器只能读不能写,所以查表指令数据传送都是单向的, 即从程序存储器到累加器中。
SETB C;1→C置一
3、位逻辑运算指令
ANL C,bit;C)∧(bit)→C
ORL C,/bit;(C)∨(~bit)→C
“ / “表示取反
JB bit,re1;若(bit)=1,则(PC)+rel→PC;否则,(PC)+3→PC
4、位条件转移指令
JNB bit,re1;若(bit)=0,则(PC)+rel→PC;否则,(PC)+3→PC
1、逻辑与指令【ANL A,#data;(A)∧data→A 】
2、逻辑或指令【ORL A,#data;(A)∨data→A】
3、逻辑异或指令【XRL A,#data;(A)⊕data→A】
4、累加器A清零指令【CLA A;0→A 】
5、累加器A取反指令【CPL A; ̅A→A】
RL A;左循环移位指令
2、以Rn为目的操作数的指令 【MOV Rn, #data;data→Rn】 (源操作数:累加器A、片内RAM单元、SFR内容,立即数) 传送到当前工作寄存器组R0~R7的某个寄存器
3、以直接地址为目的操作数的指令 【MOV direct, #data;data→direct】 (源操作数:累加器、片内RAM单元、工作寄存器,立即数) 传送到由direct所指的片内存储单元
返回指令

51系列单片机指令系统

51系列单片机指令系统

MOV DPTR,#1000H MOVX A,@DPTR INC DPTR, MOVX @DPTR,A 7、程序存储器向累加器A传送指令 MOVC A,@A+DPTR MOV DPTR,#100H MOV A,R0 MOVC A,@A+DPTR ORG 0100H. DB 0,1,4,9,16,25 8、堆栈操作指令 PUSH direct POP direct 第一条指令称之为入栈指令,就是将direct中的内容 送入堆栈中,第二条指令称之为弹出指令,就是将堆栈 中的内容送回到direct中。
位寻址时,操作数是二进制数的某一位,其位地 址出现在指令中,例如指令 • SETB bit ;(bit) ← l • 51系列单片机可用于位寻址的空间是内部RAM的可 位寻址区和SFR区中的字节地址可以被8整除(即地址以 “0”或“8”结尾)的寄存器所占空间,寻址方式如表 2-2所示。
表2-2 寻址方式一览表
寻 址 方 式
寻 址 范 围
R0-R7 ,DPTR ACC,B,C(CY位)
内部RAM 00H-7FH 特殊功能寄存器 80H-FFH 内部RAM位寻址区 (20H-2FH): 位地址00H-7FH 可寻址的特殊功能寄存器: 位地址 80H-F7H 以数据指针表示操作数 内部RAM 00H-7FH 外部RAM或I/O端口 00H-FFH / 0000H-FFFFH
图2-3 寄存器间接寻址
图2-4 立即寻址
4、立即寻址

立即寻址时,指令中直接给出操作数。例如指令 MOV A,#76H ;数据76H送累加器 A。 • 立即数寻址过程如图2-4所示。
5、变址寻址

变址寻址时,指定的变址寄存器的内容与指令中 给出的偏移量相加,所得的结果作为操作数的地址。 例如指令MOVC A, @A+DPTR ;((A)+(DPTR))送 A。变址寻址过程如图2-5所示。 不论用DPTR或PC作为基址指针,变址寻址方式都 只适用于51系列单片机的程序存储器,通常用于读取 数据表也就是将程序存储器中的数送入A中。因此也称 为查表指令,常用此指令来查一个已做好在程序存储 器中的表格,这条指令采用变址寻址。

第3章 MCS-51指令系统

第3章 MCS-51指令系统

16
MCS-51单片机指令系统
MCS-51单片机指令系统包括111条指令 按功能可以划分为以下5类:
1. 数据传送和交换指令(29条)
2. 算术运算指令(24条) 3. 逻辑运算指令(24条) 4. 控制转移指令(17条) 5. 位操作指令(17条)
17

数据传送和交换类指令主要有以下几种:
1. 2. 3.

30H
Eg:MOV 30H,#33H 33H
30H
XX 30H
33H
30H
31H
Eg:MOV 30H,31H
55H
XX
55H
25
A

30H XX
地址
30H 33H
Eg:MOV 30H, A
33H
R0
Eg:MOV 30H,@R0
55H
取出
30H 78H 30H
55H
R3
78H
30H XX

55H
MOV A , 30H
XX 55H
30H
A
6
3、寄存器寻址
寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄 存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。 数据存放在R0~R7中的某个通用寄存器内,或者放在某个专用 寄存器中。 e.g.: MOV A,R7 ADD A,R0
DPTR
2000H
DPTR 2000H
XXXX
Eg:将数据指针DPTR指向存于ROM中的表格首地址。
MOV DPTR,#TABLE
27
三、片外数据传递指令
使用DPTR和Ri进行间接寻址 MOVX A, @DPTR ;A ←((DPTR))片外 MOVX A,@Ri ;A ←((Ri))片外 MOVX @DPTR,A ;(DPTR)片外←(A) MOVX @Ri,A ;(Ri)片外←(A) 注意: 该指令用于在单片机和外部RAM、扩展I/O的数据传送; 使用Ri时,只能访问低8位地址为00H~FFH地址段; 使用DPTR时,能访问0000H ~ FFFFH地址段。

MCS-51系列单片机的指令系统

MCS-51系列单片机的指令系统
一套控制计算机操作的编码,称之为机器语言,计算 机只能识别和执行机器语言的指令。为了便于人们理 解记忆和使用,通常用符号来描述计算机的指令系统, 而符号指令称之为汇编语言。各类机型计算机都有自 己的汇编语言指令系统,并且能够将汇编语言进行编 译成为机器语言指令。
51系列单片机指令系统包含5种功能类型的指令,7 种寻址方式,共有111条指令。
addr16 16位目标地址,片外数据存储器或程序存储器以及外 部芯片的地址,用于LCALL和LJMP指令中;
addr11 11位目标地址,片内数据存储器或程序存储器的地址, 用于ACALL和AJMP指令中;
rel 相关地址,8位带符号偏移量,一般是程序存储器字节地址, 通常在跳转类指令中使用,其对应的十进制范围为-128~+127;
立即寻址就是直接给出操作数。
取指令时,即可由程序存储器中直接取得操作数据。51单 片机中除了一条指令(MOV DPTR,#data16)是16位长 的立即数外,其余都是8位的立即数。
例如:MOV A,#30H;无论执行之前A中的内容是多少, 则执行后A=30H。
值得注意的一点是:在立即数寻址中立即数前面必须要加 上一个“#”号,“#”表示其后面内容为立即数而不是一个 字节单元地址。
bit 位地址,针对片内数据存储器中的可位寻址的位使用; DPTR 数据指针,可用做16位的地址寄存器; (X) X指寄存器或十六进制数,则(X)为指向以X寄存器中的内
容为目标地址的单元或以十六进制数据为目标地址的单元; ← 数据传送的方向,将左边的内容送入右边; A 累加器; ACC 直接寻址方式的累加器; B 寄存器B; C 进位标志位,是布尔处理机的累加器,也称为位累加器。
任何一种处理器都必须经过设计人员对

《单片机》教学课件51单片机的指令系统

《单片机》教学课件51单片机的指令系统

MOV Rn ,direct
;(direct)→Rn ,n =0~7
MOV Rn ,#data
;#data→Rn ,n =0~7
把源操作数送入当前寄存器区的R0~R7中的某一寄存器。
3.以直接地址direct为目的操作数的指令
MOV direct,A
; (A)→direct
MOV direct,Rn
寻址空间内快速地找到指定的地址单元。 下面介绍指令系统7种寻址方式。
5
1.寄存器寻址方式
指令中的操作数为某一寄存器的内容。
例如:MOV A,Rn
;(Rn)→A,n =0~7
把Rn中的源操作数送入到累加器A中。由于指令指定了从寄存 器Rn中取得源操作数,所以称为寄存器寻址方式。
本寻址方式的寻址范围:
4.以寄存器间接地址为目的操作数的指令
MOV @Ri,A
;(A)→((Ri)), i=0,1
MOV @Ri,direct ;(direct)→((Ri)),i=0,1
MOV @Ri,#data ;#data→((Ri)), i=0,1
功能是把源操作数内容送入R0或R1指定的存储单元中。
5.16位数传送指令
内部RAM的00H~7FH共128个单元。 6.堆栈操作指令 内部RAM中设定一个后进先出(LIFO,Last In First Out)
的区域,称为堆栈。在特殊功能寄存器中有一个堆栈指针 SP,指示堆栈的栈顶位置。堆栈操作有进栈和出栈两种, 因此,在指令系统中相应有两条堆栈操作指令。
22
(1)进栈指令 PUSH direct
(1)4组通用工作寄存区共32个工作寄存器。但只对当前工 作寄存器区的8个工作寄存器寻址,指令中的寄存器名称只 能是R0~R7。

第三章MCS51的指令系统

第三章MCS51的指令系统

3.4.1 MCS-51数据传送指令
[1]. 以累加器A为目的操作数类指令(4条) 这4条指令的作用是把源操作数指向的内容送到累加器A。有直接、
立即数、寄存器和寄存器间接寻址方式:
MOV A,direct
(direct)→(A)直接单元30H
MOV A,0A2H
§3.1 概述
7种寻址方式,111条指令
指令所占用空 间(字节数)
指令执行周期 (运算速度)
单字节指令:49条 双字节指令:45条 三字节指令:17条
单周期指令:64条 双周期指令:45条 四周期指令:2 条
试问
1 如果一条指令执行时间为3个机器周 期,那么需要经历多少个时钟周期?
2 如果一条指令执行时使用了2us,而 晶振使用的是12MHz,请问执行这条指 令需要多少个机器周期?
(A)+((Ri))+(C)→(A) 累加器A中的内容与工作寄存 器Ri指向地址单元中的内容、连同进位位相加,结果存在A中
3.4.2 MCS-51算术运算指令
[3]. 带借位减法指令(4条)
这组指令包含立即数、直接地址、间接地址及工作寄存器与累加器A连同借位 位C内容相减,结果送回累加器A中。
3.4.1 MCS-51数据传送指令
[2]. 以寄存器Rn为目的操作数的指令(3条)
这3条指令的功能是把源操作数指定的内容送到所选定的工作寄存器 Rn中。有直接、立即和寄存器寻址方式:
MOV Rn, direct (data)→(Rn) 直接寻址单元中的内容送到寄存器Rn中 MOV R4,37H
**补充知识
MCS51系列单片机为复杂指令单片机CISC。目前单片机大 量使用的是精简指令集RISC结构单片机.

第4讲 51单片机指令系统

第4讲 51单片机指令系统
2.寄存器寻址方式 寄存器寻址方式
寄存器寻址是操作数在寄存器中, 寄存器寻址是操作数在寄存器中,因此指定了寄存器就能得 到操作数 数据存储器 MOV A,R0 , 1FH 程序存储器 第3组通用寄存器区 18H 8位地址 位地址 0 0 0 0 1 0 0 0 1 1 1 0 1 0 00 PSW x x x 0 1 x x x A
0FFH~ 80H
内部RAM低128单元 内部RAM低128单元
用户RAM 位寻址区 用户 7FH~ 30H 2FH~ 20H 通用寄存器0H
74 09
;把09这个数送到累加器 中 把 这个数送到累加器 这个数送到累加器A中 ;把A中的内容加 ,送回 中 把 中的内容加 中的内容加1,送回A中 ;等待,空操作 等待, 等待
ALU
机器 语言
04 00
MOV A,#09
S
汇编 语言
INC A NOP
一、MCS-51单片机的指令格式 单片机的指令格式
机电系统的微机控制
杨绪剑
哈工大(威海) 哈工大(威海)船舶学院
第四讲 MCS-51单片机的指令系统 单片机的指令系统
本讲讨论如下内容: 本讲讨论如下内容:
一、MCS-51单片机的指令格式 单片机的指令格式 二、MCS-51单片机的寻址方式 单片机的寻址方式 三、MCS-51单片机的指令概述 单片机的指令概述 四、MCS-51单片机的指令系统 单片机的指令系统 五、汇编伪指令
本节结构如下: 本节结构如下:
二、MCS-51单 单 片机的寻址方 式
1.什么是寻址 什么是寻址 2.寄存器寻址方式 寄存器寻址方式 3.直接寻址方式 直接寻址方式 4.寄存器间接寻址方式 寄存器间接寻址方式 5.立即数寻址方式 立即数寻址方式 6.变址寻址方式 变址寻址方式 7.位寻址方式 位寻址方式 8.相对寻址方式 相对寻址方式 9.寻址方式小结 寻址方式小结

第三章MCS-51指令系统

第三章MCS-51指令系统
第三章 MCS-51单片机指令系统
3.1 概述
3.2
3.3
寻址方式
MCS-51的指令系统
3.4
伪指令
3.1
概述
指令:使计算机完成某种操作的命令。 指令系统 :计算机能够执行的全部操作所对应的指 令集合。 机器语言: 采用二进制编码表示指令,是计算机能够直 接识别和执行的语言。 汇编语言: 采用助记符 、符号、数字来表示指令的程序 语言,它与机器语言指令时一一对应的。
如果我们分别向DPH,DPL送数,则结果也一样。
如下面两条指令: 则就相当于执行了 MOV DPH,#35H MOV DPTR,#3512H。 MOV DPL,#12H。
(6) 累加器A与片外RAM之间的数据传递类指令(4条)
MOVX A,@Ri MOVX @Ri,A MOVX A,@DPTR MOVX @DPTR,A 说明: 1.在51中,与外部存储器RAM打交道的只可以是A累加器。所 有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外 部RAM中的数据也必需通过A读入。 在此我们可以看出内外部RAM的区别了,内部RAM间可以直接 进行数据的传递,而外部则不行。 比如,要将外部RAM中某一单元(设为0100H单元的数据)送 入另一个单元(设为0200H单元),也必须先将0100H单元中的内 容读入A,然后再送到0200H单元中去。
MOV B,R0
PUSH ACC
;R0→B,R0为寄存器寻 址,B为直接寻址。
;A的内容压入堆栈
3.2.4
寄存器间接寻址
例:MOV A, @R0
• 以寄存器中内容为地址,以该地址中内容为操作数的
寻址方式。间接寻址的存储器空间包括内部RAM和
外部RAM。 • 能用于寄存器间接寻址的寄存器有R0,R1,DPTR, SP。其中R0、R1必须是工作寄存器组中的寄存器。 SP仅用于堆栈操作。

MCS-51单片机的指令集(分类)

MCS-51单片机的指令集(分类)
RET
子程序返回
1
24
RETI
中断返回
1
24
AJMP addr11
绝对短转移
2
24
LJMP addr16
长转移
3
24
SJMP rel
相对转移
2
24
JMP @A+DPTR
相对于DPTR的间接转移
1
24
JZ rel
累加器为零转移
2
24
JNZ rel
累加器非零转移
2
24
CJNE A,direct,rel
累加器与直接地址单元比较,不等则转移
2
12
MOV direct,Rn
寄存器内容送入直接地址单元
2
24
MOV direct,direct
直接地址单元中的数据送入直接地址单元
3
24
MOV direct,@Ri
间接RAM中的数据送入直接地址单元
2
24
MOV direct,#data8
8位立即数送入直接地址单元
3
24
MOV @Ri,A
累加器内容送入间接RAM单元
DEC @Ri
间接RAM内容减1
1
12
MUL A,B
A乘以B
1
48
DIV A,B
A除以B
1
48
DA A
累加器进行十进制转换
1
12
3、逻辑操作类指令
助记符
功能说明
字节数
振荡周期
ANL A,Rn
累加器与寄存器相“与”
1
12
ANL A,direct
累加器与直接地址单元相“与”

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

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

位操作类指令(17条)
位操作指令实际就是布尔处理机的指令系统,这 为开关量控制提供了非常有效的手段。
位传送
位置位复位
位运算 位控制转移
位数据传送指令(2条)
MOV MOV
C , bit bit,C
例:片内RAM中(20H)=7FH,执行指令
MOV C,07H 则C=0
位置位复位指令(4条)
调用与返回指令组(4条)
长调用指令 绝对调用指令 子程序返回指令
LCALL addr16 ACALL addr11 RET
中断服务程序返回指令 RETI
空操作指令(1条)
NOP
例:把2000H开始的外部RAM单元中的数据送到3000H
开始的外部RAM单元中,数据个数存放在内部RAM 35H单元。
ANL(ORL,XRL) A , { #data ; direct ; @Ri ; Rn }
2. 直接地址单元与累加器A、立即数之间的逻辑操作(6条)
ANL(ORL,XRL) direct , { A ; #data }
清零与取反指令(2条)
清零: 取反:
CLR A CPL A
循环移位指令(4条)
2. 带进位加法指令(4条) ADDC A , { #data ; direct ; @Ri ; Rn }
3. 带借位减法指令(4条) SUBB A , { #data ; direct; @Ri ; Rn }
影响所有标志位状态
例: 执行指令 MOV A , #0C2H ADD A , #0A9H 对PSW相应状态位的影响如下 1 1 1
3.2 MCS-51指令分类介绍
共分5大类,111条指令。
1.数据传送类指令(29条) 2.算术运算类指令(24条) 3.逻辑运算及移位类指令(24条) 4.控制转移类指令(17条) 5.位操作类指令(17条)

MCS-51指令系统

MCS-51指令系统

MCS-51指令系统MCS-51单片机指令系统共有指令111条,分为五大类:一、数据传送类指令(29条)1.内部RAM数据传送指令组①立即数传送指令(共有8位立即数传送指令四条,16位立即数传送指令一条。

)MOV A , #data;A ← dataMOV direct , #data ;direct ← dataMOV Rn , #data;Rn ← dataMOV @ Ri , #data;(Ri) ← dataMOV DPTR , #data16;DPTR ← data16②内部RAM单元之间的数据传送(共有五条)MOV direct2 , direct1;direct2 ← (direct1)MOV direct , Rn;direct ← (Rn)MOV Rn , direct;Rn ← (direct)MOV direct ,@ Ri;direct ← ((Ri))MOV @ Ri , direct;(Ri) ← (direct)③累加器的数据传送指令(共有六条)MOV A , Rn ;A ← (Rn)MOV Rn , A;Rn ← (A)MOV A , direct;A ← (direct)MOV direct , A;direct ← (A)MOV A , @ Ri ;A ← ((Ri))MOV @ Ri , A;(Ri) ← (A)2.外部RAM数据传送指令组①使用Ri的间接寻址传送指令(由于Ri是8位地址指针,因此这两条指令和寻址范围只限于外部RAM的250个单元。

)MOVX A , @ Ri;A ← ((Ri))MOVX @ Ri , A;(Ri) ← (A)②使用DPTR的间接寻址传送指令(由于DPTR是16位地址指针,因此这两条指令的寻址范围为64K单元,要和P2配合寻址外部RAM空间。

)MOVX A , @ DPTR ;A ← ((DPTR))MOVX @ DPTR , AP;(DPTR) ← (A)对外部RAM的数据传送作如下几点说明:⑴MCS-51指令系统中没有其它专用的存储器读写指令,这里所讲的外部RAM数据传送指令实际上就是单片机外部数据存储器的读写指令。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
(1)单字节指令:操作码和操作数同在一个字节中。 (2)双字节指令:一个字节为操作码,另一个字节是操作数

(3)三字节指令:操作码占一个字节,操作数占二个字节。 3.3 指令系统的寻址方式 寻址方式——在指令中说明操作数所在地址的方法。 一般说,寻址方式越多,功能就越强,灵活性则越大,指令系
统就越复杂。
第3章 51单片机的 指令系统
1
第3章
目录
3.1 指令系统概述
3.2 指令格式 3.3 指令系统的寻址方式 3.4 51指令系统分类 3.4.1 数据传送类指令 3.4.2 算术运算类指令
3.4.3 逻辑操作类指令
3.4.5 位操作类指令 3.5 51指令汇总 3.6 某些指令的说明
3.4.4 控制转移类指令
ROM
...
80

LOOP: MOV A,@R0 编程时:只需在转移指令中直接写要转
54
BBB 3002H
... ...
向的标号地址。
汇编时:由汇编程序计算偏移量。
程序转移范围是以转移指令的下条指令首地
LOOP
3056H
B0
03
...
17
址为基准地址,相对偏移在
–128~+127之间。
源程序 :
next : -128 条件转移指令:
9
直接寻址方式
(2)特殊功能寄存器SFR
MOV A,P0; SFR 符号地址 MOV A,80H;SFR 直接地址 直接寻址是访问片内所有特殊功能寄存器的唯一寻址方式。 (3)指令中两个操作数都可由直接寻址方式给出
例如:
MOV direct1,direct2
MOV 42H,62H
把片内RAM中62H单元的内容送到片内RAM中的42H单元中
读取存放在程序存储器中的表格的某项
(2)程序存储器 JMP A,@A+DPTR
散转指令,PC=A+DPTR,A中内容为程序运行后的动态结果,可根 据A中不同内容,实现跳向不同程序入口的跳转。
14
6.相对寻址方式
解决程序转移。
可用相对偏移量形成新的转向目的地址,
新的转向目的地址用下式计算:
目的地址=转移指令所在ROM的首地址+转移指令所占字节数 +rel
7
2 寄存器寻址方式
指令中的操作数为某一寄存器的内容。
例如:MOV A,Rn ;(Rn)→A,n =0~7
把Rn中的源操作数送入到累加器A中。 本寻址方式的寄存器: (1)4组通用工作寄存区共32个工作寄存器。但只对当前工作寄
存器区的8个工作寄存器寻址,指令中的寄存器名称只能是R0
~R7。 (2)部分特殊功能寄存器,如累加器A、寄存器B以及数据指针
寄存器DPTR等。
8
3.直接寻址方式
指令中直接给出操作数的单元字节地址(直接地址),该地址中
的内容是操作数。 例如: MOV A,direct; “direct”是操作数的直接地址。
源操作数(右边的操作数)采用的是直接寻址方式。
适用对象: (1)片内RAM MOV A,42H;把内部RAM 42H单元的内容传送到A。
3
3.1
指令系统概述
简明、易掌握、效率较高的指令系统,复杂指令集。 按所占字节分,分三种: (1)单字节指令49条; (2)双字节指令45条;
(3)三字节指令17条。
按执行时间来分,分三种: (1)1个机器周期(12个时钟振荡周期)的指令64条; (2)2个机器周期指令45条; (3)4个机器周期——乘、除指令。
4
12MHz晶振,每个机器周期为1s。
AT89S51一大特点是在硬件结构中有一个位处理机,一个处理 位变量的指令子集。 3.2 指令格式
指令格式:指令的表示方法。
指令通常由两部分组成:操作码和操作数。
操作码——指令进行什么操作。 操作数——指令操作的对象。可能是一具体数据,也可能是 指出到哪里取得数据的地址或符号。 指令长度不同,格式也就不同。
其中,偏移量rel是带符号8位二进制补码数,–128~+127。
15
指令代码的存放和执行
程序是指令的集合, 指令要翻译成机器代码,
指令代码在内存中顺序存放, 但指令的执行不一定是顺序的.
16
例如: … … AAA:SJMP LOOP;2字节机器代码 BBB:PUSH ACC …
AAA 3000H
2
内容概要 51单片机使用MCS-51指令系统。

指令系统寻址方式

对111条基本指令按功能分类详细讲解。
指令---是CPU按照人们的意图来完成某种操作的命令,它以
英文名称或缩写形式作为助记符。
汇编语言指令---用助记符、符号地址、标号等表示的书写 程序的语言。 掌握汇编语言指令是程序设计的基础。
10
4. 寄存器间接寻址方式
寄存器中存的是操作数所在存储单元的地址,按该地址可找到
操作数。
可作为间接寻址的寄存器: DPTR;Ri;i=0或1 为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方 式中,应在寄存器名称前面加前缀标志“@”。
11
寄存器间接寻址方式
适用对象: (1)片内RAM MOV Ri,#40H
寻址方式所要解决的主要问题就是如何在整个存储器和寄存器 的寻址空间内快速地找到指定的地址单元。
下面介绍指令系统7种寻址方式。
6
1.立即数寻址方式
直接在指令中给出操作数——也称立即数。
需在操作数前加前缀标志“#”。 例如: MOV A,#40H
翻译成机器代码后,第一个字节是操作码,第二字节是立即 数,就是放在程序存储器内的常数。
以两者内容相加形成的16位地址作为操作数地址,访问
ROM。 例如: MOVC A,@A+DPTR
其中,(A)=05H,(DPTR)=0400H,指令执行结果是把程
序存储器0405H单元的内容传送给A。
பைடு நூலகம்
13
适用对象:
(1)程序存储器中固定的表格项 MOVC A,@A+DPTR MOVC A,@A+PC
MOV
A,@Ri
;i=0或1
把内部RAM 40H地址单元中的内容传送给A。 (2)片外RAM MOV DPTR,#2000H; MOVX A, @ DPTR;
把外部RAM 2000H地址单元中的内容传送给A。
12
5.基址寄存器加变址寄存器的间址寻址方式
以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,
+127
... ... ... ... JMP SHORT next ... ... ... ... MOV AL,03H
18
next:
7.位寻址方式
相关文档
最新文档