3

私は疑問に思っていましたが、目に見えないオペコードやフラグ、またはアセンブリ命令にそのパラメーターの処理方法を指示するものはありますか? どうやら同じ命令が異なるタイプのオペランドで動作する可能性があるため、少し混乱しています-レジスタ、メモリアドレス、オフセット、および即値がサポートされています。

アセンブリプログラムの「テキスト表現」には特別な仕様はないようですが、バイナリに違いがある可能性があります。たとえば、使用されるオペランドのタイプを CPU が認識できるように、一部のビットが切り替えられますか?

4

1 に答える 1

6

命令はハードウェアでエンコードされます。これが正確にどのように行われるかは、CPU 固有です。x86 アーキテクチャでは、オペランド アドレッシング モードを定義するビットがいくつかあります。詳細については、Intel プログラマーズ リファレンス マニュアルを参照してください。詳細が説明されています。

場合によっては、異なるオペコードで同じ効果を持つ命令が存在することがあります。そのような場合、アセンブラは 1 つを選択できます。

http://www.sandpile.org/x86/opc_rm.htm

于 2013-08-09T14:18:18.710 に答える