第3章 80C51单片机的寻址方式和指令系统
合集下载
4、80C51单片机寻址方式 101101

日日行,不怕千万里;
寻址方式
3.寄存器寻址 . 在指令中将指定寄存器的内容作为操作数。 在指令中将指定寄存器的内容作为操作数。因 此指定了寄存器就能得到操作数。 此指定了寄存器就能得到操作数。 寄存器寻址方式中,用符号名称来表示寄存器。 寄存器寻址方式中,用符号名称来表示寄存器。 例如:指令 例如:指令INC R0 其功能如图 所示 所示。 其功能如图3–3所示。 寄存器寻址方式的寻址范围包括: 寄存器寻址方式的寻址范围包括: (1)四个寄存器组共32个通用寄存器。 )四个寄存器组共 个通用寄存器。 个通用寄存器 (2)部分特殊功能寄存器。 )部分特殊功能寄存器。
第三章 80C51单片机指令系统 单片机指令系统
3.1 80C51指令系统概述
指令: 指令: 命令 指令格式: 指令格式:操作码 和 操作数
操作码 操作码
操作码是用来规定指令所完成的操作的; 操作码是用来规定指令所完成的操作的; 操作数则表示操作的对象。 操作数则表示操作的对象。
机器语言:用二进制代码表示的指令系统称为机器语言 机器语言 用二进制代码表示的指令系统称为机器语言. 用二进制代码表示的指令系统称为机器语言 如: 11001001 汇编语言:用助记符表示指令系统的语言称为汇编语言 汇编语言 用助记符表示指令系统的语言称为汇编语言. 用助记符表示指令系统的语言称为汇编语言 如: MOV A,R1 , 指令系统: 指令系统:软件资源 基础和工具
日日行,不怕千万里;
80C51指令系统中的变址寻址指令有如下特点: 指令系统中的变址寻址指令有如下特点: 指令系统中的变址寻址指令有如下特点 ⑴ 变址寻址方式只能对程序存储器进行寻址 ,或者说 是专门针对程序存储器的寻址方式。 是专门针对程序存储器的寻址方式。 ⑵ 变址寻址指令只有三条 MOVC A,@A+DPTR , + MOVC A,@A+PC A, A+ JMP @A+DPTR + 其中前两条是程序存储器读指令, 其中前两条是程序存储器读指令 , 后一条是无条 件转移指令。 件转移指令。 这三条指令却都是单字节指令。 ⑶ 这三条指令却都是单字节指令。 变址寻址方式用于查表操作。 ⑷ 变址寻址方式用于查表操作。
寻址方式
3.寄存器寻址 . 在指令中将指定寄存器的内容作为操作数。 在指令中将指定寄存器的内容作为操作数。因 此指定了寄存器就能得到操作数。 此指定了寄存器就能得到操作数。 寄存器寻址方式中,用符号名称来表示寄存器。 寄存器寻址方式中,用符号名称来表示寄存器。 例如:指令 例如:指令INC R0 其功能如图 所示 所示。 其功能如图3–3所示。 寄存器寻址方式的寻址范围包括: 寄存器寻址方式的寻址范围包括: (1)四个寄存器组共32个通用寄存器。 )四个寄存器组共 个通用寄存器。 个通用寄存器 (2)部分特殊功能寄存器。 )部分特殊功能寄存器。
第三章 80C51单片机指令系统 单片机指令系统
3.1 80C51指令系统概述
指令: 指令: 命令 指令格式: 指令格式:操作码 和 操作数
操作码 操作码
操作码是用来规定指令所完成的操作的; 操作码是用来规定指令所完成的操作的; 操作数则表示操作的对象。 操作数则表示操作的对象。
机器语言:用二进制代码表示的指令系统称为机器语言 机器语言 用二进制代码表示的指令系统称为机器语言. 用二进制代码表示的指令系统称为机器语言 如: 11001001 汇编语言:用助记符表示指令系统的语言称为汇编语言 汇编语言 用助记符表示指令系统的语言称为汇编语言. 用助记符表示指令系统的语言称为汇编语言 如: MOV A,R1 , 指令系统: 指令系统:软件资源 基础和工具
日日行,不怕千万里;
80C51指令系统中的变址寻址指令有如下特点: 指令系统中的变址寻址指令有如下特点: 指令系统中的变址寻址指令有如下特点 ⑴ 变址寻址方式只能对程序存储器进行寻址 ,或者说 是专门针对程序存储器的寻址方式。 是专门针对程序存储器的寻址方式。 ⑵ 变址寻址指令只有三条 MOVC A,@A+DPTR , + MOVC A,@A+PC A, A+ JMP @A+DPTR + 其中前两条是程序存储器读指令, 其中前两条是程序存储器读指令 , 后一条是无条 件转移指令。 件转移指令。 这三条指令却都是单字节指令。 ⑶ 这三条指令却都是单字节指令。 变址寻址方式用于查表操作。 ⑷ 变址寻址方式用于查表操作。
第3章 80C51单片机指令系统及程序设计

