アドレッシングモードで少し混乱しています。
array1 DWORD 200 DUP(?)
私がこの声明を持っている場合:
mov EAX, [EBX + EDI + 10]
EBXがベース、EDIがインデックス、+ 10はEDIにさらに10バイトを追加すると言っていますか?それで、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
これは、4バイトの大きさのインデックス0から始まる配列に数値100を入れることになるでしょうか?つまり、index [0] = 100、index [1] = 101、index [2] = 102?
ありがとうございました