2012 第4章 8086寻址方式与指令系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
存储器 00000H DS 2000H × 10H

BX 2008H 8 22010H AH AX 12H AL 25H 22010H 操作码 +

代码段

25H 12H

数据段

FFFFFH

第4章 8086寻址方式与指令系统
寄存器相对寻址说明
偏移量是符号数,8位偏移量的取值范围为:00 ~0FFH(即+127D~-128D); 16位偏移量的取值范围为:0000~0FFFFH(即 +32767D~-32768D)。 8086汇编允许用下面三种形式表示相对寻址,它 们是等效的。 MOV AX,[BX]+8 MOV AX,8[BX] MOV AX,[BX+8]
第4章 8086寻址方式与指令系统
4.2.2 寄存器寻址
操作数在寄存器中,在指令中指定寄存器号。 操作数在寄存器中,指令执行时,操作就在 CPU的内部进行,不需要通过访问存储器来取 得操作数,因而指令的执行速度快。 在编程中,如有可能,应尽量在指令中使用这 种寻址方式。 例如: MOV AX,2010H
第4章 8086寻址方式与指令系统
例如: MOV AX,8[BX] 或 MOV AX,[BX+8] 或 MOV AX,[BX]+8 该指令的源操作数采用寄存器相对寻址方式。 若 DS=2000H,BX=2008H,那么指令执行后, AX=?
第4章 8086寻址方式与指令系统
寄存器相对寻址方式的指令执行示意图
第4章 8086寻址方式与指令系统
寄存器寻址方式可用的寄存器
对于16位操作数,寄存器可以是:
AX,BX,CX,DX SI,DI,SP,BP CS,DS,SS和ES
对8位操作数,寄存器可以是:
AH,AL BH,BL CH,CL DH,DL
第4章 8086寻址方式与指令系统
4.3 8086指令系统
8086指令系统包括六大类指令: 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令
控制转移指令
处理器控制指令
第4章 8086寻址方式与指令系统
8086汇编指令中的操作数可以有零个、一个或两 个,通常称为零地址、一地址或二地址指令。 二地址指令中的两个操作数分别称为源操作数和
除了POPF和SAHF指令外,其他的数据传送指令的 执行结果都不影响标志位。 指令中如果列出两个操作数,则指令的执行过程 是:目的操作数←源操作数。
指令中如果仅列出一个操作数,则另一个操作数
为隐含操作数。
第4章 8086寻址方式与指令系统
1.通用数据传送指令
1)传送指令
格式:MOV 目的操作数,源操作数
操作码和操作数地址都由二进制数码表示,整条 指令以二进制编码的形式存放在存储器中。
第4章 8086寻址方式与指令系统
指令系统与寻址方式的重要性
采用不同CPU的计算机的指令系统不同。 采用不同CPU的计算机的指令的格式不同。 采用不同CPU的计算机的各指令允许的寻址方式 不同。 要使用某种微处理器,必须先要掌握其指令系统 和寻址方式。
操作数的有效地址EA是指令中指定的基址或变址 寄存器的值与位移量之和。 指令中使用SI、DI、BX寄存器时,操作数默认存 放在数据段中;使用BP寄存器时,操作数默认存 放在堆栈段中,允许段超越。 操作数的物理地址 =DS×10H+SI/DI/BX+8位或16位位移量 或 =SS×10H+BP+8位或16位位移量
第4章 8086寻址方式与指令系统
4.2.4 寄存器间接寻址
操作数的有效地址EA存放在基址寄存器BX、BP或 变址寄存器SI、DI中。 为了区别于寄存器寻址方式,指令中指定的寄存 器名要用[]括起来。 指令中使用SI、DI、BX寄存器时,操作数默认存 放在数据段中;使用BP寄存器时,操作数默认存 放在堆栈段中,允许段超越。 操作数的物理地址=DS×10H + SI/DI/BX 或 SS×10H+BP
寄存器寻址方式指令执行示意图
存储器 00000H
AH AX 20H
AL 10H

操作码 10H 20H

代码段

FFFFFH

