32ビットのうちの64ビットアセンブリの指示
-
23-08-2019 - |
質問
IポートにCで書かれており、32ビットマシンの命令とアセンブリで書かれたコードのいくつかの部分を持っているプログラムを開始してい - 。64ビットマシンに - LJMP のようなP>
32ビットマシンと64 1のためにその対応のために、アセンブリ内で、説明書を持っている場所/文書はありますか?ない場合は、どこで32ビットおよび64ビットマシンのすべての命令を示した文書を見つけることができますか?
<時間>それだと、私は状況について初心者です、かなり明白です。のは、いくつかのポイントを明確にしましょう。
私はその非常に初期の頃にOSを移植しています。それは、心の中でのx86マシンで書かれていました。今、私はそれがx86_64版で実行したい。
これは、心の中でUNIXとLinuxのボックスに書かれています。私は原作者がIntelマシンでそれを書いていることはほぼ確信しています。私は、Intelにも思いますが、私はあまりにもAMDにOSを実行したいと思います。
使用されるコンパイラはgccのです。
解決
最初にこれを読む:ます。http:// x86asm .NET /記事/ x86-64で-ツアー・オブ・インテル・マニュアル/ index.htmlをするます。
そして、ここでの命令セット・リファレンスをダウンロードしてください: http://developer.intel .COM /製品/プロセッサ/マニュアル/ index.htmをでます。
他のヒント
あなたはどんな背景、あるいはCPUのさえ種類を提供していないが、私は持ち運びにくいが、多分あなたが持っ使用アセンブリ言語を再考する機会として、この64ビットポートを取るべきである提案するつもりです。それは確かにその場所を持っていますが、私はC ++でルーチンを再コーディングし、それが本当にどの遅くだかどうかを確認するために、コンパイラの最適化された出力をベンチマークをお勧めします。多くの場合、それはできません。