0

重複の可能性:
x86 アセンブリでの add コマンドの混乱

次の 2 つのアセンブリ ラインを理解したいと思います。

8048d74:       03 44 9e fc             add    -0x4(%esi,%ebx,4),%eax
8048d78:       39 04 9e                cmp    %eax,(%esi,%ebx,4)

(%esi,%ebx,4)(BASE, INDEX, SCALE) という形の実効アドレスだと思います

add コマンドは %eax の値を取得し、それを [esi + ebx*4 + mem_location] の値に追加して、同じ場所に保存していると思います。

次に、cmp 命令は、[esi + ebx*4 + mem_location] の値が %eax の値と等しいかどうかをテストします。

つまり、これは、加算された 2 つの値のいずれかが 0 の場合にのみ true を返しますよね?

4

1 に答える 1

1

これはAT&T形式のソースコードのようで、順序はop source, destです。つまり、最初は実効アドレスの値eaxに追加することです。次に、2行目は2番目の値をeaxと比較しています。

于 2012-04-20T22:34:13.217 に答える