第3章 80C51单片机的寻址方式和指令系统共193页文档
第3章 80C51单片机指令系统及程序设计
PUSH direct POP direct PUSH 0E0H POP 0D0H
直接地址
PUSH Acc POP PSW
第3章 80C51单片机指令系统及程序设计
单片机原理与应用
3.2.2 算术运算类指令(24条)
——普通加法指令(4条)
Rn ADD A , direct
@Ri #data
ADD ADD ADD ADD
#data16
addr16 addr11 direct Rel
Bit
(X) ←
位寻址区的直接寻址位
X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容 将 ← 后面的内容传送到前面去
第3章 80C51单片机指令系统及程序设计
单片机原理与应用
2、寻址方式
取得操作数的地址的方法叫做寻址方式。寻址 方式与计算机的存储空间结构是密切相关的。灵活运 用各种寻址方式,可以大大的提高程序的运行效率。 直接寻址 立即寻址 寄存器寻址 寄存器间接寻址 相对寻址 变址寻址 位寻址
位操作指令:2 17 条 四周期指令: 条
第3章 80C51单片机的指令系统及编程
三、指令系统 ~
(1) 数据传送类指令(28条)
数据传送类指令是数据处理的最基本操作,在80C51 单片机中,数据传送类指令占得比重比较大。这类指 令一般不影响程序状态字寄存器PSW的状态。 数据传送类指令可分为:一般传送类指令、查表指
令、片外RAM访问指令、堆栈操作指令和交换指令。 片外RAM访问指令 RAM
CLR C CLR bit CPL C CPL bit SETB C SETB bit 对全部可位寻址区的每一位, 对全部可位寻址区的每一位, 均可直接进行清0、 均可直接进行清 、取反及 置1操作 操作
三、指令系统 ~
(5)位操作类指令(17条)
(3)位逻辑运算指令 条) )位逻辑运算指令(4条
1、无条件转移指令(4条) 无条件转移指令( 2、条件转移指令(8条) 条件转移指令( 3、子程序调用与返回指令(4条) 子程序调用与返回指令( 4、空操作指令(1条) 空操作指令(
三、指令系统 ~
(4)控制转移类指令(17条)
1、无条件转移指令(4条) 无条件转移指令(
三、指令系统 ~
(4)控制转移类指令(17条)
2、条件转移指令(8条) 条件转移指令( (1)累加器判0转移指令(2条) 累加器判0转移指令(
三、指令系统 ~
(2) 比 较 不 相 等 转 移 指 令 条 (4 条)
(4)控制转移类指令(17条)
三、指令系统 ~
(4)控制转移类指令(17条)
2、条件转移指令(8条) 条件转移指令( (3)减1不为0转移指令(2条) 不为0转移指令(
二、寻址方式 ~ 3、寄存器寻址
二、寻址方式 ~ 4、寄存器间接寻址
二、寻址方式 ~ 5、变址寻址
二、寻址方式 ~ 6 、相对寻址
第三章 MCS-51单片机的寻址方式和指令系统
由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址
以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)
单片机及应用_第三章_80C51单片机指令系统
第三章 80C51单片机的指令系统
3.2 80C51单片机指令寻址方式
5. 变址寻址方式
例:MOVC A, @A+DPTR ; A ←((A)+(DPTR));机器码:93H
MOVC A, @A+PC ; A ←((A)+(PC)) ;机器码:83H
– 定义:操作数存放 在程序存储器中, 其单元地址为变址 寄存器(累加器 A ) 和 基 址 寄 存 器 (DPTR或PC)相加 形成的16位地址。
1. 指令:规定计算机基本操作的语句或命令,通常 由操作码和操作数两部分组成。 2. 机器指令:用二进制代码表示的指令称为机器指 令。 3. 助记符指令:用助记符表示的指令称为助记符指 令。一个计算机的助记符指令和其机器指令是一 一对应的。 4. 指令系统:一个单片机所能执行的指令的集合称 为它的指令系统。 5. 80C51有111条指令。其指令不定长,有1字节、 2字节和3字节指令。
3.3.1 数据传送类指令
基本格式: MOV <目的操作数>,<源操作数> • 与平常所说的搬东西是不一样的。 • 取之不尽,一冲就掉。
第三章 80C51单片机的指令系统
3.3.1 数据传送类指令
80C51的数据传送类指令可分为五组
1. 2. 3. 4. 5. 内部RAM数据传送指令 外部RAM读写指令 程序存储器读指令 数据交换指令 堆栈操作指令
第三章 80C51单片机的指令系统
3.3.1 数据传送类指令 1. 内部RAM数据传送指令 (1)8位立即数传送指令 (2)16位立即数传送指令 (3)内部RAM之间的数传送指令 (4)通过累加器的数传送指令
第三章 80C51单片机的指令系统
第3章 80C51系列单片机指令系统
变址寻址示图
内部ROM 内部RAM
3AH 0046H 65H
操作数
寄存器
目的地
3AH 0046H
A
DPTR PC
基址寄存器 0012H
变址寄存器 34H
MOVC A, @A+DPTR
• 6.位寻址方式
•
80C51具有位处理功能,可以对数据位进行操作。 位寻址指令中应直接使用位地址,它属于直接寻址方式, 因此与直接寻址执行过程基本相同,但参与操作的数据 是1位,而不是8位。
指令一般由两部分组成,即操作码(表示指令的操作功能)和 操作数(参加操作的数据或数据地址)。 •由于计算机只能识别二进制数,所以计算机的指令均由二进制 代码组成。为了阅读和书写方便,常把它写成十六进制形式, 通常称这样的指令为机器指令。
• 机器语言级指令格式: • 1、单字节指令:对于单字节指令有两种情况:一种是 操作码、操作数均包含在这一个字节之内;另一种情况 是只有操作码无操作数;格式为: • 操作码 • 如:“MOV A,R0”所对应的机器语言指令为“E8H”。 • 2、双字节指令:对于双字节指令,均为一个字节是操 作码,一个字节是操作数;格式为: • 操作码 操作数 • 如:“MOV A,20H”所对应的机器语言指令为“E520H”。 • 3、三字节指令:对于三字节指令,一般是一个字节为 操作码,二个字节为操作数;格式为: • 操作码 第一操作数 第二操作数 • 如:“MOV 20H,#46H”所对应的机器语言指令为 “E52046H”。()
• 为了便于记忆和使用,制造厂家对指令系统的每一条指令都 给出了助记符。助记符是根据机器指令不同的功能和操作对 象来描述指令的符号。由于助记符是用英文缩写来描述指令 的特征,因此它不但便于记忆,也便于理解和分类。这种用 助记符形式来表示的机器指令称为汇编语言指令。计算机的 指令一般用汇编语言指令来表示。 • 80C51汇编语言指令格式如下: • [标号:] 操作码 [目的操作数]
第三章 80C51单片机指令系统
第三章 80C51单片机的指令系统
§3.2 80C51单片机指令寻址方式
2 直接寻址方式:
指令中直接给出操作数地址的寻址方式, 能进行直接寻址的存储空间有SFR寄存器和内
部数据RAM。
例:
MOV MOV PSW,#20H A,30H ;PSW←#20H ;A←(30H)
第三章 80C51单片机的指令系统
第三章 80C51单片机的指令系统
§3.2 80C51单片机指令寻址方式
7 相对寻址方式:
程序存储器 执行前PC
2000H
SJMP 08H 08H200H+2执行后PC 200AH
SJMP
08H
操作示意图
2 汇编语言:用助记符来表示的指令 3 符号说明:见书P45 4 交叉编译
第三章 80C51单片机的指令系统
章节内容安排
§3.1 单片机指令系统概述
§3.2 80C51单片机指令的寻址方式 §3.2 80C51单片机指令的寻址方式 §3.3 80C51单片机指令分类介绍
§3.4 本章知识回顾
第三章 80C51单片机的指令系统
§3.2 80C51单片机指令的寻址方式 §3.3 80C51单片机指令分类介绍
§3.4 本章知识回顾
第三章 80C51单片机的指令系统
§3.1 单片机指令系统概述
一 关键词:
1 指令: 规定计算机基本操作的语句或命令,由操作
码和操作数组成
例: 指令代码 740A 助记符 MOV A,#0AH 功能 将十六进制数0AH 放入累加器A中
第三章 80C51单片机的指令系统
§3.2 80C51单片机指令寻址方式
5 变址寻址方式:
程序存储器
第三章-80C51单片机的指令系统
第三章-80C51单片机的指令系统80C51单片机是一种常用的微控制器,广泛应用于嵌入式系统中。
其指令系统是该单片机的核心组成部分,决定了其功能和特性。
在本文中,我们将深入探讨80C51单片机的指令系统,包括其指令格式、指令集以及指令的执行过程。
一、指令格式80C51单片机的指令格式通常由若干个字节组成,每个字节又分为几个字段。
具体而言,一条指令通常包括操作码、目标操作数和源操作数等字段。
其中,操作码表示指令的类型和功能,目标操作数表示指令操作的目标寄存器或内存单元,源操作数表示指令操作的源寄存器或内存单元。
以MOV指令为例,其指令格式如下:| 操作码 | 目标操作数 | 源操作数 |其中,操作码为一个字节,表示MOV指令;目标操作数和源操作数也为一个字节,分别表示指令操作的目标和源。
二、指令集80C51单片机的指令集丰富多样,包括数据传送指令、算术运算指令、逻辑运算指令、分支指令等等。
这些指令可以实现各种功能,满足不同的应用需求。
1. 数据传送指令数据传送指令用于将数据从一个寄存器或内存单元复制到另一个寄存器或内存单元。
例如,MOV指令可以实现数据传送操作。
2. 算术运算指令算术运算指令用于进行加法、减法、乘法和除法等运算。
例如,ADD指令可以实现两个操作数的相加操作。
3. 逻辑运算指令逻辑运算指令用于进行与、或、非、异或等逻辑运算。
例如,AND 指令可以实现两个操作数的与运算。
4. 分支指令分支指令用于实现循环、条件判断和跳转等功能。
例如,JMP指令可以无条件跳转到指定的地址。
除了上述指令之外,80C51单片机还支持位操作指令、移位指令、输入输出指令等。
三、指令执行过程在80C51单片机中,指令的执行过程包括取指、译码、执行以及访问存储器等阶段。
1. 取指阶段取指阶段是指令执行的第一步,其目的是从存储器中读取指令。
取指的过程通常涉及到程序计数器的操作,确定下一条要执行的指令地址。
2. 译码阶段译码阶段是将取到的指令进行解码,将其转换为内部指令表示形式,以便后续的执行。
第3章 80C51系列单片机指令系统
一、数据传送类指令
⒈ 内RAM数据传送指令 (15条)
⒉ 16位数据传送指令
⒊ 外RAM传送指令.
(2条)
(4条)
⒋ 读ROM指令
⒌ 堆栈操作指令
(2条)
(2条)
⒍ 交换指令
(5条)
36
⒍ 交换指令(5条) 注意:必须以A为操作数!
⑴ 字节交换指令 ① XCH ② XCH ③ XCH XCHD A,Rn A,@Ri ; A←→Rn,n=0~7 ; A←→(Ri),i=0、1
MOV
A,R0
;将R0中的数据传送至A中
9
⒋ 寄存器间接寻址
间接寻址是根据操作数地址的地址寻找操作数。
R0、R1和DPTR可以作为间接寻址寄存器。
间接寻址用间址符“@”作为前缀。 【例】
MOV MOVX
A,@R0
;将以R0中内容为地址的存储 单元中的数据传送至A中
A,@DPTR;将外RAM DPTR所指存储单元
18
• MOV指令在片内RAM的允许操作图 • 不允许的操作有: • @Ri → @Ri Rn → Rn @Ri → Rn
19
【例】 (70H)=60 (60H)=20H P1=0B7H
• • • • • • • MOV R0,#70H MOV A, @R0 MOV R1,A MOV A,@R1 MOV @R0,P1 结果: (70H)= R1=
① MOV ② MOV ③ MOV Rn,A ;A→Rn,n=0~7
Rn,direct;(direct)→Rn,n=0~7 Rn,#data ;data→Rn,n=0~7
15
⑶ 以直接地址为目的字节的传送指令(5条)
① MOV ② MOV ③ MOV ④ MOV direct,A direct,Rn direct,@Ri ;A→(direct) ;Rn→(direct),n=0~7 ;(Ri)→(direct),i=0、1
80c51单片机第三章
3.1 概述
“操作码” 指令或伪指令的助记符,用来表示指令的性质。 对于一条汇编语言指令,这一字段是必不可少的。 “操作数” 可以为工作寄存器名、SFR名、标号名、常数、表 达式等,用以表示操作数地址; 根据指令功能的不同,操作数可以有一个、两个、 三个或者没有,操作数之间用“,”分开; 分为目的操作数和源操作数两种; 为使操作数区段出现的字符和16进制数区别开来, 在以字母开头的16进制数前加0,如将FFH写成0FFH(H 表示此数为16进制数,二进制用B表示,十进制用D表 示或省略)。
3.280C51单片机寻址方式
五、变址寻址(基址寄存器+变址寄存器间接寻址) 变址寻址时,指定的基址寄存器的内容与变址寄存 器的内容(偏移量)相加,所得的结果作为操作数的地址。 例3.8 MOVC A,@A+DPTR ;A←((A)+(DPTR)),源 操作数中DPTR的内容为基地址,A中的内容为偏移量。
可作为基地址的寄存器有DPTR和PC,偏移量只能放 在A中,偏移量为无符号数。
无论用DPTR或PC作为基址指针,变址寻址方式只适 用于外部ROM,通常用于读取数据表。 该指令的代码为93H,是单字节指令。
3.280C51单片机寻址方式
设此指令存放在2040H单元,A中原存放值为E0H, DPTR中值为2000H,则A+DPTR形成的地址为20E0H。 20E0H单元中内容为47H,则执行该指令后,A中原来的 E0H被47H代替。
3.1 概述
结论:
无论是哪种指令,其第一个字节均为操作码,它 确定了指令的功能;其他的字节为操作数,指出了被 操作的对象,指明了参与操作的数据或数据所存放的 地址。
学会初步判断指令代码长度的方法,对于正确应 用指令系统是非常有益的。
第三章 80C51单片微机的指令系统1
⑶累加器 A 能对 Rn寄存器寻址;能与特殊功能寄 存器之间进行一个字节的数据传送;能对片内RAM直接 寻址;能与片内RAM单元之间进行低半字节的数据交换。 ⑷ 能用变址寻址方式访问程序存储器中的表格, 将程序存储器单元中的固定常数或表格字节内容传送 到累加器A中。
29
3.2.1 内部八位数据传送指令
读写片外RAM
MOVC
XCH XCHD SWAP PUSH POP
读ROM中数据
交换指令 交换低4位 高低位互换 入栈 出栈
26
数据传送方向及相互关系见图3–7。 数据传送类指令不影响标志位 C、 AC、 OV。对于 P标志一般不加以说明。
27
从图3–7中可以看出数据传送指令的特点有: ⑴ 可以进行直接地址到直接地址的数据传 送,能把一个并行I/O口中的内容传送到片内RAM 单元中而不必经过累加器或工作寄存器Rn。 ⑵ 用R0和R1寄存器间址访问片外数据存储 器256个字节址及片内RAM中的任一单元。用DPTR 间址访问片外全部64KB的数据存储器或I/O。
主要用于80C51内部存储器和寄存器之间的数据传送。
这类传送指令的格式为:
MOV
<目的字节>,<源字节>
把源字节的内容送到目的字节,而源字节的内
容不变。操作属于拷贝性质。
这类指令是以MOV为其助记符的,若以目的操
作数分类,可将内部八位数据传送指令分为4组。
30
⒈ 以累加器A为目的操作数的指令组
指 令 功 能 ; (A) ←(Rn) ; (A)←((Ri)) 寻址范围 R0-R7 00-FFH 00-FFH #00-#FFH MOV A,Rn
第三章
80C51单片微机的指令系统
1
3.1
第三章80C51单片机的指令系统
3.3
80C51指令集
根据指令功能的不同, 51单片机指令通常分 为数据传送类、算术运算类、逻辑运算类、控 制转移类及位操作类这5大类指令。
3.3.1数据传送与交换类指令
51指令系统中,数据传送类指令共有29条。这 类指令将源操作数传送到指定的目的地址,传 送后源操作数保持不变。数据传送类指令可以 在累加器A,R0~R7工作寄存器与片内数据 存储器、片外数据存储器和程序存储器之间进 行数据传送。传送类指令一般不影响标志位, 只有堆栈操作可以直接修改程序状态字PSW。
这条8位数传送指令的含义是把指令码第2字节立即数23H 取出来存放到累加器(A)中。该指令的操作码占1B; 23H为源操作数,也是1B;累加器(A)是目的操作数寄 存器,隐含在操作码字段中。
3.三字节指令(17条)
这条指令的指令码的第1字节为操作码;第2和第3字节为 操作数或操作数地址,有如下3类。 1)16位数据 例如:MOV DPTR,#26ABH 指令码为:
第三章
80C51单片机的 指令系统
3.1 指令系统概述 3.2 寻址方式 3.3 80C51指令集
3.3.1数据传送与交换类指令 3.3.2算术运算指令 3.3.3逻辑运算及移位类指令 3.3.4控制转移类指令 3.3.5位操作类指令 3.4 51单片机汇编语言程序设计
3.1 指令系统概述
例:已知R0中存放片内RAM地址65H,数据指针DPTR 内存放片外RAM地址8000H,地址65H和8000H里面 都存放着立即数30H,执行以下指令后: MOV A,@R0; MOVX A,@DPTR; 其中,累加器A的内容为30H。 寄存器间接寻址的寻址范围: 1)片内RAM低128单元:这里只能用R0和R1作为间 接寻址寄存器。 2)片外RAM 64KB:使用DPTR作为间接寻址寄存器。 3)片外RAM低256单元:可以使用DPTR、R0和R1。 4)堆栈区:以堆栈指针SP作为间接寻址寄存器。
第三章-80C51单片机的指令系统
第三章80C51单片机的指令系统3·1 80C51的指令系统具有哪些特点?答: 80C51的指令系统由111条指令组成。
如果按字节数分类,有49条单字节指令、46条双字节指令和16条三字节指令,以单字节指令为主;如果按指令执行时间分类,有664条单周期指令、45条双周期指令和2条(乘、除)四周期指令,以单周期指令为主。
由此看来,80C51的指令系统具有存储效率高、执行速度快的特点。
除此而外,指令系统还有如下特点:①可以进行直接地址到直接地址的数据传送,能把一个并行I/I口中的内容传送到内部RAM单元中而不必经过累加器A或工作寄存器Rn。
这样可以大大提高传送速度和缓解累加器A的瓶颈效应。
②用变址寻址方式访问程序存储器中的表格,将程序存储器单元中的固定常数或表格字节内容传送到累加器A中。
这为编程翻译算法提供了方便。
③在算术运算指令中设有乘法(MUL)和除法(DIV)指令。
④指令系统中,一些对I/O口进行操作的指令具有"读一修改一写"的功能。
"读一修改一写"指令是指:在执行读锁存器的指令时,CPU首先完成将锁存器的值通过缓冲器BUF2读人内部,进行修改、改变,然后重新写到锁存器中去。
这一特点是由I/O口的准双向特性所决定的。
这种类型的指令包含所有的口的逻辑操作(ANL、ORL、XRL)和位操作(JBC、CPL、MOV、SETB、CLR等)指令。
⑤80C51单片机内部有一个布尔(位)处理器,对位地址空间具有丰富的位操作指令。
布尔(位)操作类指令共有17条,其中包括布尔传送指令、布尔状态控制指令、布尔(位)逻辑操作指令及布尔(位)条件转移指令。
3·2 简述80C51的寻址方式和所涉及的寻址空间。
答: ①寻址方式有下列七种。
●立即寻址:指在指令中直接给出操作数。
●直接寻址:指在指令中直接给出操作数单元的地址。
●寄存器寻址:指令中将指定寄存器的内容作为操作数。
第3章 80C51单片机的寻址方式和指令系统
(2)算术运算类指令(24条);
(3)逻辑运算及移位类指令(24条); (4)控制转移类指令(17条); (5)位操作类指令(17条)。
6
本节内容
3.1.1 汇编语言指令格式 3.1.2 机器码的三种格式 3.1.3 指令中常用符号说明
7
3.1.1 汇编语言指令格式
3.4.1 加法指令 3.4.2 减法指令 3.4.3 乘、除法指令
3.5 逻辑运算及移位类指令(24条)
3.5.1 逻辑与运算指令 3.5.2 逻辑或运算指令
3
第2章:80C51系列单片机基本结构及原理
3.5.3 逻辑异或运算指令 3.5.4 累加器清零、取反指令 3.5.5 循环移位指令
目录
3.6 控制转移类指令(17条)
解:指令执行过程如图3-3,结果:(A)= 60H 。 指令在ROM中的机器码为E8H,指令对应的机器码是:E8H=1110 1000B,二进 制的后三位000就是隐含的R0寄存器的编码,如果是R7其编码为111。 由于寄存器在CPU内部,所以采用寄存器寻址可以获得较高的运算速度。
31
32
能实现这种寻址方式的寄存器有: (1)工作寄存器 R0~R7 (4组工作寄存器均可) (2)累加器A (注:使用A为寄存器寻址,使用ACC为直接寻址) (3)寄存器B (注:以AB寄存器对的形式出现时为寄存器寻址,单独出现
一条完整的汇编语言指令通常由标号、操作码、操作数 (一般包括目的操作数和源操作数)及指令的注释构成。 指令格式: [标号:] <操作码> [操作数] [,操作数][;注释]
说明:
①在一条指令中,方括号中的内容可有可无,尖括号中的内容 必须有。
第3章80C51单片微机的指令系统
(4)以间接地址为目的操作数 MOV @Ri, direct MOV @Ri, #data MOV @Ri, A
累加器A direct 直接寻址 Rn data @Ri间址
32
2、外部数据传送指令(7条) (1)16位数据传送指令 MOV DPTR, #data16 (2)访问外部ROM的传送指令 MOVC A, @A+DPTR MOVC A, @A+PC 例:已知累加器A中有一个0~9之间的整数, 试用查表指令编写查找出该数平方值的程序。 解:确定平方表,并设其首地址为2000H, 如图所示。
Δ部分特殊功能寄存器SFR,如累加器A,通用 寄存器B、数据指针DPTR等。
INC Rn
15
PSW
RS1 RS0
片内RAM 00H
程序存储器
RS1RS0=10B
24H +1
INC R0
PC
00001rrr 000 0 1 000
10H 25H
rrr=000B
16
MOV A, #88H
程序存储器
A
9
(2)算术运算指令(24条) 功能:用于对两个操作数进行加、减、乘、除等 算术运算。在两个操作数中,一个应放在累加器A 中,另一个可以在某个寄存器或片内RAM单元中, 也可以存放在指令码的第二和第三字节中。 (3)逻辑操作和环移指令 逻辑操作指令用于对两个操作数进行逻辑乘、逻辑 加、逻辑取反和异或等操作,大多数指令也需要把 两个操作数中的一个预先放入累加器A,操作结果 也在累加器A中。 环移指令用于对累加器A中的数进行环移。环移指 令有左环移和右环移之分,也有带Cy和不带Cy之分。
8位带符号数,-128~127
(1)双字节转移类指令(6条) (2)三字节转移类指令(7条)
第3章 80C51单片机的指令系统
单片机的指令系统
本章内容
♦寻址方式 ♦指令的分类、格式及符号说
明
♦分类指令
♦掌握MCS-51指令系统的各种寻
学习目的
址方式 ♦掌握每条指令的格式、功能及 用法 ♦掌握指令的操作过程中操作数 的变化情况以及对标志位的影 响。 ♦学会正确选用指令完成简单的 任务
MCS-51指令系统共有 255种操作代码,用汇编 语言表达时,只需熟记42 种助记符就能表示33种指 令功能.共111条指令。
例如:指令LCALL addr16 例如:指令LCALL addr16
3.2.4 指令的分类及符号说明 1.指令分类 指令分类 MCS-51单片机可以分为五类: 单片机可以分为五类:
1)数据传送指令 数据传送指令 2)算术运算指令 算术运算指令 3)逻辑运算指令 逻辑运算指令 4)位操作指令 位操作指令 5)控制转移指令 控制转移指令
3)三字节指令(16条) 3)三字节指令(16条)
这类指令的指令码的第一字节为操作码, 这类指令的指令码的第一字节为操作码,第 二字节为操作数或操作数地址。 二字节为操作数或操作数地址。 故三字节指令共可有如下四类: 故三字节指令共可有如下四类:
操作码 Data15Data15-8 Data7 Data7-0 操作码 Direct Data
SJMP
rel
;PC← PC+2+rel
程序存储器 × × 80H 26H ┆ ××
3.1.6
变址寻址
以DPTR和PC基址寄存器 和累加器A变址寄存器的内 容和为地址,寻址该地址单 元,读取数据。
(1)MOVC (2)MOVC
A,@A+PC
;A
←(A+PC)
A,@A+DPTR ;A←(A+DPTR)
第三章 80C51单片机的指令系统
如: MOV A,50H
RAM 3AH SFR A ROM
25
3.2.3
寄存器间接寻址
寄存器中的内容为地址,由该地址去取要操作 的数据的寻址方式称为寄存器间接寻址 。 寄存器间接寻址的存储空间为片内RAM或片外 RAM。
片内RAM的数据传送采用“MOV”类指令,间接寻址寄 存器采用寄存器R0或R1(堆栈操作时采用SP)。 片外RAM的数据传送采用“MOVX”类指令,这时间接 寻址寄存器有两种选择,一是采用R0和R1作间址寄存器, 这时R0或R1提供低8位地址(外部RAM多于256字节采用 页面方式访问时,可由P2口未使用的I/O引脚提供高位地 址);二是采用DPTR作为间址寄存器。
00H
MOVC A,@A+DPTR RAM DPL DPH A 00H 24H 0FH SFR 2400H+0FH=240FH 240FH
93H
如: MOVC A,@A+DPTR
88H ROM
29
3.2.6
相对寻址
相对寻址是以程序计数器PC的当前值(指读出 该2字节或3字节的跳转指令后,PC指向的下条指 令的地址【PC当、PC本】)为基准,加上指令中给 出的相对偏移量 rel 形成目标地址的寻址方式 。 rel 是一个带符号的8位二进制数,取值范围是- 128~+127,以补码形式置于操作码之后存放。
18
如:指令ANL A,#40H 功能是将立即数“40H”同累加器A中的数进 行“与”操作,结果送回累加器。 ANL为“与”操作的助记符,立即数“40H” 为源操作数,累加器A为目的操作数。 注:在指令中,多数情况下累加器用“A”表 示,仅在直接寻址方式中,用“ACC”表示累加 器在SFR区的具体地址E0H。 试比较,指令MOV A,#30H的机器码为 74H、30H;而指令MOV ACC,#30H的机器 码为75H、E0H、30H。