第4章 8086寻址方式与指令系统
寄存器寻址方式说明
在一条指令中,寄存器寻址方式既可用于源操作 数,也可用于目的操作数,还可以两者都用寄存 器寻址方式。 源操作数与目的操作数的长度应一致。例如,不 能将寄存器AX的内容传送到寄存器BH中,也不能 将寄存器BH的内容传送到寄存器AX中。 两个操作数不能同时为段寄存器。 目的操作数不能是代码段寄存器。
第4章 8086寻址方式与指令系统
4.2 8086寻址方式
寻址方式:
指令中给出的求出操作数有效地址的方法。
寻址操作:
计算机按照指令给出的寻址方式求出操作数有效地址 的过程。
第4章 8086寻址方式与指令系统
808的七种基本的数据寻址方式
(1)立即寻址; (2)寄存器寻址; (3)直接寻址; (4)寄存器间接寻址; (5)寄存器相对寻址; (6)基址加变址寻址; (7)相对基址加变址寻址。
第4章 8086寻址方式与指令系统
4.2.6基址加变址寻址
操作数的有效地址EA是指令中指定的基址寄 存器的值与变址寄存器的值之和。 指令中使用基址寄存器BX时,操作数默认存 放在数据段中; 使用基址寄存器BP时,操作数默认存放在堆 栈段中,允许段超越。 操作数的物理地址 =DS×10H+SI/DI+BX 或 =SS×10H+SI/DI+BP
第4章 8086寻址方式与指令系统
相对基址变址寻址方式的指令执行示意图
DS 2000H × 10H 00000H BX SI + 2008H 5H 操作码 3H 22010H AH AX 12H AL 25H 22010H 代码段 存储器



25H 12H

数据段


FFFFFH 第4章 8086寻址方式与指令系统
立即寻址方式的指令执行示意图
存储器 00000H
AH AX 20H
AL 10H

操作码 10H 20H

代码段

FFFFFH

第4章 8086寻址方式与指令系统
立即寻址方式说明
在所有的指令中,立即数只能作源操作数,不能作 目的操作数。 立即数应与目的操作数的长度一致。 立即数默认采用十进制形式,以十六进制形式出现 的立即数应以字母H为后缀,以八进制形式出现的立 即数应以字母Q为后缀。 以十六进制形式出现的立即数,若以字母开头,则 必须以数字0为前缀。 立即数还可以用表示+、-、×、/表示的算术表达式 ,也可以用圆括号改变运算顺序。 立即数只能是整数,不能是小数、变量或其它类型 的数据。
第4章 8086寻址方式与指令系统
直接寻址方式指令执行示意图
存储器 00000H

DS + 2000H × 10H 2010H 22010H AH AX 12H AL 25H 22010H 操作码 10H 20H

代码段

25H 12H

数据段

FFFFFH

第4章 8086寻址方式与指令系统
采用直接寻址方式时,如果指令中没有用前缀说 明操作数存放在哪个段,则操作数默认存放在数 据段。 8086系统也允许操作数存放在代码段、堆栈段或 附加段。此时,就需要在指令中指明段超越。 例如: MOV ES:[1225H],AX
目的操作数。
第4章 8086寻址方式与指令系统
4.3.1数据传送指令
数据传送指令是将数据或地址传送到寄存器、
存储单元或I/O端口中。
分为5类: 通用数据传送指令; 累加器专用传送指令; 地址传送指令; 标志传送指令; 数据类型转换指令。
第4章 8086寻址方式与指令系统
数据传送指令的共同特点
=DS×10H+SI/DI+BX+8位或16位位移量

=SS×10H+SI/DI+BP+8位或16位位移量
第4章 8086寻址方式与指令系统
例如: MOV AX,[BX+SI+3]
该指令的源操作数采用寄存器相对寻址方式。 若DS=2000H,BX=2008H,SI=0005H,那么指令
执行后,AX=?
第4章 8086寻址方式与指令系统
寄存器间接寻址方式指令执行示意图
存储器 00000H DS
2000H
× 10H

操作码

代码段
+ SI
2010H 22010H AH AL 25H 22010H
AX
12H

25H 12H

数据段

FFFFFH

