什么是有效地址?

时间:2016-04-18 21:20:12

标签: x86 x86-64 intel

在读取Intel 64 and IA-32 Architectures Software Developer’s Manual时,LEA指令的操作部分(加载有效地址)使用名为EffectiveAddress(SRC)的计算,该计算未在其他任何地方定义。

有效地址的定义是什么?EffectiveAddress(SRC)做了什么?

1 个答案:

答案 0 :(得分:6)

同一文件的第3.7.5节(指定抵消)说明:

  

存储器地址的偏移部分可以直接指定为a   静态值(称为位移)或通过地址计算   由以下一个或多个组成部分组成:

     
      
  • 位移 - 8位,16位或32位值。
  •   
  • Base - 通用寄存器中的值。
  •   
  • 索引 - 通用寄存器中的值。
  •   
  • 比例因子 - 值为2,4或8,乘以指数值。
  •   
     

添加这些组件所产生的偏移称为   有效地址。这些组件中的每一个都可以具有正面   或负(2s补码)值,但缩放除外   因素。

EffectiveAddress 使用以下方式计算有效地址

Base + (Index*Scale) + Displacement