オペコードの前に置いて使う、機能を変更したり指示したりするプリフィックス。
IA-32では、次のようなプリフィックスが使われている。
i386から採用された。
リアルモードでは、従来の16ビット命令の頭に「66」を置くことで、オペランドサイズが32ビットとなる。
66 41 ‐ inc eax
41 ‐ inc ax
プロテクトモードでは、従来の16ビット命令はそのままで32ビット命令となっているため、命令の頭に「66」を置くことで16ビット命令とする。
41 ‐ inc eax
66 41 ‐ inc ax
なお、SSE命令(0F xx xx)では、66は本来の意味とは無関係に命令拡張用プリフィックスとして用いられている。
i386から採用された。
命令の頭に「67」を置くことで、オフセットアドレスサイズが32ビットとなる。
66 a1 34 12 ‐ mov eax, [1234h]
67 66 a1 78 56 34 12 ‐ mov eax, dword ptr [12345678h]
オペランドサイズプリフィックスよりも前に置く。
リアルモードでは、アドレスの指定にセグメントを用いる。プロテクトモードではセグメントが不要になったので、代わりにセレクタとなった。
80286まではCS、SS、DS、ESがあり、i386からFS、GSが追加されている。
主としてストリング命令の前に付けて用いるプリフィックスである。次の二種類がある。
なお、SSE命令(0F xx xx)は、F2/F3は本来の意味とは無関係に命令拡張用プリフィックスとして用いられている。
REXプリフィックスは、AMD64 ISA/Intel 64で採用された、命令を64ビットに拡張するプリフィックスである。
オペランドの64ビット化、追加されたレジスタの指定などに用いる。
開発コードネーム「Sandy Bridge」から搭載予定の拡張命令セット。
複雑化したMMX/SSE命令の整理と、更なる拡張を目的として新設される予定。
拡張が続き、複数のプリフィックスによって表現されていた命令を、新設するプリフィックスとその後に続くペイロードによってシンプルに表現し、命令解読の簡略化と高速実行の両立を目指すもの。