我对寻址模式有点困惑。
array1 DWORD 200 DUP(?)
如果我有这个声明:
mov EAX, [EBX + EDI + 10]
EBX 是基数,EDI 是索引,+10 是说向 EDI 添加十个字节?那么,EDI 会返回 14 个字节长吗?并返回地址并将其放入EAX?
同样,
mov EAX, [EBX + EDI * 4]
这是说在数组中的任何索引处,返回 4 个字节长吗?因为每个索引的数组长度为 4 个字节,对吧?我想我不明白 * 4 是做什么的!
此外,
mov ECX, 100 ; loop counter
mov ESI, 0
top1:
mov [array1 + ESI * 4], ECX
inc ESI
loop top1
这会将数字 100 放入从索引零开始 4 字节大的数组中?那么,索引[0] = 100,索引[1]= 101,索引[2]= 102?
谢谢