第4章 8086寻址方式与指令系统
4.2.5 寄存器相对寻址
第4章 8086寻址方式与指令系统
4.2.4 直接寻址
操作数在存储器中,指令中以具体数值的形式直 接给出操作数所在存储单元的有效地址EA。为了 与立即数区别,该有效地址必须用[]括起。 例如: MOV AX,[2010H]
该指令的源操作数采用直接寻址方式。 若 DS=2000H,那么指令执行后,AX = ?
功能:将源操作数的内容(一个字或一个字节) 传送到目的操作数指定的寄存器或内存单元,源 操作数内容不变。例如: MOV MOV MOV AL,5;字节传送,立即数送通用寄存器 AX,BX;字传送,通用寄存器送通用寄存器 DS,AX ;字传送,通用寄存器送段寄存器 第4章 8086寻址方式与指令系统
第4章 8086寻址方式与指令系统
通常一条指令包括两部分:
操作码:决定要完成的操作 操作数:指参加运算的数据或是该数所在的内存单元 的地址。
指令的一般格式如下: 操作码 [操作数1,操作数2,„„,操作数n]
没有操作数的指令称为无操作数指令。 有两个操作数的指令称为双操作数或二地址指令。
第4章 8086寻址方式与指令系统
例如: MOV AX,[BX+SI] [SI] 或 MOV AX,[BX] [SI] 该指令的源操作数采用基址变址寻址方式。 若DS=2000H,BX=2008H,SI=8H,那么指令执行 后,AX=?
第4章 8086寻址方式与指令系统
基址变址寻址方式的指令执行示意图
第4章 8086寻址方式与指令系统
本章主要内容
1 概述 8086寻址方式 8086指令系统
2 3
第4章 8086寻址方式与指令系统
4.1 概述
指令是指挥计算机进行操作的命令。 指令系统是指微处理器能执行的各种指令的 集合。 程序是一系列按一定顺序排列的指令。 执行程序的过程就是计算机的工作过程。 微处理器的主要功能由它的指令系统来体现。 不同的微处理器有不同的指令系统,其中每 一条指令对应着处理器的一种基本操作,这 在设计微处理器时确定。
该指令的目的操作数采用直接寻址方式。操作数存放 在由ES指示的附加段中。 物理地址=ES×10H+1225H。
第4章 8086寻址方式与指令系统
在汇编语言指令中,可以用符号地址代替数值地 址。 例如: MOV AX,NUMA
此时,NUMA是存放操作数的内存单元的符号地址。
上面这条指令还可以写成如下的形式: MOV AX,[NUMA] 如果数据存放在附加段,则可以用如下的形式指 定段跨越前缀: MOV AX,ES: NUMA或 MOV AX,ES:[ NUMA]
存 储 器 寻 址 方 式
第4章 8086寻址方式与指令系统
4.2.1 立即寻址
操作数直接出现在指令中,此时的操作 数也叫立即数。 立即数紧跟在操作码后面,一起存放在 代码段中。 例如:
MOV AX,2010H 在该指令格式中,AX是目的操作数,2010H 是源操作数。
第4章 8086寻址方式与指令系统
第4章 8086寻址方式与指令系统
例如: MOV AX,[SI] 该指令的源操作数采用寄存器间接寻址方式。 若DS=2000H,SI=2010H,那么指令执行后, AX=? 如操作数不存放在间址寄存器默认的段,则指 定段超越的指令可采用如下形式。 MOV AX,ES:[SI] 此时,操作数的物理地址=ES×10H+SI。
存储器 DS 2000H × 10H 00000H
BX SI +
2008H 8H

操作码

代码段
22010H AH AH 12H

数据段

FFFFFH

第4章 8086寻址方式与指令系统
4.2.7 相对基址变址寻址
操作数的有效地址EA是指令中指定的基址寄存器 的值与变址寄存器的值以及8位或16位位移量之 和。 指令中使用基址寄存器BX时,操作数默认存放在 数据段中; 使用基址寄存器BP时,操作数默认存放在堆栈段 中,允许段超越。 操作数的物理地址
相关文档
最新文档