第03章 8086指令系统简介及寻址方式
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例3.7 MOV AX,[2000H] 已知:(DS)=3000H 则该指令执行后: (AX)=?
19/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接
注意 例3.8 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
四、寄存器间接寻址 操作数放在存储器的存储单元中,其有效 地址放在寄存器中,若该操作数在指令中 以“[寄存器名称]”的形式出现,则该操作 数的寻址方式称为寄存器间接寻址。
缀。
27/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址
注意 例3.10 相对基址变址
3.2 寻址方式
例3.10 MOV AX,[BX][SI] 也可写成:MOV AX,[BX+SI] 已知:(DS)=2100H,(BX)=0158H,
器是堆栈段寄存器SS。 (4) 寄存器间接寻址方式允许使用段跨越
前缀。
21/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接
注意 例3.8 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.8 MOV AX,[BX] 已知:(DS)=2000H,(BX)=1000H 则该指令执行后:(AX)=?
26/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址
注意 例3.10 相对基址变址
3.2 寻址方式
注意: (1) 当基址寄存器BX的内容作为有效地址
的一部分时,默认的段寄存器是DS; (2) 当基址寄存器BP的内容作为有效地址
的一部分时,默认的段寄存器是SS; (3) 基址变址寻址方式允许使用段跨越前
名字:在伪指令中用来定义变量名、过程名等。
6/50
内容提要
指令分类 指令格式
3.1 指令的分类及格式
标号和名字统称为标识符。 关于标识符的规定:
长度不能超过31个字符,组成该字 符串的字符可以是字母(A~Z或a~z)、 数字(0~9)、特殊符号(“?”、“.”、 “@”、“_”、“$”)。其中数字不能做 第一个字符,标识符中如果使用到“.”, 则该字符必须是第一个字符。
指令执行后,(AL)=? 该指令中8位源操作数的寻址方式 是立即寻址。
12/50
内容提要
立即寻址 例3.1 例3.2
寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.2 MOV BX,1024H 指令执行后,(BX)=? 该指令中16位源操作数的寻址方式 是立即寻址。
3/50
内容提要
指令分类 硬指令 伪指令
指令格式
3.1 指令的分类及格式
2. 伪指令:指一些固定格式的约定符号, 用于指示汇编程序如何工作, 不产生任何目标代码。
4/50
内容提要
指令分类 指令格式
3.1 指令的分类及格式
二、指令的格式 8088/8086汇编语言的硬指令和伪指令的 格式基本相同。
越前缀。
30/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
注意 例3.11
3.2 寻址方式
例3.11 MOV AX,NUM[BP][SI] 也可写成:MOV AX,NUM[BP+SI]
或:MOV AX,[NUM+BP+SI] 已知:(SS)=3000H,(BP)=2000H,
注意:立即数只能用作源操作数,不能用 作目的操作数,且源操作数的长度 与目的操作数的长度必须一致。
13/50
内容提要
立即寻址 寄存器寻址
例3.3 例3.4 可用寄存器 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
二、寄存器寻址 当源操作数已经存储在某个寄存器中,或 者要把目的操作数存入某个寄存器时,指 令中就指出所要使用的寄存器名称,该操 作数的寻址方式即为寄存器寻址方式。 例3.3 MOV DL,81H
20/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接
注意 例3.8 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
注意: (1) 所用寄存器只能是BX、BP、SI、DI; (2) 当使用寄存器BX、SI、DI时,默认的
段寄存器是数据段寄存器DS; (3) 当使用寄存器是BP时,默认的段寄存
(BX)=4567H 则指令执行后,(AX)=?,
(BX)=? 该指令中源操作数和目的操作数的寻址方 式都是寄存器寻址。
15/50
内容提要
立即寻址 寄存器寻址
例3.3 例3.4 可用寄存器 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
可以使用的8位寄存器有:
7/50
3.1 指令的分类及格式
[标号:] 操作符 [目的操作数] [,源操作数] [;注释]
[名字] 定义符 [操作数]
[;注释]
操作符和定义符:用于规定硬指令的操作性质和伪 指令的伪操作功能。
8/50
3.1 指令的分类及格式
[标号:] 操作符 [目的操作数] [,源操作数] [;注释]
[名字] 定义符 [操作数]
11/50
内容提要
立即寻址 例3.1 例3.2
寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
一、立即寻址 操作数本身作为指令的一部分直接出现在 指令中,即为立即数,寻找该立即数的寻 址方式称为立即寻址。 例3.1 MOV AL,36H
17/50
内容提要
立即寻址 寄存器寻址 直接寻址
例3.5 例3.6 例3.7 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.5 MOV AX,[1000H] 缺省情况下,操作数有效地址的作用域是 DS所指向的数据段,但也允许使用段跨 越前缀将作用域指定为其他的段。
例3.6 MOV AX,ES:[1000H] 在汇编语言程序中,通常用符号地址(变 量名)来代替数值地址。 例如:MOV AX,Value
18/50
内容提要
立即寻址 寄存器寻址 直接寻址
例3.5 例3.6 例3.7 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.5 例3.6 例3.7 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
三、直接寻址 操作数放在存储器的存储单元中,在指令 中直接给出该操作数在存储器中的偏移地 址,这种寻址方式称为直接寻址。 该偏移地址也称有效地址EA(Effective Address)。
29/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
注意 例3.10
3.2 寻址方式
注意: (1) 当基址寄存器BX的内容作为有效地址
的一部分时,默认的段寄存器是DS; (2) 当基址寄存器BP的内容作为有效地址
的一部分时,默认的段寄存器是SS; (3) 相对基址变址寻址方式允许使用段跨
(SI)=1000H,NUM=200H 则该指令执行后: (AX)=?
31/50
内容提要
通用数传指令 MOV •三种形式-1 •三种形式-2 •三种形式-3 •5点规定 XCHG •例3.14 •注意
地址传送指令 堆栈指令 标志寄存器
传送指令
22/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对
注意 例3.9 基址变址 相对基址变址
3.2 寻址方式
五、寄存器相对寻址 操作数放在存储器的存储单元中,其有效 地址是基址寄存器(BX、BP)或变址寄 存器(SI、DI)的内容与指令中给定的8 位或16位位移量之和,该操作数的这种寻 址方式称为寄存器相对寻址。
25/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址
注意 例3.10 相对基址变址
3.2 寻址方式
六、基址变址寻址 操作数放在存储器的存储单元中,其有效 地址是一个基址寄存器(BX、BP)与一 个变址寄存器(SI、DI)的内容之和,该 操作数的这种寻址方式称为基址变址寻址。
AL、AH、BL、BH、CL、CH、DL、DH
可以使用的16位寄存器有:
AX、BX、CX、DX、SI、DI、BP、SP、 DS、CS、SS、ES
注意: (1)段寄存器CS只能做源操作数; (2)当段寄存器DS、SS、ES作目的操
作数时,源操作数不能是立即数。
16/50
内容提要
立即寻址 寄存器寻址 直接寻址
3学时
本章主要内容 一、指令的分类及格式 二、寻址方式 三、数据传送指令
2/50
内容提要
指令分类 硬指令 伪指令
指令格式
3.1 指令的分类及格式
一、指令的分类 汇编语言中所使用的指令分成两类: 1. 硬指令:与二进制的机器指令一一对应,
由计算机来执行。 硬指令(简称指令)分成6类: 数据传送指令、算术运算指令、位操作 指令、串处理指令、控制转移指令、处 理机控制指令。
10/50
内容提要 3.2 寻址方式
MOV指令简介
8088/8086汇编语言中提供了7种与数据相 关的寻址方式。下面以MOV指令为例来介 绍这7种寻址方式。 MOV指令的格式:
MOV <Dest>,<Src> Src表示源操作数,Dest表示目的操作数。
指令功能:将源操作数Src表示的内容传 送到目的操作数Dest所指示的 位置。
[;注释]
操作数:可以是常量、寄存器名称、存储器地址, 也可以是一些合法的地址或数据表达式。 各操作数之间要用逗号分隔开。
9/50
3.1 指令的分类及格式
[标号:] 操作符 [目的操作数] [,源操作数] [;注释]
[名字] 定义符 [操作数]
[;注释]
注释:用来说明一段程序、一条或几条指令的功能, 以便阅读。
23/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对
注意 例3.9 基址变址 相对基址变址
3.2 寻址方式
注意: (1) 当使用寄存器BX、SI、DI时,默认的
段寄存器是DS; (2) 当使用的寄存器是BP是,默认的段寄
存器是SS; (3) 寄存器相对寻址方式允许使用段跨越
前缀。
24/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对
注意 例3.9 基址变址 相对基址变址
3.2来自百度文库寻址方式
例3.9 MOV AX,NUM[BX] 也可写成:MOV AX,[NUM+BX] 已知:(DS)=3000H,(BX)=2000H,
NUM=3000H 则该指令执行后: (AX)=?
(SI)=10A5H 则该指令执行后: (AX)=?
28/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
注意 例3.10
3.2 寻址方式
七、相对基址变址寻址 操作数放在存储器的存储单元中,其有效 地址是以下三个量之和:一个基址寄存器 (BX、BP)的内容、一个变址寄存器 (SI、DI)的内容、一个8位或16位位移 量,该操作数的这种寻址方式称为相对基 址变址寻址。
指令执行后,(DL)=? 该指令中目的操作数的寻址方式是 寄存器寻址。
14/50
内容提要
立即寻址 寄存器寻址
例3.3 例3.4 可用寄存器 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.4 MOV AX,BX 如果指令执行前(AX)=1234H,
硬指令格式: [标号:] 操作符 [目的操作数] [,源操作数] [;注释] 伪指令格式: [名字] 定义符 [操作数] [;注释]
5/50
3.1 指令的分类及格式 [标号:] 操作符 [目的操作数] [,源操作数] [;注释] [名字] 定义符 [操作数] [;注释]
标号:指出了该条硬指令的起始地址,程序员可 通过标号来引用所标识的硬指令。
19/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接
注意 例3.8 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
四、寄存器间接寻址 操作数放在存储器的存储单元中,其有效 地址放在寄存器中,若该操作数在指令中 以“[寄存器名称]”的形式出现,则该操作 数的寻址方式称为寄存器间接寻址。
缀。
27/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址
注意 例3.10 相对基址变址
3.2 寻址方式
例3.10 MOV AX,[BX][SI] 也可写成:MOV AX,[BX+SI] 已知:(DS)=2100H,(BX)=0158H,
器是堆栈段寄存器SS。 (4) 寄存器间接寻址方式允许使用段跨越
前缀。
21/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接
注意 例3.8 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.8 MOV AX,[BX] 已知:(DS)=2000H,(BX)=1000H 则该指令执行后:(AX)=?
26/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址
注意 例3.10 相对基址变址
3.2 寻址方式
注意: (1) 当基址寄存器BX的内容作为有效地址
的一部分时,默认的段寄存器是DS; (2) 当基址寄存器BP的内容作为有效地址
的一部分时,默认的段寄存器是SS; (3) 基址变址寻址方式允许使用段跨越前
名字:在伪指令中用来定义变量名、过程名等。
6/50
内容提要
指令分类 指令格式
3.1 指令的分类及格式
标号和名字统称为标识符。 关于标识符的规定:
长度不能超过31个字符,组成该字 符串的字符可以是字母(A~Z或a~z)、 数字(0~9)、特殊符号(“?”、“.”、 “@”、“_”、“$”)。其中数字不能做 第一个字符,标识符中如果使用到“.”, 则该字符必须是第一个字符。
指令执行后,(AL)=? 该指令中8位源操作数的寻址方式 是立即寻址。
12/50
内容提要
立即寻址 例3.1 例3.2
寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.2 MOV BX,1024H 指令执行后,(BX)=? 该指令中16位源操作数的寻址方式 是立即寻址。
3/50
内容提要
指令分类 硬指令 伪指令
指令格式
3.1 指令的分类及格式
2. 伪指令:指一些固定格式的约定符号, 用于指示汇编程序如何工作, 不产生任何目标代码。
4/50
内容提要
指令分类 指令格式
3.1 指令的分类及格式
二、指令的格式 8088/8086汇编语言的硬指令和伪指令的 格式基本相同。
越前缀。
30/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
注意 例3.11
3.2 寻址方式
例3.11 MOV AX,NUM[BP][SI] 也可写成:MOV AX,NUM[BP+SI]
或:MOV AX,[NUM+BP+SI] 已知:(SS)=3000H,(BP)=2000H,
注意:立即数只能用作源操作数,不能用 作目的操作数,且源操作数的长度 与目的操作数的长度必须一致。
13/50
内容提要
立即寻址 寄存器寻址
例3.3 例3.4 可用寄存器 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
二、寄存器寻址 当源操作数已经存储在某个寄存器中,或 者要把目的操作数存入某个寄存器时,指 令中就指出所要使用的寄存器名称,该操 作数的寻址方式即为寄存器寻址方式。 例3.3 MOV DL,81H
20/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接
注意 例3.8 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
注意: (1) 所用寄存器只能是BX、BP、SI、DI; (2) 当使用寄存器BX、SI、DI时,默认的
段寄存器是数据段寄存器DS; (3) 当使用寄存器是BP时,默认的段寄存
(BX)=4567H 则指令执行后,(AX)=?,
(BX)=? 该指令中源操作数和目的操作数的寻址方 式都是寄存器寻址。
15/50
内容提要
立即寻址 寄存器寻址
例3.3 例3.4 可用寄存器 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
可以使用的8位寄存器有:
7/50
3.1 指令的分类及格式
[标号:] 操作符 [目的操作数] [,源操作数] [;注释]
[名字] 定义符 [操作数]
[;注释]
操作符和定义符:用于规定硬指令的操作性质和伪 指令的伪操作功能。
8/50
3.1 指令的分类及格式
[标号:] 操作符 [目的操作数] [,源操作数] [;注释]
[名字] 定义符 [操作数]
11/50
内容提要
立即寻址 例3.1 例3.2
寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
一、立即寻址 操作数本身作为指令的一部分直接出现在 指令中,即为立即数,寻找该立即数的寻 址方式称为立即寻址。 例3.1 MOV AL,36H
17/50
内容提要
立即寻址 寄存器寻址 直接寻址
例3.5 例3.6 例3.7 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.5 MOV AX,[1000H] 缺省情况下,操作数有效地址的作用域是 DS所指向的数据段,但也允许使用段跨 越前缀将作用域指定为其他的段。
例3.6 MOV AX,ES:[1000H] 在汇编语言程序中,通常用符号地址(变 量名)来代替数值地址。 例如:MOV AX,Value
18/50
内容提要
立即寻址 寄存器寻址 直接寻址
例3.5 例3.6 例3.7 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.5 例3.6 例3.7 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
三、直接寻址 操作数放在存储器的存储单元中,在指令 中直接给出该操作数在存储器中的偏移地 址,这种寻址方式称为直接寻址。 该偏移地址也称有效地址EA(Effective Address)。
29/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
注意 例3.10
3.2 寻址方式
注意: (1) 当基址寄存器BX的内容作为有效地址
的一部分时,默认的段寄存器是DS; (2) 当基址寄存器BP的内容作为有效地址
的一部分时,默认的段寄存器是SS; (3) 相对基址变址寻址方式允许使用段跨
(SI)=1000H,NUM=200H 则该指令执行后: (AX)=?
31/50
内容提要
通用数传指令 MOV •三种形式-1 •三种形式-2 •三种形式-3 •5点规定 XCHG •例3.14 •注意
地址传送指令 堆栈指令 标志寄存器
传送指令
22/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对
注意 例3.9 基址变址 相对基址变址
3.2 寻址方式
五、寄存器相对寻址 操作数放在存储器的存储单元中,其有效 地址是基址寄存器(BX、BP)或变址寄 存器(SI、DI)的内容与指令中给定的8 位或16位位移量之和,该操作数的这种寻 址方式称为寄存器相对寻址。
25/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址
注意 例3.10 相对基址变址
3.2 寻址方式
六、基址变址寻址 操作数放在存储器的存储单元中,其有效 地址是一个基址寄存器(BX、BP)与一 个变址寄存器(SI、DI)的内容之和,该 操作数的这种寻址方式称为基址变址寻址。
AL、AH、BL、BH、CL、CH、DL、DH
可以使用的16位寄存器有:
AX、BX、CX、DX、SI、DI、BP、SP、 DS、CS、SS、ES
注意: (1)段寄存器CS只能做源操作数; (2)当段寄存器DS、SS、ES作目的操
作数时,源操作数不能是立即数。
16/50
内容提要
立即寻址 寄存器寻址 直接寻址
3学时
本章主要内容 一、指令的分类及格式 二、寻址方式 三、数据传送指令
2/50
内容提要
指令分类 硬指令 伪指令
指令格式
3.1 指令的分类及格式
一、指令的分类 汇编语言中所使用的指令分成两类: 1. 硬指令:与二进制的机器指令一一对应,
由计算机来执行。 硬指令(简称指令)分成6类: 数据传送指令、算术运算指令、位操作 指令、串处理指令、控制转移指令、处 理机控制指令。
10/50
内容提要 3.2 寻址方式
MOV指令简介
8088/8086汇编语言中提供了7种与数据相 关的寻址方式。下面以MOV指令为例来介 绍这7种寻址方式。 MOV指令的格式:
MOV <Dest>,<Src> Src表示源操作数,Dest表示目的操作数。
指令功能:将源操作数Src表示的内容传 送到目的操作数Dest所指示的 位置。
[;注释]
操作数:可以是常量、寄存器名称、存储器地址, 也可以是一些合法的地址或数据表达式。 各操作数之间要用逗号分隔开。
9/50
3.1 指令的分类及格式
[标号:] 操作符 [目的操作数] [,源操作数] [;注释]
[名字] 定义符 [操作数]
[;注释]
注释:用来说明一段程序、一条或几条指令的功能, 以便阅读。
23/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对
注意 例3.9 基址变址 相对基址变址
3.2 寻址方式
注意: (1) 当使用寄存器BX、SI、DI时,默认的
段寄存器是DS; (2) 当使用的寄存器是BP是,默认的段寄
存器是SS; (3) 寄存器相对寻址方式允许使用段跨越
前缀。
24/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对
注意 例3.9 基址变址 相对基址变址
3.2来自百度文库寻址方式
例3.9 MOV AX,NUM[BX] 也可写成:MOV AX,[NUM+BX] 已知:(DS)=3000H,(BX)=2000H,
NUM=3000H 则该指令执行后: (AX)=?
(SI)=10A5H 则该指令执行后: (AX)=?
28/50
内容提要
立即寻址 寄存器寻址 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
注意 例3.10
3.2 寻址方式
七、相对基址变址寻址 操作数放在存储器的存储单元中,其有效 地址是以下三个量之和:一个基址寄存器 (BX、BP)的内容、一个变址寄存器 (SI、DI)的内容、一个8位或16位位移 量,该操作数的这种寻址方式称为相对基 址变址寻址。
指令执行后,(DL)=? 该指令中目的操作数的寻址方式是 寄存器寻址。
14/50
内容提要
立即寻址 寄存器寻址
例3.3 例3.4 可用寄存器 直接寻址 寄存器间接 寄存器相对 基址变址 相对基址变址
3.2 寻址方式
例3.4 MOV AX,BX 如果指令执行前(AX)=1234H,
硬指令格式: [标号:] 操作符 [目的操作数] [,源操作数] [;注释] 伪指令格式: [名字] 定义符 [操作数] [;注释]
5/50
3.1 指令的分类及格式 [标号:] 操作符 [目的操作数] [,源操作数] [;注释] [名字] 定义符 [操作数] [;注释]
标号:指出了该条硬指令的起始地址,程序员可 通过标号来引用所标识的硬指令。