sjmploop313寻址方式313寻址方式符号含义rn表示当前选定寄存器组的工作寄存器r0r7ri表示作为间接寻址的地址指针r0r1data表示8位立即数即00hffh表示16位立即数即0000hffffhdata161符号约定addr16表示16位地址用于64k范围内寻址addr11表示11位地址用于2k范围内寻址direct8位直接地址可以是内部ram区的某单元或某专用功能寄存器的地址rel带符号的8位偏移量128127bit位寻址区的直接寻址位xx地址单元中的内容或x作为间接寻址寄存器时所指单元的内容将将后面的内容传送到前面去2寻址方式取得操作数的地址的方法叫做寻址方式
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 条 四周期指令: 条
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 、相对寻址
第三章80C51单片机的指令系统

6.变址寻址
也称基址寄存器加变址寄存器间接寻址(基址加变址寻址 基址寄存器加变址寄存器间接寻址( 变址寻址) 基址寄存器加变址寄存器间接寻址 基址加变址寻址
变址寻址是以DPTR或PC作为基址寄存器,以累加器A作 变址寻址 为变址寄存器,将两寄存器的内容相加形成16位程序存储器 地址作为操作数的实际地址。例如:
4、寄存器间接寻址
寄存器间接寻址方式,寄存器(Ri)中 存放的不是操作数,而是操作数的地址, 也即操作数是通过寄存器指向的地址单元 得到的,这便是寄存器间接寻址名称的由 来。 工 作 寄 存 器 R0 、 R1 和 专 用 寄 存 器 DPTR可用于间接寻址,在寄存器前加“@” 符号作前缀。
例如指令:
注: MOV A, @Ri MOV MOV MOV
以Ri中的内容为地址 ,把该地址中 中的内容为地址 的内容送到A中去 中去。 的内容送到 中去。A← ((Ri)) A, R0 的内容送到A去 将R0的内容送到 去。 A← (R0) 的内容送到 ; (A) = 20H A的内容为 的内容为20H 的内容为 ; (A) = (20H) A的内容为 的内容为20H中的内容 中的内容 的内容为 中的
3.1 概述
一、指令分类 80C51单片机指令系统共有255种代码,由42种 助记符,构成了111条指令,按其功能分可 分以下5大类。 ⑴数据传送类(共28条) ⑵算术运算类(共24条) ⑶逻辑运算(共25条) ⑷控制转移类(共17条) ⑸位操作类(共17条)
二、指令格式
绝大多数指令包含两个基本部分:操作码和操作数。 LOOP:
MOV C,bit (其中C为位累加器) ANL C,bit (bit为某一个位地址) • 如: MOV 30H , C ; 30H是位寻址位地址 是位寻址位地址 • MOV C , ACC.7 ; Cy←ACC.7
单片机及应用_第三章_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单片机的指令系统
(03)第三章 80C51单片机的指令系统(2)

无此指令 无此指令
15
2.目的地址传送指令 2.目的地址传送指令
MOV DPTR,#data16
data16是16位二进制数 data16是16位二进制数 是唯一的一条16位立即数传送指令 是唯一的一条16位立即数传送指令
执行:MOV 执行:MOV
DPTR,#1234H后 DPTR,#1234H后
回顾
单片机的存储器
ROM:片内、 ROM:片内、片外统一编址
物理上分开,但逻辑上不分开 物理上分开,
RAM:片内、片外(含片内扩展) RAM:片内、片外(含片内扩展)分别编址
物理上、逻辑上都分开 物理上、
寻址方式
有7种寻址方式
1
寻址方式和寻址空间
寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器 间接寻址 相对寻址 变址寻址 位寻址 使用变量 ROM 片内低128B RAM、SFR R0~R7、A、B、DPTR、 寄存器 CY @R0、@R1、SP @R0、@R1、@DPTR PC+偏移量(rel) @A+PC、@A+DPTR 片内RAM,80C52的高 128B只能用本方式寻址 片外RAM、片内扩展 RAM ROM ROM 片内RAM的位寻址区、 可以位寻址的SFR √ √ √ √ √ 寻址空间 操作数 目的 源 √ √ √ √ √ √ √ √
不需第三者介入,就可实现两变量的互换。 不需第三者介入,就可实现两变量的互换。
18
已知: 已知:(A)=23H,(30H)=45H 执行:XCH A,30H后 执行:XCH A,30H后
(A)=45H,(30H)=23H
已知:(A)=20H,(R1)=30H,(30H)=66H 已知:(A)=20H,(R1)=30H,(30H)=66H 执行:XCH A,@R1后 执行:XCH A,@R1后
15
2.目的地址传送指令 2.目的地址传送指令
MOV DPTR,#data16
data16是16位二进制数 data16是16位二进制数 是唯一的一条16位立即数传送指令 是唯一的一条16位立即数传送指令
执行:MOV 执行:MOV
DPTR,#1234H后 DPTR,#1234H后
回顾
单片机的存储器
ROM:片内、 ROM:片内、片外统一编址
物理上分开,但逻辑上不分开 物理上分开,
RAM:片内、片外(含片内扩展) RAM:片内、片外(含片内扩展)分别编址
物理上、逻辑上都分开 物理上、
寻址方式
有7种寻址方式
1
寻址方式和寻址空间
寻址方式 立即寻址 直接寻址 寄存器寻址 寄存器 间接寻址 相对寻址 变址寻址 位寻址 使用变量 ROM 片内低128B RAM、SFR R0~R7、A、B、DPTR、 寄存器 CY @R0、@R1、SP @R0、@R1、@DPTR PC+偏移量(rel) @A+PC、@A+DPTR 片内RAM,80C52的高 128B只能用本方式寻址 片外RAM、片内扩展 RAM ROM ROM 片内RAM的位寻址区、 可以位寻址的SFR √ √ √ √ √ 寻址空间 操作数 目的 源 √ √ √ √ √ √ √ √
不需第三者介入,就可实现两变量的互换。 不需第三者介入,就可实现两变量的互换。
18
已知: 已知:(A)=23H,(30H)=45H 执行:XCH A,30H后 执行:XCH A,30H后
(A)=45H,(30H)=23H
已知:(A)=20H,(R1)=30H,(30H)=66H 已知:(A)=20H,(R1)=30H,(30H)=66H 执行:XCH A,@R1后 执行:XCH A,@R1后
第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的指令系统.ppt
当前PC …
…
1024H 47 1025H 45
指令代码
23H
1002H
ALU
1025H
3.2.7 位寻址
以访问触发器的方式对内部RAM、特殊功能寄存器SFR中的 位地址空间进行访问称之为位寻址。可被寻址的位:
片内RAM的20H~2FH单元,位地址00H ~ 7FH; SFR中12个能被8整除的字节地址,位地址80H以上。
指令形式:
操作码
此指令用于查表
特点: 操作数=基地址+地址偏移量 指令码内隐含存放基地址的寄存器(DPTR/PC)号 DPTR/PC中的基地址常常是表格的起始地址,累加器中
存放偏移量rel。 例如:
MOVC A, @A+DPTR MOVC A, @A+PC
如:MOVC A,@A+DPTR 设DPTR=2000H,A=E0H
MOV A, @R0 ;A ← ((R0)) MOVX A, @DPTR ;A ← ((DPTR)) MOV @R0, #30H MOV @R0, 30H
3.2.5 变址寻址
(基址寄存器+变址寄存器间接寻址)
此种寻址方式以DPTR或PC作基址寄存器,A作变址寄存器(存放8位 无符号数),两者相加形成16位程序存储器地址作操作数地址。
指令直接给出一个操作数,它紧跟在操作码后,通常 称它为立即数(8位或16位)。
指令形式:
操作码 立即数
特点:指令码中含有操作数本身
例如: MOV MOV
A, #30H ;A ← #30H DPTR, #8000H ;DPTR ← #8000H
3.2.2 直接寻址
指令直接给出操作数所在存储单元的地址,它紧跟在操作码后。
微机原理 单片机 第3章 80C51的指令系统
< > 返回
(2)指令编码字节少。单字节指令有49 条,双字节指令有45条,三字节指令仅 有17条。 (3)位操作指令丰富,这使得80C51单 片机的控制功能方便灵活。
<
>
返回
三、指令编码格式
[标号]: 操作码 [目的操作数] [,源操作数] [;注释]
标号:表示指令的符号地址,可作为转移的目 标地址。 操作码:用来规定该指令要执行的操作性质, 如MOV,ADD,ORL,LJMP等,操作码通常可用1个 字节表示。 操作数:表示在执行过程中所完成的操作对象, 根据指令功能,可有0、1、2、3个操作数,用12个字节表示。 注释:方便用户阅读。
< > 返回
二、指令分类
80C51单片机系统共有111条指令,按指令 功能分为: ♦数据传送(28条) ♦算术运算(24条) ♦逻辑运算(25条) ♦控制转移(17条) ♦位操作指令(17条) 其指令系统的特点是: (1)执行时间短。单机器周期指令有64条,双 机器周期指令有45条,而四机器周期指令仅有 乘、除法2条。当主频为12MHz时,典型指令执 行时间为1us。
+5V C3 K R1 RST
89C51
相应程序:MOV P1,#00H;灯亮
ACALL delay ;延时 MOV P1,#01H;灯灭 ACALL delay
学习指导和要求
• 理解和掌握指令的 三种编码格式; • 熟练掌握七种寻址 方式; • 熟记各种类型的指 令格式及功能,并 能编写简单程序。
80C51的机器指令按编码的字节数可分为 如下三种指令编码格式:
1、单字节指令(49条)
7 0
opcode 7 opcode 3 2 reg 0 0 0 0 0 1 1 1 1
(2)指令编码字节少。单字节指令有49 条,双字节指令有45条,三字节指令仅 有17条。 (3)位操作指令丰富,这使得80C51单 片机的控制功能方便灵活。
<
>
返回
三、指令编码格式
[标号]: 操作码 [目的操作数] [,源操作数] [;注释]
标号:表示指令的符号地址,可作为转移的目 标地址。 操作码:用来规定该指令要执行的操作性质, 如MOV,ADD,ORL,LJMP等,操作码通常可用1个 字节表示。 操作数:表示在执行过程中所完成的操作对象, 根据指令功能,可有0、1、2、3个操作数,用12个字节表示。 注释:方便用户阅读。
< > 返回
二、指令分类
80C51单片机系统共有111条指令,按指令 功能分为: ♦数据传送(28条) ♦算术运算(24条) ♦逻辑运算(25条) ♦控制转移(17条) ♦位操作指令(17条) 其指令系统的特点是: (1)执行时间短。单机器周期指令有64条,双 机器周期指令有45条,而四机器周期指令仅有 乘、除法2条。当主频为12MHz时,典型指令执 行时间为1us。
+5V C3 K R1 RST
89C51
相应程序:MOV P1,#00H;灯亮
ACALL delay ;延时 MOV P1,#01H;灯灭 ACALL delay
学习指导和要求
• 理解和掌握指令的 三种编码格式; • 熟练掌握七种寻址 方式; • 熟记各种类型的指 令格式及功能,并 能编写简单程序。
80C51的机器指令按编码的字节数可分为 如下三种指令编码格式:
1、单字节指令(49条)
7 0
opcode 7 opcode 3 2 reg 0 0 0 0 0 1 1 1 1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
能被计算机直接识别、执行的指令是使用二进制编码表示的
指令,这种指令被称为机器语言指令。 机器语言难编写、难读懂、难查错和难交流。
以助记符表示的指令被称为符号指令。
汇编语言就是典型的符号指令。
单片机常用的编程语言:汇编语言和C语言。
5
第3章80C51单片机的寻址方式和指令系统
80C51系列单片机汇编语言指令系统共有111条指令, 按功能划分,可分为五大类:
2
第2章:80C51系列单片机基本结构及原理
3.3 数据传送类指令(29条)
3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 内部RAM数据传送指令 访问外部RAM的数据传送指令MOVX 读取ROM中常数表的查表指令MOVC 数据交换指令 堆栈操作指令
目录
3.4 算术运算类指令(24条)
16
3.1.3 指令中常用符号说明
在描述80C51系列单片机指令系统的功能时,经常使用的符号及意义如下:
Rn(n=O~7) Ri(i=0、1) #data #datal6 direct addrll addrl6 rel bit @ C / (X) ((X)) $ 当前选中的工作寄存器中的寄存器R0~R7之一; 当前选中的工作寄存器可作为地址指针的寄存器R0、R1; 8位立即数; 16位立即数;
20
本节内容
3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址
21
3.2.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条)
34
3.2.4 寄存器间接寻址
所谓寄存器间接寻址就是以寄存器中的内容作为RAM地址, 该地址中的内容才是操作数。 寄存器名称前加“@”标志来表示寄存器间接寻址。 【例3-4】 (RO)=60H,(60H)=32H,则执行MOV A,@R0 指令后,
(A)=?,(RO)=?
解:指令执行过程如图3-4,结果:(A)= 32H,(RO)=60H。
例如:MOV A,#30H
该指令两个字节的编码为0111 0100B,0011 0000B 其十六进制表示为:74H,30H,其中74H存放在指令码的第一字节,data这 个具体的数据存放在第二字节。
14
三、三字节指令(17条): 三字节指令为24位编码,其格式为:
第一个字节表示操作码,后两个字节为参与操作的操作数data或数据所在地 址direct。
例如:MOV
20H,#50H
该指令的3个字节编码为0111 0101B,0010 0000B,0101 0000B。 其十六进制表示为75H,20H,50H。第一个字节存放75H这个操作码,第二个 字节存放目的地址20H,第三个字节存放源操作数50H。
15
本节内容
3.1.1 汇编语言指令格式 3.1.2 机器码的三种格式 3.1.3 指令中常用符号说明
值被覆盖。
27
28
注意: 1)对于特殊功能寄存器,其直接地址既可以写成特殊功能寄 存器的直接地址形式。 如指令:MOV A,90H
说明:90H是特殊功能寄存器P1的直接地址形式。
2)更常采用特殊功能寄存器的符号名称来表示。
如指令:MOV A,P1
说明:P1是特殊功能寄存器的符号名称,也是符号地址,在指令中 符号“P1”与地址“90H”是等同的。
(1)数据传送类指令(29条);
(2)算术运算类指令(24条);
(3)逻辑运算及移位类指令(24条); (4)控制转移类指令(17条); (5)位操作类指令(17条)。
6
本节内容
3.1.1 汇编语言指令格式 3.1.2 机器码的三种格式 3.1.3 指令中常用符号说明
7
3.1.1 汇编语言指令格式
解:指令执行过程如图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寄存器对的形式出现时为寄存器寻址,单独出现
一条完整的汇编语言指令通常由标号、操作码、操作数 (一般包括目的操作数和源操作数)及指令的注释构成。 指令格式: [标号:] <操作码> [操作数] [,操作数][;注释]
说明:
①在一条指令中,方括号中的内容可有可无,尖括号中的内容 必须有。
②由指令格式可见,操作码是指令的核心,不可缺少。
8
标号—标号是该指令的起始地址,是一种符号地址。
35
说明:
R0寄存器的内容60H是操作数地址,内部RAM60H的内容32H才是操作数, 把该操作数复制到累加器A中,A中原来的数据被覆盖了,结果(A)=32H。 若是寄存器寻址指令:MOV A,R0;则执行结果(A)=60H。
17
寻址就是寻找操作数的地址。 寻址方式则指出寻找操作数地址的方式方法。
一条指令可能含多种寻址方式,通常根据指令的源操作数来决定指令的 寻址方式。
寻址方式总体上分为两大类:
一是操作数的寻址。 二是跳转、调用等指令所涉及的跳转目标地址和调用程序的首地址的寻址。
19
80C51单片机的寻址方式有七种: 立即数寻址 直接寻址 寄存器寻址 寄存器间接寻址 基址变址寻址 相对寻址 位寻址
23
24
本节内容
3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址
25
3.2.2 直接寻址
直接寻址方式就是在指令中直接给出操作数存放在内部RAM
的地址,或直接给出特殊功能寄存器的地址或符号。
(1)单字节指令49条(只有操作码,没有直接数字(只有寄存器名)) (2)双字节指令45条(有一个字节“立即数”或一个字节“地址数”) (3)三字节指令17条(有两个字节“立即数”或两个字节“地址数”)
按执行时间来分,分三种:
(1)1个机器周期(12个时钟振荡周期)的指令64条; (2)2个机器周期指令45条; (3)4个机器周期--乘、除指令2条。
29
本节内容
3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 立即寻址 直接寻址 寄存器寻址 寄存器间接寻址 变址寻址 相对寻址 位寻址
30
3.2.3 寄存器寻址
寄存器寻址就是以寄存器的内容作为操作数。
【例3-3】如(RO)=60H,则执行MOV A,R0 指令后,(A)=?
这类指令中高5位表示操作码,低3位rrr为存放操作数的寄存器编码 Rn(n=0,…7)。
例如:MOV
A,R0
该指令的编码为:1110 1000B 其十六进制表示为E8H,低三位000为R0的编码。
13
二、双字节指令(45条) 双字节指令为16位编码,其格式为:
第一个字节表示操作码,第二个字节为参与操作的操作数data或数据所在 地址direct。
标号可以由1~8个字符组成,第一个字符必须是字母,其余字符可以是字 母、数字或其他特定符号。标号后跟分界符“:”。
操作码—指令的助记符。
操作码规定了指令所能完成的操作功能,是指令的必需部分,是指令的核 心,不可缺少。
操作数—指出了指令的操作对象。
•操作数可以是一个具体的数据,也可以是存放数据的单元地址,还可以是 符号常量或符号地址等。 •操作数可分为目的操作数和源操作数,多个操作数之间用逗号“,”分隔。
据前面加“#”标志。
22
【例3-1】执行指令:MOV
A,#30H 后累加器A的值是多少?
解:执行指令如图3-1所示,(A)=30H。
汇编指令MOV A,#30H编译成机器码后为:74H,30H,其中30H就是立即
数,该指令功能是将30H这个数本身送入累加器A中,执行完这条指令后累加 器A中的值为30H,即(A)=30H。立即寻址所对应的存储空间为ROM空间。
11
一、单字节指令(49条): 两种编码格式: 1.8位编码只表示一个操作码编码,其格式为:
例如:INC
A
该汇编指令的机器码为:0000 0100B 其十六进制数为04H,操作数(累加器A)隐含在操作码中。
注意:在汇编语言指令中,“A”代表累加器,而用“ACC”代表 累加器的地址E0H。
12
2.8位编码中包含操作码和寄存器编码,其格式为:
直接寻址方式可访问以下存储空间:
1)内部RAM低128个字节单元,在指令中直接地址以单元地址的形式给出;
2)特殊功能寄存器。
26
【例3-2】已知内部RAM (30H)=58H,执行指令“MOV A,30H” 后,(A)=?
解:指令执行过程如图3-2所示,结果:(A)=58H 。 该指令在ROM中的机器码为:E5H、30H,其中30H表示直接地址,该指令功能 是把内部RAM地址为30H单元中的操作数58H传送给累加器A,累加器原先的数