0

x86 AT&T 構文を学習しようとしていますが、一般的に少し混乱している場所にいます。スタックにフレームがあり、呼び出しが行われると、その関数で最初に発生するのは、ある種のフレーム更新であり、次にパラメーターを取得することを理解しています。したがって、コードのメイン領域のレジスタ eax に 5 のような値があり、Function を呼び出した場合でも、eax の値 5 にアクセスできますか? または、パラメーターとして取得するには、このようなことをしなければなりません。関数を呼び出す前に引数をスタックにプッシュしたことをどこかで見ましたが、これは本当ですか? eax に移動するには、何かを 8(ebp) に配置する必要があると思いますが、movl で何かを移動する前の eax の値は何ですか? 5ですか?私はこれが多くの質問であることを知っています. 関数を呼び出して何かを返す瞬間に混乱しました。どんな助けでも大歓迎です。これは、一部の組み立ての専門家にとって簡単なことだと確信しています。

Function:
pushl %ebp
movl %esp, %ebp

movl 8(ebp), eax
4

1 に答える 1