3つの配列インデックス方法の違いは何ですか
mov si, INDEX
mov ax, memory[si]
と
mov bx, offset memory
mov si, INDEX
mov ax, [bx+si]
と
lea bx, memory
mov si, INDEX
mov ax, [bx+si]
あなたがしたように示されると、それらはすべて同じことをします。あなたはこれを見ました。しかし、それらがコードに適合する方法は、実際に異なるものです。
3 つすべてで、SI をインクリメントして、隣接する配列要素のすべての値を参照できます。
2 と 3 では、外側のループの最後で BX を一定量バンプして、2D 配列の次の行にジャンプできます。内側のループは、現在の行で何かを行うために、配列要素のサイズ (1、2、4 など) だけ SI を増やしています。
スペースを節約し、1D 配列を使用する必要がある場合は、1 の方が短くなります。または、レジスターが不足していて、計算中のものを保持するために BX が必要なため、BX を使用する必要がない場合もあります。
3 は、コンマの右側により複雑な部分がある場合に便利です。