REXプリフィックス

読み:アーイーエックス・プリフィックス
外語:REX prefix 英語
品詞:名詞

x64(AMD64 ISA/Intel 64)で追加された、64ビット拡張に関する接頭辞。

目次

ロングモードでは、64ビット化するにあたり、16ビット時代から存在した1バイトのinc/dec命令であるinc reg16/dec reg16命令(op 0x40〜0x4f)を廃止してこの位置にプリフィックスを再定義した。結果として、4ビット分のビットフィールドが確保された。

このプリフィックスは、従来のx86命令では決定的に情報量が不足していたModR/MSIBバイトの拡張用としての機能を持っている。つまり、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と呼ばれている。

76543210
 0  1  0  0 REX.wREX.rREX.xREX.b
  • REX.w ‐ 1=オペランドサイズを64ビットにする。
  • REX.r ‐ ModR/Mのregフィールドのビット4として機能する。
  • REX.x ‐ SIBバイトのindexフィールドのビット4として機能する。
  • REX.b ‐ ModR/Mのr/mフィールドや、SIBのbaseフィールドのビット4として機能する。

ちなみにREXプリフィックスを用いると、bp/sp/si/diの下位8ビットレジスターも利用可能になり、それぞれbpl/spl/sil/dilと呼ばれる。

もっとも、sil/dilはともかく、bplやsplのメリットは誰にも分からないが、あくまでも都合上生じた産物である。

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club