ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
x64(AMD64 ISA/Intel 64)で追加された、64ビット拡張に関する接頭辞。
ロングモードでは、64ビット化するにあたり、16ビット時代から存在した1バイトのinc/dec命令であるinc reg16/dec reg16命令(op 0x40〜0x4f)を廃止してこの位置にプリフィックスを再定義した。結果として、4ビット分のビットフィールドが確保された。
このプリフィックスは、従来のx86命令では決定的に情報量が不足していたModR/MとSIBバイトの拡張用としての機能を持っている。つまり、CPUの64ビット化にあたってオペランドのサイズを64ビットにするというだけではなく、オペランドの数を倍にして、従来はなかったr8〜r15を使用することを可能とする。
つまり、ロングモードで32ビット命令を使う場合でも、r8〜r15を使う場合はREXプリフィックスを使用する。
他のプリフィックス、例えば66Hや67Hなどのプリフィックスは、REXプリフィックスの前に置く。なお 0F プリフィックス以降は後にする。
例
66 REX.W 0F 3A 16 /r ib ‐ PEXTRQ r/m64, xmm2, imm8
4ビットの領域のうち、ビット3から0の順にREX.w、REX.r、REX.x、REX.bと呼ばれている。
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|
0 | 1 | 0 | 0 | REX.w | REX.r | REX.x | REX.b |
ちなみにREXプリフィックスを用いると、bp/sp/si/diの下位8ビットレジスターも利用可能になり、それぞれbpl/spl/sil/dilと呼ばれる。
もっとも、sil/dilはともかく、bplやsplのメリットは誰にも分からないが、あくまでも都合上生じた産物である。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます