3.1 80868088CPU的寻址方式
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(BX)+(SI)+COUNT (BX)+(DI)+COUNT (BP)+(SI)+COUNT (BP)+(DI)+COUNT
EA=
3.1.2
与数据有关的寻址方式
其中,COUNT为位移量,其值是用8位或16位二进制补
码表示的有符号数。SI、DI为变址寄存器,BX、BP为基 址寄存器,使用时只能出现一个基址寄存器和一个变址 寄存器。关于约定段的规定与基址变址寻址方式相同。
( BX ) ( BP) EA 8位或16位位移量 ( SI ) ( DI )
3.1.2
与数据有关的寻址方式
DS 3000
2000 COUNT + 1000 33000 33000H
操作码
SI
00H 10H
代 码 段
AX
AH
AL
66H 88H
存器代号。
能够用来间接寻址的寄存器只能是SI、DI、BX、BP其中 之一。
3.1.2
与Baidu Nhomakorabea据有关的寻址方式
使用约定段时,以上四个寄存器可分为两种情况:
若用SI、DI、BX间接寻址,则操作数在当前数据段中, 即用数据段寄存器DS的内容左移四位,加上SI、DI或BX
中的偏移地址EA形成操作数的物理地址PA。
无 无
ES,CS,SS
偏移地址
IP SP
有效地址
BP间址方式的数据存取
字符串处理指令(源串) 字符串处理指令(目的串)
SS
DS ES
ES,CS,DS
无 无
有效地址
SI DI
3.1.2
与数据有关的寻址方式
操作码
DS
操作码
偏移地址低字节
偏移地址高字节
3000
00H
+ 1000
10H
代 码 段
31000 31000H
若用寄存器BP间接寻址,则操作数在堆栈段中,即用堆栈 段寄存器SS的内容左移四位,加上BP中的偏移地址EA形 成操作数的物理地址PA。
3.1.2
与数据有关的寻址方式
DS
SI
+
3000
2000 32000
操作码 A0H
代 码 段 数 据 段
32000H
AX
AH
AL
F0H
MOV AX,[SI]
3.1.2
数 据 段
MOV AX,COUNT[SI]
3.1.2
与数据有关的寻址方式
6.基址加变址寻址
在基址加变址寻址方式中,操作数在存储器中,而 操作数偏移地址EA是指令中指定的基址寄存器、 变址寄存器的内容相加之和。即
EA=
(BX)+(SI) (BX)+(DI) (BP)+(SI) (BP)+(DI)
3.1.2
AX AH AL
代 码 段
06H
08H
数 据 段
MOV AX,[1000H]
SS
+
8000 1000
操作码 00H 10H
AL
代码 段
81000 81000H
AX AH
86H 89H
堆栈 段
MOV AX,SS:[1000H]
3.1.2
与数据有关的寻址方式
4.寄存器间接寻址
在寄存器间接寻址方式中,操作数存放在存储器中,而 操作数的偏移地址EA在指定的寄存器中,指令中给出寄
第3章 8086/8088指令系统
3.1
8086/8088 CPU的寻址方式
汇编语言指令是将二进制代码表示的机器指令用英文 单词或符号表示出来,以增加指令的可读性,称为指令的 助记符。汇编指令与机器指令有着一一对应的关系。与机 器指令一样,汇编指令也分为操作码和操作数两部分。
8086/8088CPU的寻址方式可分为两大类:与数据有 关的寻址方式和与转移地址有关的寻址方式。 与数据有关的寻址方式主要有七种基本寻址方式:立 即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存 器相对寻址、基址加变址寻址、相对基址加变址寻址。 与转移地址有关的寻址方式将在3.2.5节介绍。
SI +
AX
2000
34000 34000H
AH AL
代 码 段
69H 8FH
数 据 段
MOV AX,[BX][DI]
3.1.2
与数据有关的寻址方式
7.相对基址加变址寻址
在相对基址加变址寻址方式中,操作数在存储器中,而 操作数偏移地址EA是指令中指定的基址寄存器、变址寄 存器的内容及指令中给出的位移量相加之和。即
与数据有关的寻址方式
注意:使用时只能出现一个基址寄存器和一个变址寄存 器。基址寄存器选用BP还是BX,决定了是从堆栈段还是 从数据段中获取操作数(约定的情况下)。
若选用BP,则约定段为堆栈段。 若选用BX,则约定段为在数据段。
3.1.2
与数据有关的寻址方式
DS 3000 BX 2000
操作码
DS BX SI COUNT
3000 2000 2000
+ 0010
34010 34010H AX
AH AL
操作码 10H 00H 69H
代 码 段
数 据 段
8FH
MOV AX,10H[BX][SI]
与数据有关的寻址方式
SS
BP
+
8000
2000
82000 82000H
操作码
代 码 段 数 据 段
AX
AH
AL
80H 90H
MOV AX,[BP]
3.1.2
与数据有关的寻址方式
5.寄存器相对寻址
在寄存器相对寻址方式中,操作数在存储器中,而 操作数偏移地址EA是指令中指定的寄存器的内容 与指令中给出的位移量相加之和。即
1.立即寻址
指令中的操作数直接在指令中给出,它作为指令的一部分,
紧跟在指令操作码后面,是8位或16位二进制补码。
例如: MOV AX,1234H
3.1.2
与数据有关的寻址方式
AX
操作码 立即数低字节 立即数高字节
操作码
代 码 段
34H 12H
代 码 段
3.1.2
与数据有关的寻址方式
2.寄存器寻址
如果操作数在CPU内部的寄存器中,则指令中必须给出寄 存器代号,这种获取操作数的方式称为寄存器寻址。操作 数可为8位或16位。对于那些需要经常存取的操作数,采 用寄存器寻址方式较为合适。
例如: MOV BX,AX
或
MOV AL,AH
3.1.2
与数据有关的寻址方式
3.直接寻址
操作数在存储器单元中,指令中直接给出16位的偏移地址 EA ,紧跟在指令操作码后面,这种获取操作数的方式称
为直接寻址。
操作数的物理地址由其所在段的段寄存器内容左移 4 位与 指令中给出的偏移地址EA相加形成。
如果操作数在除数据段外的其它段中,指令中必须指定段 超越前缀。约定段和段更换关系如表3-1。
3-1 存储器存取时的约定段和段更换
存储器存取方式
取指令 堆栈操作
通用数据存取
约定段
CS SS
DS
段更换
3.1.2
与数据有关的寻址方式
下面将以MOV(数据传送)指令的源操作数为例,分别对
立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变 址寻址、基址加变址寻址、相对基址加变址寻址七种寻址 方式进行说明
MOV指令格式: MOV 目标操作数,源操作数 功能是将源操作数传送至目标操作数
3.1.2
与数据有关的寻址方式
EA=
3.1.2
与数据有关的寻址方式
其中,COUNT为位移量,其值是用8位或16位二进制补
码表示的有符号数。SI、DI为变址寄存器,BX、BP为基 址寄存器,使用时只能出现一个基址寄存器和一个变址 寄存器。关于约定段的规定与基址变址寻址方式相同。
( BX ) ( BP) EA 8位或16位位移量 ( SI ) ( DI )
3.1.2
与数据有关的寻址方式
DS 3000
2000 COUNT + 1000 33000 33000H
操作码
SI
00H 10H
代 码 段
AX
AH
AL
66H 88H
存器代号。
能够用来间接寻址的寄存器只能是SI、DI、BX、BP其中 之一。
3.1.2
与Baidu Nhomakorabea据有关的寻址方式
使用约定段时,以上四个寄存器可分为两种情况:
若用SI、DI、BX间接寻址,则操作数在当前数据段中, 即用数据段寄存器DS的内容左移四位,加上SI、DI或BX
中的偏移地址EA形成操作数的物理地址PA。
无 无
ES,CS,SS
偏移地址
IP SP
有效地址
BP间址方式的数据存取
字符串处理指令(源串) 字符串处理指令(目的串)
SS
DS ES
ES,CS,DS
无 无
有效地址
SI DI
3.1.2
与数据有关的寻址方式
操作码
DS
操作码
偏移地址低字节
偏移地址高字节
3000
00H
+ 1000
10H
代 码 段
31000 31000H
若用寄存器BP间接寻址,则操作数在堆栈段中,即用堆栈 段寄存器SS的内容左移四位,加上BP中的偏移地址EA形 成操作数的物理地址PA。
3.1.2
与数据有关的寻址方式
DS
SI
+
3000
2000 32000
操作码 A0H
代 码 段 数 据 段
32000H
AX
AH
AL
F0H
MOV AX,[SI]
3.1.2
数 据 段
MOV AX,COUNT[SI]
3.1.2
与数据有关的寻址方式
6.基址加变址寻址
在基址加变址寻址方式中,操作数在存储器中,而 操作数偏移地址EA是指令中指定的基址寄存器、 变址寄存器的内容相加之和。即
EA=
(BX)+(SI) (BX)+(DI) (BP)+(SI) (BP)+(DI)
3.1.2
AX AH AL
代 码 段
06H
08H
数 据 段
MOV AX,[1000H]
SS
+
8000 1000
操作码 00H 10H
AL
代码 段
81000 81000H
AX AH
86H 89H
堆栈 段
MOV AX,SS:[1000H]
3.1.2
与数据有关的寻址方式
4.寄存器间接寻址
在寄存器间接寻址方式中,操作数存放在存储器中,而 操作数的偏移地址EA在指定的寄存器中,指令中给出寄
第3章 8086/8088指令系统
3.1
8086/8088 CPU的寻址方式
汇编语言指令是将二进制代码表示的机器指令用英文 单词或符号表示出来,以增加指令的可读性,称为指令的 助记符。汇编指令与机器指令有着一一对应的关系。与机 器指令一样,汇编指令也分为操作码和操作数两部分。
8086/8088CPU的寻址方式可分为两大类:与数据有 关的寻址方式和与转移地址有关的寻址方式。 与数据有关的寻址方式主要有七种基本寻址方式:立 即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存 器相对寻址、基址加变址寻址、相对基址加变址寻址。 与转移地址有关的寻址方式将在3.2.5节介绍。
SI +
AX
2000
34000 34000H
AH AL
代 码 段
69H 8FH
数 据 段
MOV AX,[BX][DI]
3.1.2
与数据有关的寻址方式
7.相对基址加变址寻址
在相对基址加变址寻址方式中,操作数在存储器中,而 操作数偏移地址EA是指令中指定的基址寄存器、变址寄 存器的内容及指令中给出的位移量相加之和。即
与数据有关的寻址方式
注意:使用时只能出现一个基址寄存器和一个变址寄存 器。基址寄存器选用BP还是BX,决定了是从堆栈段还是 从数据段中获取操作数(约定的情况下)。
若选用BP,则约定段为堆栈段。 若选用BX,则约定段为在数据段。
3.1.2
与数据有关的寻址方式
DS 3000 BX 2000
操作码
DS BX SI COUNT
3000 2000 2000
+ 0010
34010 34010H AX
AH AL
操作码 10H 00H 69H
代 码 段
数 据 段
8FH
MOV AX,10H[BX][SI]
与数据有关的寻址方式
SS
BP
+
8000
2000
82000 82000H
操作码
代 码 段 数 据 段
AX
AH
AL
80H 90H
MOV AX,[BP]
3.1.2
与数据有关的寻址方式
5.寄存器相对寻址
在寄存器相对寻址方式中,操作数在存储器中,而 操作数偏移地址EA是指令中指定的寄存器的内容 与指令中给出的位移量相加之和。即
1.立即寻址
指令中的操作数直接在指令中给出,它作为指令的一部分,
紧跟在指令操作码后面,是8位或16位二进制补码。
例如: MOV AX,1234H
3.1.2
与数据有关的寻址方式
AX
操作码 立即数低字节 立即数高字节
操作码
代 码 段
34H 12H
代 码 段
3.1.2
与数据有关的寻址方式
2.寄存器寻址
如果操作数在CPU内部的寄存器中,则指令中必须给出寄 存器代号,这种获取操作数的方式称为寄存器寻址。操作 数可为8位或16位。对于那些需要经常存取的操作数,采 用寄存器寻址方式较为合适。
例如: MOV BX,AX
或
MOV AL,AH
3.1.2
与数据有关的寻址方式
3.直接寻址
操作数在存储器单元中,指令中直接给出16位的偏移地址 EA ,紧跟在指令操作码后面,这种获取操作数的方式称
为直接寻址。
操作数的物理地址由其所在段的段寄存器内容左移 4 位与 指令中给出的偏移地址EA相加形成。
如果操作数在除数据段外的其它段中,指令中必须指定段 超越前缀。约定段和段更换关系如表3-1。
3-1 存储器存取时的约定段和段更换
存储器存取方式
取指令 堆栈操作
通用数据存取
约定段
CS SS
DS
段更换
3.1.2
与数据有关的寻址方式
下面将以MOV(数据传送)指令的源操作数为例,分别对
立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变 址寻址、基址加变址寻址、相对基址加变址寻址七种寻址 方式进行说明
MOV指令格式: MOV 目标操作数,源操作数 功能是将源操作数传送至目标操作数
3.1.2
与数据有关的寻址方式