2010-11-30 6 views
0

これはやや素朴な質問です。私はいくつかの実行可能メモリを割り当てて、それを実行するためにいくつかのx86コードを手動で組み立てて遊んでいます。私は、アドレッシングが64ビットモードでどのように動作するのかちょっと分かりません。私のCコードに変数があり、RAXの内容をこの変数に移動したいのですが、どの形式のMOV命令を使うべきですか? (これはインラインアセンブリを使用していないので、私のためにコンパイラを実行することはできません;ちょうど& varの値を持っています)RAXからCへの変数の移動(x86-64 asm)

答えて

2

Intel構文を使用すると、mov [var],raxここで、varは基本的に64ビットの即時アドレスです。

私はこれを「インテル®64およびIA-32アーキテクチャー ソフトウェア開発者用マニュアル」のMOV moffs64*,RAXと呼びます。

+0

大変ありがとうございます。そしてそれを見て、これはRAXと少数の他のレジスタでのみ可能ですか? – foldl

+1

このフォームはRAX専用です(とにかく64ビットで)。 – NPE

+1

このフォームは任意のGPRで動作します。それはRAXに限られていません。 –

関連する問題