質問
mov
について読んだ内容から、2番目の引数を最初の引数にコピーします。では、これは何をするのでしょうか?
ジェネラコディセタグプレ
edxにあるものはすべて関数の最初のパラメーターにコピーします(ebp
からの+8のオフセットがパラメーターであるため)?
これが本当に意味するのは、最初のパラメーターをedx
レジスターに移動することだと思いますが、ウィキペディアでその逆だと読みましたか?
解決
ジェネラコディセタグプレ
は「AT&T構文」にあります。この構文では、ソースが最初に来て、宛先が次に来ます。そうです、あなたの信念は正しいです。ほとんどのドキュメントでは、逆の順序の「Intel構文」を使用しています。これは、x86アセンブリを初めて使用する人々にとってかなりの混乱の原因です。
Intel構文では、命令は次のように記述されます。 ジェネラコディセタグプレ
レジスタ名の前に%
がないこと、アドレスに括弧の代わりに角括弧が使用されていること、および命令にl
サフィックスがないことに注意してください。これらは、あなたが見ているアセンブリの形式を知るための死んだ景品です。
所属していません StackOverflow