2

objdump を使用してバイナリを理解すると、ASM 構文に精通していないことに気付きます。次の概念はどういう意味ですか?

xor    %al,-0x1(%edx,%ecx,1)

そして、あなたがそれに取り組んでいる間、そのような概念に関するドキュメントを見つけるために何を検索すればよいでしょうか?

4

2 に答える 2

9

括弧はメモリ オフセットです。

-0x1(%edx,%ecx,1)[edx+ecx*1-1](AT&T 構文) は(Intel 構文)と等しい

AT&T アセンブリ構文のクイック ガイド(ご要望に応じて)。

于 2009-12-09T21:04:00.673 に答える
3

これは、「a」レジスタの下位バイト (%al) の内容と、32 ビット幅のレジスタ「d」(%edx)、「c」の合計であるアドレスのメモリの内容との排他的論理和です。 ' 1 (%ecx,1) と -1 を乗算します。結果は %al に書き戻されます。Cで

al ^= (char*)(edx+ecx*1 - 1);

このようなものは、sandpileまたは intel/amd のドキュメントで検索できます。

于 2009-12-09T21:03:31.127 に答える