第3章80x86的寻址方式与指令系统(自学)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
寻 址 方 式 —— 如 何 寻 找 (规定)操作数的方式。即指 令中用于说明操作数所在地址 的方法。
2020/8/1
汇编语言程序设计
8
3.2 80x86的寻址方式
1. 立即寻址方式(Immediate addressing)
操作数直接放在指令中,紧跟在 操作码之后,与操作码一起存放在代 码段中。可以是字节/字/双字。
源操作数——指出操作数的来源。 目的操作数——指出指令的操作结果存放何处。 在许多指令中,同时又指出另一操作数的来源。注 意原来的数据丢失。
2020/8/1
汇编语言程序设计
4
3.1 指令系统概述
[例]
MOV AL,34H
;操作数本源自文库,立
即数。
ADD AL,DATA1 ;操作数地址
MUL CL
;单操作数
指令的形式有: 双操作数指令 单操作数指令 隐含操作数指令
DEC CX AAA
2020/8/1
汇编语言程序设计
5
3.1 指令系统概述
3. 操作数的种类
(1) 立即数——操作数本身,存放在指令 代码中。 (2) 寄存器操作数——操作数存放在CPU 内部寄存器中。 (3) 内存操作数——操作数存放在内存中, 一般在数据段、附加段、甚至堆栈段。给 出的是操作数的地址。 (4) 端口操作数——在I/O指令中,给出的 端口地址。如
IN AL,34H OUT 43H,AL
2020/8/1
汇编语言程序设计
6
第3章 80x86的寻址方式与基本指令
3.2 80x86的寻址方式
一、与数据有关的寻址方式 二、与转移地址有关的寻址方式 (三、I/O寻址方式)
2020/8/1
汇编语言程序设计
7
3.2 80x86的寻址方式
一、与数据有关的寻址方式
2020/8/1
汇编语言程序设计
11
3.2 80x86的寻址方式
2.寄存器寻址方式(Register addressing) 操作数在寄存器中,指令指定寄存器号。
对于16位操作数,寄存器可以是AX、BX、 CX、DX、SI、DI、SP、BP;对于8位操作数,寄 存器可以是AH、AL、BH、BL、CH、CL、DH、 DL。对于32位操作数,寄存器可以是EAX、EBX、 ECX、EDX、ESI、EDI、ESP、EBP;
有效地址的计算公式:
EA=基址+(变址×比例因子)+位移量
2020/8/1
汇编语言程序设计
16
3.2 80x86的寻址方式
16/32位寻址时EA四种成分的组成
位移量
0,8,16位 0,8,16,32位
基址寄存器 BX,BP 任何32位通用寄存器
变址寄存器 SI,DI 32位通用寄存器(除ESP)
比例因子
2020/8/1
汇编语言程序设计
2
1. 几个概念
3.1 指令系统概述
指令——计算机执行的各种操作的 命令的形式。
指 令 系 统 —— 计 算 机 所 能 执 行 的 全 部指令。
向 上 兼 容 —— 每 种 计 算 机 有 自 己 固 有 的 指 令 系 统 , 如 Intel 8086/8088 和 MC68000的指令系统各不相同。但是486 微 处 理 器 可 以 执 行 8086/8088 、 286 、 386 的指令系统,这就是向上兼容的缘故。
例: MOV AX,BX MOV ECX,EDX MOV DL,AL
2020/8/1
汇编语言程序设计
12
3.2 80x86的寻址方式
寄存器寻址方式由于操作数 在寄存器中,不需要访问存储器, 所以速度最快,也最常用。
寄存器寻址方式寻找操作数 的示意图如下:
如: MOV AX,BX
BX
AX
2020/8/1
无 1,2,4,8
16位寻址 32位寻址
2020/8/1
汇编语言程序设计
17
3.2 80x86的寻址方式
段 约 定 和 段
在指令中大多隐含 段地址。段地址有个基 本的规定(约定,默 认),也允许超越(可
超 修改),见下表所示:
越
2020/8/1
汇编语言程序设计
18
3.2 80x86的寻址方式
汇编语言程序设计
13
3.2 80x86的寻址方式
内存操作数
内 存 操 作 数
除上述两种寻址方式外,
以下的寻址方式的操作数都在 除代码段以外的存储区中,称 为内存操作数。
内存操作数的地址由段基 地址和偏移地址相加而取得。
在实模式和保护模式下, 段基地址的取得方法不同。
2020/8/1
汇编语言程序设计
有效地址EA由四种成分组成:
有 效 地
(1)位移量——8/16/32位地址偏移量
(2)基址——基址寄存器的内容。通常用
来指示数组或字符串的首地址。
址
(3)变址——变址寄存器的内容。通常用
的 来访问数组或字符串中的某个元素。
计
(4)比例因子——386以后机型有。值为
算 1,2,4,8。乘以变址寄存器的内容得到变址值。
14
3.2 80x86的寻址方式
有 效 地 址 EA ( Effective
Address)——在各种寻址方
有 式中,操作数的偏移地址可
效 由各种成分组成,称为有效
地 地址,用EA表示。
址
内存操作数的各种不同
的寻址方式,仅是它们的EA
的组成不同。
2020/8/1
汇编语言程序设计
15
3.2 80x86的寻址方式
第3章 80x86的寻址方式 与指令系统
3.1 指令系统概述
3.2 80x86的寻址方式
3.3 数据处理类指令
3.4 控制转移指令
3.5 处理器控制指令
3.6 串操作指令*
2020/8/1
汇编语言程序设计
1
第3章 80x86的寻址方式与基本指令
3.1 指令系统概述
指令的概念 指令的一般格式 操作数的类型
例
MOV AL,5
MOV AX,3087H
MOV EAX,12345678H
如下图所示:
2020/8/1
汇编语言程序设计
9
3.2 80x86的寻址方式
2020/8/1
汇编语言程序设计
10
3.2 80x86的寻址方式
立即寻址主要用途是给 寄存器赋初值。用来表示常 数。
注意只能用于源操作数, 不能用于目的操作数。
程序——指令的集合或指令的序列。
2020/8/1
汇编语言程序设计
3
3.1 指令系统概述
2. 指令的一般格式
操作码 操作数,……,操作数 80x86的运算指令采用二地址指令,即:
操作码 (目的)操作数,(源)操作数
操作码——指出要执行的操作。 操作数——指出指令操作的对象。可能是操作 数本身,也可能是操作数地址。
2020/8/1
汇编语言程序设计
8
3.2 80x86的寻址方式
1. 立即寻址方式(Immediate addressing)
操作数直接放在指令中,紧跟在 操作码之后,与操作码一起存放在代 码段中。可以是字节/字/双字。
源操作数——指出操作数的来源。 目的操作数——指出指令的操作结果存放何处。 在许多指令中,同时又指出另一操作数的来源。注 意原来的数据丢失。
2020/8/1
汇编语言程序设计
4
3.1 指令系统概述
[例]
MOV AL,34H
;操作数本源自文库,立
即数。
ADD AL,DATA1 ;操作数地址
MUL CL
;单操作数
指令的形式有: 双操作数指令 单操作数指令 隐含操作数指令
DEC CX AAA
2020/8/1
汇编语言程序设计
5
3.1 指令系统概述
3. 操作数的种类
(1) 立即数——操作数本身,存放在指令 代码中。 (2) 寄存器操作数——操作数存放在CPU 内部寄存器中。 (3) 内存操作数——操作数存放在内存中, 一般在数据段、附加段、甚至堆栈段。给 出的是操作数的地址。 (4) 端口操作数——在I/O指令中,给出的 端口地址。如
IN AL,34H OUT 43H,AL
2020/8/1
汇编语言程序设计
6
第3章 80x86的寻址方式与基本指令
3.2 80x86的寻址方式
一、与数据有关的寻址方式 二、与转移地址有关的寻址方式 (三、I/O寻址方式)
2020/8/1
汇编语言程序设计
7
3.2 80x86的寻址方式
一、与数据有关的寻址方式
2020/8/1
汇编语言程序设计
11
3.2 80x86的寻址方式
2.寄存器寻址方式(Register addressing) 操作数在寄存器中,指令指定寄存器号。
对于16位操作数,寄存器可以是AX、BX、 CX、DX、SI、DI、SP、BP;对于8位操作数,寄 存器可以是AH、AL、BH、BL、CH、CL、DH、 DL。对于32位操作数,寄存器可以是EAX、EBX、 ECX、EDX、ESI、EDI、ESP、EBP;
有效地址的计算公式:
EA=基址+(变址×比例因子)+位移量
2020/8/1
汇编语言程序设计
16
3.2 80x86的寻址方式
16/32位寻址时EA四种成分的组成
位移量
0,8,16位 0,8,16,32位
基址寄存器 BX,BP 任何32位通用寄存器
变址寄存器 SI,DI 32位通用寄存器(除ESP)
比例因子
2020/8/1
汇编语言程序设计
2
1. 几个概念
3.1 指令系统概述
指令——计算机执行的各种操作的 命令的形式。
指 令 系 统 —— 计 算 机 所 能 执 行 的 全 部指令。
向 上 兼 容 —— 每 种 计 算 机 有 自 己 固 有 的 指 令 系 统 , 如 Intel 8086/8088 和 MC68000的指令系统各不相同。但是486 微 处 理 器 可 以 执 行 8086/8088 、 286 、 386 的指令系统,这就是向上兼容的缘故。
例: MOV AX,BX MOV ECX,EDX MOV DL,AL
2020/8/1
汇编语言程序设计
12
3.2 80x86的寻址方式
寄存器寻址方式由于操作数 在寄存器中,不需要访问存储器, 所以速度最快,也最常用。
寄存器寻址方式寻找操作数 的示意图如下:
如: MOV AX,BX
BX
AX
2020/8/1
无 1,2,4,8
16位寻址 32位寻址
2020/8/1
汇编语言程序设计
17
3.2 80x86的寻址方式
段 约 定 和 段
在指令中大多隐含 段地址。段地址有个基 本的规定(约定,默 认),也允许超越(可
超 修改),见下表所示:
越
2020/8/1
汇编语言程序设计
18
3.2 80x86的寻址方式
汇编语言程序设计
13
3.2 80x86的寻址方式
内存操作数
内 存 操 作 数
除上述两种寻址方式外,
以下的寻址方式的操作数都在 除代码段以外的存储区中,称 为内存操作数。
内存操作数的地址由段基 地址和偏移地址相加而取得。
在实模式和保护模式下, 段基地址的取得方法不同。
2020/8/1
汇编语言程序设计
有效地址EA由四种成分组成:
有 效 地
(1)位移量——8/16/32位地址偏移量
(2)基址——基址寄存器的内容。通常用
来指示数组或字符串的首地址。
址
(3)变址——变址寄存器的内容。通常用
的 来访问数组或字符串中的某个元素。
计
(4)比例因子——386以后机型有。值为
算 1,2,4,8。乘以变址寄存器的内容得到变址值。
14
3.2 80x86的寻址方式
有 效 地 址 EA ( Effective
Address)——在各种寻址方
有 式中,操作数的偏移地址可
效 由各种成分组成,称为有效
地 地址,用EA表示。
址
内存操作数的各种不同
的寻址方式,仅是它们的EA
的组成不同。
2020/8/1
汇编语言程序设计
15
3.2 80x86的寻址方式
第3章 80x86的寻址方式 与指令系统
3.1 指令系统概述
3.2 80x86的寻址方式
3.3 数据处理类指令
3.4 控制转移指令
3.5 处理器控制指令
3.6 串操作指令*
2020/8/1
汇编语言程序设计
1
第3章 80x86的寻址方式与基本指令
3.1 指令系统概述
指令的概念 指令的一般格式 操作数的类型
例
MOV AL,5
MOV AX,3087H
MOV EAX,12345678H
如下图所示:
2020/8/1
汇编语言程序设计
9
3.2 80x86的寻址方式
2020/8/1
汇编语言程序设计
10
3.2 80x86的寻址方式
立即寻址主要用途是给 寄存器赋初值。用来表示常 数。
注意只能用于源操作数, 不能用于目的操作数。
程序——指令的集合或指令的序列。
2020/8/1
汇编语言程序设计
3
3.1 指令系统概述
2. 指令的一般格式
操作码 操作数,……,操作数 80x86的运算指令采用二地址指令,即:
操作码 (目的)操作数,(源)操作数
操作码——指出要执行的操作。 操作数——指出指令操作的对象。可能是操作 数本身,也可能是操作数地址。