(2) 寄存器间接寻址 通过寄存器间接得到操作数的地址 操作数的地址在寄存器中 MOV AL,[BX] 对比:MOV AL,BX 寄存器间接寻址方式中,寄存器的内容为操作数的偏 移地址EA,操作数在存储器中。 汇编格式:[R] 功能:操作数存放在存储器,寄存器R存放操作数 的偏移地址EA
(2) 寄存器间接寻址 通过寄存器间接得到操作数的地址 操作数的地址在寄存器中 MOV AL,[BX] 对比:MOV AL, BX 寄存器间接寻址方式中,寄存器的内容为操作数的偏 移地址EA,操作数在存储器中。 汇编格式:[R] 功能:操作数存放在存储器,寄存器R存放操作数 的偏移地址EA
寄存器间接寻址示意图: 例如:MOV AX,IBX] 若(DS)=2000H, (BX),=1000H,物理地址=20000H+1000H=21000H. 指令执行后,(AX)=50A0H。指令执行情祝如下: AX AH AL 数据段 物理地址 不 AOH 21000H 50H 20001H 56H 20002H
寄存器间接寻址示意图: 例如:MOV AX,[ BX ] 若(DS)=2000H, (BX)=1000H,物理地址=20000H+1000H=21000H。 指令执行后,(AX)=50A0H。指令执行情况如下: AX AH AL 数据段 物理地址 A0H 21000H 50H 20001H 56H 20002H
偏移地址EA计算方法如下: [SI SI作间址寄存器。 EA= D川DI作间址寄存器。 BX☒BX作间址寄存器。 BP]BP作间址寄存器
偏移地址EA计算方法如下: EA= [SI] SI作间址寄存器。 [DI] DI作间址寄存器。 [BX] BX作间址寄存器。 [BP] BP作间址寄存器
【例3.4】寄存器和存储器内容分别为: (BP)=0030H, (SS)=2000H, (20030H)=1234H 执行指令:MOV AX,[BP] 执行后: (AX)=?, (BP)=?, (SS)=?, (20030H)=? 图形表示如下: BP SS 指令 +0030H 2000H 左移四位 ⊕ 20030H 1234H 返回本节
执行指令:MOV AX ,[BP] 执行后: (AX)=?, (BP)=?, (SS)=?, (20030H)=? 图形表示如下: 【例3.4】寄存器和存储器内容分别为: (BP)=0030H, (SS)=2000H, (20030H)=1234H 返回本节
(3) 寄存器相对寻址 寄存器相对寻址方式是在指冷中给定一个基址寄存 器(或变址寄存器)名和一个8位或16位的相对偏移量 两者之和作为操作数的有效地址。对BX、SI、DI这三个 间址寄存器,指示的是数据段中的数据,而用BP作间址 寄存器,则指示的是堆栈段中的数据。 汇编格式:X[R](X表示位移量,是8位或16位 进制补码表示的有符号数)。 功能:操作数存放在存储器,寄存器R的内容加位移量X 为操作数的偏移地址EA
(3) 寄存器相对寻址 寄存器相对寻址方式是在指令中给定一个基址寄存 器(或变址寄存器)名和一个8位或16位的相对偏移量, 两者之和作为操作数的有效地址。对BX、SI、DI这三个 间址寄存器,指示的是数据段中的数据,而用BP作间址 寄存器,则指示的是堆栈段中的数据。 汇编格式:X[R](X表示位移量,是8位或16位二 进制补码表示的有符号数)。 功能:操作数存放在存储器,寄存器R的内容加位移量X 为操作数的偏移地址EA