x86汇编与逆向工程:软件破解与防护的艺术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.6.4 索引寻址

如果数组中的元素总是一个字节长,则基址加偏移量的寻址模式运作良好。对于元素更大的数组,偏移量必须手动计算,这很烦琐,也容易出错。

在这些情况下,索引寻址可能是更好的选择。索引寻址使用一个索引寄存器、一个比例因子和一个偏移量来指定地址。这个比例因子必须是1、2、4或8。

示例:数组

让我们定义一个整型数组,即int x[100];。这表示声明了一个包含100个整数的数组。在内存中,数组中的每个值都存储在基址的特定偏移位置。这个偏移量是由数组中的值(比如一个32位或4字节的整数)的大小决定的。

假设整型数组是在偏移量0x1000的位置创建的。如果n存储在ebx中,则下面的指令会将数组的第n个元素移动到eax中: