0

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]
4

1 に答える 1

3

あなたがしたように示されると、それらはすべて同じことをします。あなたはこれを見ました。しかし、それらがコードに適合する方法は、実際に異なるものです。

3 つすべてで、SI をインクリメントして、隣接する配列要素のすべての値を参照できます。

2 と 3 では、外側のループの最後で BX を一定量バンプして、2D 配列の次の行にジャンプできます。内側のループは、現在の行で何かを行うために、配列要素のサイズ (1、2、4 など) だけ SI を増やしています。

スペースを節約し、1D 配列を使用する必要がある場合は、1 の方が短くなります。または、レジスターが不足していて、計算中のものを保持するために BX が必要なため、BX を使用する必要がない場合もあります。

3 は、コンマの右側により複雑な部分がある場合に便利です。

于 2012-12-28T16:28:36.063 に答える