,第3章寻址方式和指令系统 例3-6设(DS)=2000H,(SI)=1200H,(21200H=56H,执 行指令 MOV AH,[SI的结果是:(AH)=56H,执行过程见图3-7。 DSI 2000HK ×10H SI 1200H 没段 低 56H21200 「56H AH 图3-7例3-6寄存器间接寻址执行情况
第3章 寻址方式和指令系统 例3-6 设(DS)=2000H,(SI)=1200H,(21200H)=56H,执 行指令MOV AH,[SI]的结果是:(AH)=56H ,执行过程见图3-7。 图3-7 例3-6寄存器间接寻址执行情况 2000H 1200H + DS S I ×10H 56H … … 低 高 DS段 56H AH 21200H
,第3章寻址方式和指令系统 例3-7设①DS)=2000H,①DI)=2100H,(22100H=68H, (22101H)=41H,执行指令 MOV BX,[DI]的结果是 (BX)=4168H
第3章 寻址方式和指令系统 例3-7 设(DS)=2000H,(DI)=2100H,(22100H)=68H, (22101H)=41H,执行指令MOV BX,[DI]的结果是: (BX)=4168H
,第3章寻址方式和指令系统 5.基址寻址 由指定的基址寄存器内容,加上指令中给定的偏移量(要由 个段寄存器作为地址基准)作为操作数的地址的寻址方式称为 基址寻址。 在基址寻址方式下,EA=[基址寄存器]+位移量,位移量是 常数且紧跟在操作码之后,与操作码一起存放在代码段中。基 址寄存器的使用规定对16位寻址和32位寻址是不一样的
第3章 寻址方式和指令系统 5.基址寻址 由指定的基址寄存器内容,加上指令中给定的偏移量(要由 一个段寄存器作为地址基准)作为操作数的地址的寻址方式称为 基址寻址。 在基址寻址方式下,EA=[基址寄存器]+位移量,位移量是 常数且紧跟在操作码之后,与操作码一起存放在代码段中。基 址寄存器的使用规定对16位寻址和32位寻址是不一样的
,第3章寻址方式和指令系统 (1)16位寻址情况下,SX和BP作为基址寄存器。在缺省段超 越前缀时,BX以DS作为默认段寄存器,BP以SS作为默认段寄存器 位移量可为8位或16位 (2)32位寻址情况下,8个32位通用寄存器均可作基址寄存器, 其中ESP、EBP以SS为默认段寄存器,其余6个通用寄存器均以DS为 默认段寄存器。位移量为8位或32位 基址寻址适于对一维数组的数组元素进行检索操作。位移量表 示数组起始地址偏移量,基址表示的是可以变化的数组元素下标。 EA的书写形式可以是“[基址寄存器]+位移量”,也可以是 “位移量[基址寄存器]。基址寻址的执行过程示例如图3-8所示 (以例38中的 MOV DX,[EAX+1500]为例,默认段基址是DS)
第3章 寻址方式和指令系统 (1) 16位寻址情况下,SX和BP作为基址寄存器。在缺省段超 越前缀时,BX以DS作为默认段寄存器,BP以SS作为默认段寄存器。 位移量可为8位或16位。 (2) 32位寻址情况下,8个32位通用寄存器均可作基址寄存器, 其中ESP、EBP以SS为默认段寄存器,其余6个通用寄存器均以DS为 默认段寄存器。位移量为8位或32位。 基址寻址适于对一维数组的数组元素进行检索操作。位移量表 示数组起始地址偏移量,基址表示的是可以变化的数组元素下标。 EA的书写形式可以是“[基址寄存器]+位移量”,也可以是 “位移量[基址寄存器]”。基址寻址的执行过程示例如图3-8所示 (以例3-8中的MOV DX,[EAX+1500]为例,默认段基址是DS)
,第3章寻址方式和指令系统 CS 低 Ds基址40000000H 操作码 EAx25000000H 00001500H 15H 65001500H 高 D没 低 Dⅹ 匚DHDL ⅹxH65001500 yyH65001501 高 图3-8基址寻址的执行过程示意图
第3章 寻址方式和指令系统 图3-8 基址寻址的执行过程示意图 40000000H 25000000H + 65001500H 操作码 … … 低 高 CS段 xxH yyH … … DS段 低 DH DL 65001500H 高 DX 00001500H DS段基址 EAX 00H 15H 65001501H