2012-04-28 14 views
3

アセンブリで少し錆びています。私は皆さんにいくつか質問したいと思います。nasmでのmov命令の意味

1)これらの組み立て手順はNASMで有効ですか?
2)相違点は何ですか?相違点は何ですか?

のMOV EAX、EBX

のMOV EAX、[EBX]

答えて

8

のMOV EAX、EBX

は、EAXにEBXの値を移動while

mov EAX, [EBX] 

はEAX内のアドレスの値を移動します(そうでなければ、EBXは有効なアドレスを含んでいなければなりません)。

+0

+1。投票権を獲得したことをお祝いします! (あなたの答えは良いものです) – thb

+1

そして、コメントする権利を得ることをお祝い! 1つの答えには悪くない。 – thb

3

あなたはCを読むことができますか?事前定義int a, *b;与えられ、第2の命令は、多かれ少なかれ同等

a = *b; 

にあり、一方、それでは、前の定義int a, b;与えられ、最初の命令は

a = b; 

に多かれ少なかれ等しい場合ただし、EAXとEBXはスタックに常駐する変数ではなくレジスタです。

多くのことが言えるかもしれませんが、前述のことはあなたにアイデアを与えます。

(ちなみに、過去5年間に私が使用していなかったNASMは、GNUのアセンブラと比べて逆の順序で引数を提示します)NASMは、デスティネーションレジスタを左側に、ソースレジスタをGNUは、逆を行うのに対し、GNUの比較として、右、。NASMの大会は "インテルの構文" と呼ばれている "& T構文AT。")

関連する問題