【发布时间】:2010-05-29 11:34:25
【问题描述】:
我的数组地址(作为指向函数的指针传递)在 esi 寄存器中。如何访问数组的特定单元格?即:
my_array[a + b * c]
其中c 是常量。
【问题讨论】:
我的数组地址(作为指向函数的指针传递)在 esi 寄存器中。如何访问数组的特定单元格?即:
my_array[a + b * c]
其中c 是常量。
【问题讨论】:
【讨论】:
你也可以像下面这样直接移动它:
MOV EDX, [ESI + 4*EBX]
对于静态数组,实际上可以同时使用两个寄存器对其进行索引,但使用数组基地址作为the addressing mode 中的32 位位移。这仅适用于非位置无关代码。
MOV EDX, my_array[ECX + 4*EBX]
您可以使用同一个寄存器两次来模拟 3 (ebx + ebx*2)、5 或 9 的比例因子,而不是使用两个不同的寄存器。
【讨论】: