(6)基址变址寻址方式( Based Index Addressing) 特点:(基址寄存器)+(变址寄存器)=操作数的偏移地址 计算操作数物理地址的公式: 1)操作数物理地址=(DS)×16t(By+(SD (DI) 2)操作数物理地址(Ss×16+(BP)+m 例:设(DS)=2100H 存储器 (BX)=0158H 21000H 数据段 (DI)=1000H 指令为: MOV AX,IBX+D 0158H 数组起始地址 要访问的存储单元 1234 1000H 物理地址为 21000H+0158H+1000H=22158H 34 22158H 设:(2158H)=1234H 执行指令后:(AX)=1234H 用途:可用于处理数组
0158H AX 12 34 例:设 ( DS ) = 2100H ( BX ) = 0158H ( DI ) = 1000H 指令为:MOV AX, [BX+DI] 34 12 … … … 存储器 21000H 数据段 22158H 1000H 数组起始地址 (6)基址变址寻址方式 ( Based Index Addressing ) 特点:(基址寄存器) + (变址寄存器) = 操作数的偏移地址 计算操作数物理地址的公式: 1) 操作数物理地址=(DS)16+ 2) 操作数物理地址=( SS)16+ (BP) + (BX) + (SI) (DI) (SI) (DI) 21000H+0158H+1000H= 22158H 要访问的存储单元 物理地址为: 设: (22158H)=1234H 执行指令后: (AX)=1234H 用途: 可用于处理数组
几种可处理数组的寻址方式的比较 1. MOV AX, BXI 寄存器间接寻址方式 特点适用于要处理的数组需要在程序运行中动态确定, 且形式简单。 DI SI BP(加段跨越前缀DS:或ES) 2. MOV AX,ARAY[SI]变址寻址方式 特点:可读性好,指令中明确指出了要处理的数组 限制:写程序时必须清楚要处理什么数组。 DⅠBⅹBP(加段跨越前缀DS:或ES) 3. MOV AX, BXISI 基址变址寻址方式 特点:适用于要处理的数组需要在程序运行中动态确定, 并且修改BX就可以处理不同的数组。 △上述1.和2指令中的寄存器还可被哪些寄存器替换? △上述3指令中的BX寄存器是否可被其他寄存器替换? next
几种可处理数组的寻址方式 的比较: 1. MOV AX,[BX] 2. MOV AX,ARRAY [SI] 3. MOV AX,[BX][SI] 寄存器间接寻址方式 变址寻址方式 基址变址寻址方式 特点: 可读性好,指令中明确指出了要处理的数组。 限制:写程序时必须清楚要处理什么数组。 特点: 适用于要处理的数组需要在程序运行中动态确定, 并且修改BX就可以处理不同的数组。 特点: 适用于要处理的数组需要在程序运行中动态确定, 且形式简单。 上述1.和2.指令中的[寄存器]还可被哪些寄存器替换? DI SI BP (加 段跨越前缀 DS: 或 ES) 上述3.指令中的BX寄存器是否可被其他寄存器替换? DI BX BP (加 段跨越前缀 DS: 或 ES) next
(7)相对基址变址寻址方式( Relative based Index Addressing) 特点:(基址寄存器)+(变址寄存器)位移量=操作数的偏移地址 例:设(SS)=3000H 存储器 (BP)=2000H 代码段 ARRAY=0250H op (S1)=1000 MOV AX, ARRAYBPIISI op 指令 50 要访问的存储单元物理地址为: 02 30000H+2000H+0250+1000H =33250H 30000Hl 000H 堆栈段 栈顶 0250H 数组首址 1234 1000H 34 33250H 用途:便于访问堆栈中的数组
指令 2000H AX 12 34 例:设( SS ) = 3000H ( BP ) = 2000H ARRAY = 0250H ( SI ) = 1000H MOV AX, ARRAY[BP][SI] 1000H 30000H 34 12 … … … … 存储器 代码段 op 50 02 堆栈段 33250H op … … 0250H 栈顶 数组首址 (7)相对基址变址寻址方式 ( Relative Based Index Addressing ) 特点:(基址寄存器) + (变址寄存器)+位移量 = 操作数的偏移地址 30000H+2000H+0250+1000H = 33250H 要访问的存储单元物理地址为: 用途: 便于访问堆栈中的数组
第四章指令系统和寻址方式 2与程序转移地址有关的寻址方式 (1)段内寻址 段A 段B (2)段间寻址 段A 段B
第四章第一章指令系统和寻址方式 基础知识
第四章指令系统和寻址方式 (1)段内寻址CS不变 绝对地址与相对 地址有何区别 相对寻址: 定义:目的地址为m内容+指令指出的位移量 如 UMIP LABEL LABEI JMP位移量 JMP LABELI
第四章第一章指令系统和寻址方式 基础知识