私はランダムに記憶していました。以前のMIPSアセンブリコースでスタック上の変数にアクセスしようとしたときに、私は特にLAを使用しました(私はLEAのMIPSと同じです)。しかし、x86 32インテルでは、主にスタック内の変数にアクセスするためにmovを使用することを認識しました。私は、LEAがアドレスをロードし、そのアドレスをレジスタに格納し、次にdereferencedによってそのアドレスにあった値を取得するように変更することを理解する。x86 32 intel - MOV vs LEA with pointers
私はeaxが両方のシナリオで逆参照されたesp + 4と等しいことがわかります。このシナリオで、ある方法を他の方法よりも使用する利点は何ですか? 私はこのメソッドを使って関数の引数を取得するためにこのコードを書いた 私は好奇心を持っています。私のMIPSコースの私の教授はmovを使わないように教えてくれました。
mov $eax [$esp+4]
lea $eax [$esp+4]
mov $eax [$eax]
最初はMIPS 'lw $ t0、4($ sp)'に相当します。 2番目は 'addiu $ t0、$ sp、4'に続いて' lw $ t0、0($ t0) 'と同じです。 –