3

Linuxがどのように機能するかを学んでいます。奇妙なアセンブリ言語の命令に遭遇しましたjmpi。さまざまなWebサイトで説明を見つけることができますが、奇妙なことに、インテル®64およびIA-32アーキテクチャーソフトウェア開発者マニュアルを含むアセンブリ言語の本では説明を見つけることができません。この本を検索しましたが、説明が含まれていませんjmpi。Intelのマニュアルは、Intelアセンブリ言語に関する最も権威のある本であるべきだと思います。ですから、それは非常に奇妙です。

私の質問は:この指示を文書化した本や権威あるファイルはありますか?

4

1 に答える 1

2

JMPIntelプロセッサの命令セットにはいくつかの命令があります。意図した結果は同じですが、取るオペランドのタイプによって異なります。8ビット定数、16ビット定数、32ビット定数、間接的に指定された値。また、それは相対的または絶対的なジャンプです。アーキテクチャマニュアルのp.854の表を参照してください

Opcode Instruction  Description
------+------------+----------------------------
EB cb  JMP rel8     Jump short
E9 cw  JMP rel16    Jump near, relative
E9 cd  JMP rel32    Jump near, relative
FF /4  JMP r/m16    Jump near, absolute indirect
FF /4  JMP r/m32    Jump near, absolute indirect
FF /4  JMP r/m64    Jump near, absolute indirect
EA cd  JMP ptr16:16 Jump far, absolute
...

これらは、アーキテクチャ開発のさまざまな段階でサポートされるさまざまなメモリモデルのレガシーとしてさまざまに扱われます。

多くのアセンブラは、アセンブリコードを読みやすくするために、追加のニーモニックを導入しています。したがってas86JMPI命令ではJMP、絶対または相対のいずれかである可能性がありますが、常にコードセグメント内にとどまる必要があり、セグメント内ジャンプを参照します。as86唯一の信頼できるリファレンスです。

于 2013-01-22T18:44:11.190 に答える