对此例,没有用前缀指明操作数在哪一段, 则默认在数据段中,设(DS)=2000H,则操作数 的物理地址为:2000+100021000 于是访问该存储器取出其内容送AX 又例:MoⅴBX,ES:[1000H 则是将BS段的1000及1001H两单元内容取出送BX 在汇编语言中,可用符号地址代替数值地址 如: MOV AX, BUFFER;其中 BUFFER为存放操作 数的符号地址 而MVAX,[ BUFFER]与上式等效 西华大学电气信息学院
7 西华大学电气信息学院 对此例,没有用前缀指明操作数在哪一段, 则默认在数据段中,设(DS)=2000H,则操作数 的物理地址为:20000+1000=21000H 于是访问该存储器取出其内容送AX 又例:MOV BX,ES:[1000H] 则是将ES段的1000H及1001H两单元内容取出送BX。 在汇编语言中,可用符号地址代替数值地址, 如:MOV AX,BUFFER;其中BUFFER为存放操作 数的符号地址. 而 MOV AX,[BUFFER]与上式等效
4寄存器间接寻址 利用这种寻址方式时,操作数在存储器中,而 操作数有效地址由BX、BP、S和D中的一个指出 若未用前缀指明,默认关系为: 对B、SⅠ、D默认在DS段中 对B默认在SS段中 例:M0VAX,[DI] 设(DS)=3000H,(DI)=2000H 该指令将32000和32001H两存储单元中的内容 送AX 西华大学电气信息学院
8 西华大学电气信息学院 4 寄存器间接寻址 寄存器间接寻址 利用这种寻址方式时,操作数在存储器中,而 操作数有效地址由BX、BP、SI和DI中的一个指出, 若未用前缀指明,默认关系为: 对BX、SI、DI默认在DS段中 对BP默认在SS段中 例:MOV AX,[DI] 设(DS)=3000H,(DI)=2000H 该指令将32000H和32001H两存储单元中的内容 送AX
5寄存器相对寻址 利用寄存器间接寻址时。允许在指令中指定 个8位或16位的位移量,这样有效地址EA的构 成为: [BXI EA= [BP] 8位位移量 ISII 16位位移量 IDII 例:M0VAX,[ COUNT+BP] 若(SS)==5000H,(BP)=3000,C0UNT=2040H 西华大学电气信息学院
9 西华大学电气信息学院 5 寄存器相对寻址 寄存器相对寻址 利用寄存器间接寻址时。允许在指令中指定 一个8位或16位的位移量,这样有效地址EA的构 成为: [BX] [BP] 8位位移量 [SI] 16位位移量 [DI] 例:MOV AX,[COUNT+BP] 若(SS)==5000H,(BP)=3000H,COUNT=2040H EA= +
则寻址示意图如图3-4所示 物理地址为: 存储器 50000+3000+2040 55040H OP OP 操作码代 40 位移量 码 20 COUNT 段 AX 50000 AH AL 55040 48 堆栈段 55 图3-4寄存器相对寻址示意图 西华大学电气信息学院
10 西华大学电气信息学院 则寻址示意图如图 则寻址示意图如图3-4所示 存储器 OP 48 55 AH AL 40 20 55040 50000 OP 物理地址为: 50000+3000+2040 =55040H 操作码 代 码 段 位移量 COUNT AX 堆 栈 段 图3-4 寄存器相对寻址示意图
6基址加变址寻址 操作数的有效地址是一个基址寄存器内容加 上一个变址寄存器内容,默认的段寄存器关系同 例:M0VAX,[BX+S 若(DS)=3200H,(BX)=0456H, (SI)=1094H, 其寻址示意图如下页图3-5所示 西华大学电气信息学院
11 西华大学电气信息学院 6 基址加变址寻址 基址加变址寻址 操作数的有效地址是一个基址寄存器内容加 上一个变址寄存器内容,默认的段寄存器关系同 上。 例:MOV AX,[BX+SI] 若(DS)=3200H,(BX)=0456H, (SI)=1094H, 其寻址示意图如下页图3-5所示