Assembly 如何访问程序集中的数组元素?

Assembly 如何访问程序集中的数组元素?,assembly,x86,nasm,Assembly,X86,Nasm,文件说: (索引)∗ 比例)+位移⎯ 当元素大小为2时,此地址模式提供了一种索引到静态数组的有效方法, 4或8字节。位移定位阵列的开始, 索引寄存器保存所需数组元素的下标, 处理器会自动将下标转换为索引 通过应用比例因子 是否可以使用Base而不是Displacement来指定数组的开头: Base + (Index ∗ Scale) base、index、scale和displacement只是内存操作数四个部分的名称。您可以自由地将每个部件用于您喜欢的任何目的。例如,要获取数组的第n+k个

文件说:

(索引)∗ 比例)+位移⎯ 当元素大小为2时,此地址模式提供了一种索引到静态数组的有效方法, 4或8字节。位移定位阵列的开始, 索引寄存器保存所需数组元素的下标, 处理器会自动将下标转换为索引 通过应用比例因子

是否可以使用Base而不是Displacement来指定数组的开头:

Base + (Index ∗ Scale)
base、index、scale和displacement只是内存操作数四个部分的名称。您可以自由地将每个部件用于您喜欢的任何目的。例如,要获取数组的第n+k个条目,可以使用如下内容:

mov al, [array + ebx + ecx]

其中
n
存储在
ebx
中,
k
存储在
ecx中。
在这种情况下,“基”实际上被用作数组的索引,“索引”部分也是如此。

A+(B*C)不是等同于(B*C)+A吗?如何命名数字有什么关系?是的,
Base+(Index*Scale)
是合法的。你试过了吗?从这张照片上可以清楚地看出这一点。提供了基准、索引和刻度,而置换为“无”。@Cody Gray是的,我试过了,效果很好,但我只是认为可能在某些情况下,它不起作用。@riodoro1我不是问我是否可以使用
Displacement+(索引)∗ 比例)
而不是
(索引∗ 比例)+位移
,我问是否可以使用
Base+(索引∗ 比例)
而不是
(索引∗ 比例)+位移