汇编——与转移地址有关的寻址方式

段内:转移指令与转向的目标指令在同一代码段中,(CS)不变。

段间:转移指令与转向的目标指令在两个代码段中, (CS)变化。

以 转移(条件转移/无条件转移)指令为例

1.段内直接寻址

eg: JMP AGAIN 用AGAIN的地址代替当前地址。物理地址= 16d*(CS) +(IP)新

例:JMP NEAR PTR NEXT近转移-32768~ +32767

JMP SHORT NEXT短转移-128~ +127

2.段内间接寻址  转向的有效地址EA是一个寄存器或存储单元的内容。

根本:段内跳转+间接寻址

eg:   (BX)=1256H    (SI)=528EH  TABLE=20A2H   (DS)=2000H   (232F8H)=3280H    (264E4H)=2450H

JMP     BX;                                        (IP)=1256H

JMP     TABLE[BX]

JMP      WORD PTR     TABLE[BX];   (IP)=3280H

JMP      [BX][SI]

JMP     WORD PTR[BX][SI];                (IP)=2450H

3.段间直接寻址   用指令中提供的转向段地址和偏移地址取代CS和IP。

so,需要一个新的段地址+偏移地址转向。

4.段间间接寻址  用存储器中的两个相继字的内容取代CS和IP。

(存储单元的地址可用除立即数和寄存器以外的任何一种数据寻址方式得到)

你可能感兴趣的:(汇编——与转移地址有关的寻址方式)