質問と回答が数年前のものであることがわかりますが、リアル モード内に 16 ビット レジスタしか存在しないという誤った記述があります。
リアル モード内では、レジスタは 16 ビットだけではなく、8 ビット レジスタもあります。これらの 8 ビット レジスタはすべて 16 ビット レジスタの一部であり、16 ビット レジスタの下位部分と上位部分に分割されます。
そして、80386+ でリアル モードを開始すると、32 ビット レジスタになり、さらに 2 つの新しい命令プレフィックスが追加されます。コードセグメント。
これらの命令プレフィックスを組み合わせて使用すると、1 つの命令のオペランド サイズとアドレス サイズを逆にすることができます。リアル モードでは、デフォルトのオペランド サイズとアドレス サイズは 16 ビットです。これらの両方の命令プレフィックスを使用して、32 ビット オペランド/レジスタの例を使用して、1 つの 32 ビット レジスタで 32 ビット値を計算したり、32 ビット値をメモリ ロケーションとの間で移動したりできます。また、32 ビット レジスタすべてをアドレス レジスタとして (ベース + インデックス * スケール + ディスプレースメントと組み合わせて) 使用できますが、実効アドレスの合計が 64 kb セグメント サイズの制限を超える必要はありません。 .
(OSDEV-Wiki ページの「オペランド サイズとアドレス サイズ オーバーライド プレフィックス」の表で、「0x66 オペランド プレフィックス」と「0x67 アドレス プレフィックス」は N/A (実行不可) であることがわかります。実モードと仮想 8086 モードhttp://wiki.osdev.org/X86-64_Instruction_Encoding
しかし、これは完全に間違っています。なぜなら、Intel のマニュアルには次の記述があるからです。保護モードおよび仮想 8086 モードでも同様です。)
Pentium MMX から始めて、8 つの 64 ビット MMX レジスタになります。
Pentium 3 から始めて、8 つの 128 ビット XMM レジスターになりました。
..
私が間違っていなければ、x64 の 256 ビットの YMM-Register と 512 ビットの ZMM-Register と 64 ビットの汎用レジスタは、リアル モードでは使用できません。
ダーク