レジスター (x86)
読み:レジスター
外語:register
x86
シリーズにある、最高速の
記憶装置
のこと。
目次
概要
特徴
MMX
一覧
汎用レジスター
数値演算用
その他専用レジスター
概要
x86シリーズは、16ビット、32ビット、64ビットと拡張が続けられている。
レジスターについても、アーキテクチャーの拡張に応じてビット長が長く拡張されたり、数が増やされたりしている。但し、互換性などから従来のアーキテクチャーも残されており、ここに独特の特徴がある。
また、従来の
FPU
はレジスターというよりは8個までの値を格納できるスタックであるが、MMXではそれぞれをレジスターとして直接指定して扱えるようになっているなどの仕様拡張もある。
特徴
MMX
MMX用レジスターは、従来のFPU用レジスターと同じ領域にマッピングされているため、MMX命令と
x87 FPU
命令は排他的に使用する。
但し、MMXのmm0〜mm7は内部物理レジスターへ直接マッピングされ直接参照できるのに対し、従来のFPUはあくまでスタックであるのでST(0)〜ST(7)はポインターによって間接的に参照される。
一覧
64ビット、32ビット、16ビット全てを含めたレジスター構成は、次の通りである。
汎用レジスター
64ビットモードでは、汎用レジスターは64ビットが16本ある。なお、32ビットモードは32ビットが8本、16ビットモードは16ビットが8本であった。
64ビットの各レジスター(Rxx)の下位32ビットが32ビットの各レジスター(Exx)に対応し、32ビットの各レジスターの下位16ビットが16ビットの各レジスター(xx)に対応する。
RAX (EAX、AX、AH、AL)
RBX (EBX、BX、BH、BL)
RCX (ECX、CX、CH、CL)
RDX (EDX、DX、DH、DL)
RSI (ESI、SI、SIL)
RDI (EDI、DI、DIL)
RSP (ESP、SP、SPL)
RBP (EBP、BP、BPL)
R8 (R8D、R8W、R8B) (
x64
以降)
R9 (R9D、R9W、R9B) (x64以降)
R10 (R10D、R10W、R10B) (x64以降)
R11 (R11D、R11W、R11B) (x64以降)
R12 (R12D、R12W、R12B) (x64以降)
R13 (R13D、R13W、R13B) (x64以降)
R14 (R14D、R14W、R14B) (x64以降)
R15 (R15D、R15W、R15B) (x64以降)
64ビットで追加された8本のレジスター(R8〜15)は、
機械語
の水準では
REXプリフィックス
によって指定される。
REXプリフィックスを使用すれば、RSI、RDI、RSP、RBPの各レジスターの下位8ビットをSIL、DIL、SPL、BPLとして扱うことが可能。一方、64ビットで追加された8本のレジスターのビット8〜15をバイト単位で扱う(AXレジスターに対するAHレジスターのような)ことはできない。
数値演算用
FPUレジスターは80ビット長だが、同じ内部物理レジスターにマッピングされているMMXレジスターは64ビット長である。
SSE用の新規に作られた
XMMレジスター
は128ビットで、
VEXプリフィックス
使用時には256ビットの
YMMレジスター
に拡張できる。
MMXレジスターとXMM/YMMレジスターは全く異なるものだが、XMM‐MMX間での転送命令などが用意されている。
MMXレジスター(64ビット長8本)
mm0
mm1
mm2
mm3
mm4
mm5
mm6
mm7
XMM/YMMレジスター(XMM=128ビット長16本、VEX以降はYMM=256ビット長)
xmm0/ymm0
xmm1/ymm1
xmm2/ymm2
xmm3/ymm3
xmm4/ymm4
xmm5/ymm5
xmm6/ymm6
xmm7/ymm7
xmm8/ymm8 (x64以降)
xmm9/ymm9 (x64以降)
xmm10/ymm10 (x64以降)
xmm11/ymm11 (x64以降)
xmm12/ymm12 (x64以降)
xmm13/ymm13 (x64以降)
xmm14/ymm14 (x64以降)
xmm15/ymm15 (x64以降)
その他専用レジスター
RFLAGS、
EFLAGS
、FLAGS (
フラグレジスター
)
RIP、EIP (
プログラムカウンター
)
デバッグレジスター
DR0
DR1
DR2
DR3
DR4
DR5
DR6
DR7
コントロールレジスター
CR0
CR1
CR2
CR3
CR4
CR5
CR6
CR7
システムテーブルポインタレジスター
タスクレジスター
GDTR
IDTR
TR0
TR1
TR2
TR3
TR4
TR5
TR6
TR7
LDTR
セグメントレジスター
CS
SS
DS
ES
FS
GS
再検索