2、寄存器间接寻址 寄存器间接寻址方式的操作数形式为:|regl 操作数的有效地址包含在基址寄存器BX,基址指针BP 或一个变址寄存器(S或D)中。寄存器间接寻址要 用方括号括起来,以便与寄存器操作数相区别。 例: MOVAX,[BX];将由BX决定的存储单元的内 容送到AX寄存器。 0000 数据段 0001 BB TAB: 0002 AA 0003 BX0001 AA BB AX AH AL 间接寻址
2、寄存器间接寻址 寄存器间接寻址方式的操作数形式为:[reg] 操作数的有效地址包含在基址寄存器BX,基址指针BP 或一个变址寄存器(SI或DI)中。寄存器间接寻址要 用方括号括起来,以便与寄存器操作数相区别。 例: MOV AX,[BX];将由BX决定的存储单元的内 容送到AX寄存器。 0000 0001 0002 0003 BB AA TAB: AX AH AL AA BB 间接寻址 数据段 BX 0001
操作数在存储器中,指令中寄存器内容作为操作数所在 单元的有效地址。 (BX) (SD 有效地址= 段寄存器为DS (DD (BP) 段寄存器为SS 物理地址计算方法: 物理地址=(DS)16+(BX)或(SI)或(DI 物理地址 (SS)*16+(BP)
操作数在存储器中,指令中寄存器内容作为操作数所在 单元的有效地址。 (BX) (SI) (DI) (BP) 有效地址 = 段寄存器为DS 段寄存器为SS 物理地址计算方法: 物理地址 = (DS)* 16 + (BX)或(SI)或(DI) 物理地址 = (SS)* 16 + (BP)
例:已知:(DS)=2100H,(DI)=2000H 指令: MOV AX,[DI;(AX)←((DI) 物理地址=(DS)*16+(DI 2100H*16+2000H =21000H+2000H 23000H 指令结果:将23000H单元内容送AL中, 将23001单元内容送AH中
例:已知:(DS)=2100H,(DI)=2000H 指令: MOV AX,[DI] ;(AX) ((DI)) 物理地址=(DS) * 16 + (DI) =2100H * 16 + 2000H =21000H + 2000H =23000H 指令结果:将23000H单元内容送AL中, 将23001H单元内容送AH中
3、寄存器相对寻址方式 操作数在存储器内,指令中寄存器内容与指令指定的位 移量(DISP)之和作为操作数所在单元的有效地址。 (BX) DISP8 有效地址=(S 段寄存器为DS (DD (BP) DISP16 段寄存器为SS 物理地址=(DS)*16+(BX)+DISP8 (SI)、(DI)、DISP16类同。 物理地址=(SS)*16+(BP)+DISP16
3、寄存器相对寻址方式 操作数在存储器内,指令中寄存器内容与指令指定的位 移量(DISP)之和作为操作数所在单元的有效地址。 (BX) DISP8 (SI) (DI) (BP) DISP16 有效地址 = 段寄存器为DS 段寄存器为SS + 物理地址 = (DS)* 16 +(BX)+DISP8 (SI)、(DI)、DISP16类同。 物理地址= (SS) *16 + (BP)+DISP16
例:如果(DS)=3000H,(SD=2000H, COUNT=3000, 则执行指令MOAX, CONUTIS,求出此种寻址方 式对应的有效地址和物理地址。 有效地址=2000H+3000H=5000H 物理地址=(DS)*16+5000H 30000H+5000H=35000H 4、基址变址寻址方式: 操作数在存储器中,指令将基址寄存器(BX或BP) 与变址寄存器(S或DI)内容之和作为操作数所在存 储单元的有效地址
例: 如果 (DS)=3000H, (SI)= 2000H, COUNT=3000H, 则执行指令 MOV AX,CONUT[SI],求出此种寻址方 式对应的有效地址和物理地址。 有效地址= 2000H + 3000H = 5000H 物理地址=(DS)*16 + 5000H =30000H + 5000H =35000H 4、基址变址寻址方式: 操作数在存储器中,指令将基址寄存器(BX或BP) 与变址寄存器(SI或DI)内容之和作为操作数所在存 储单元的有效地址