プラットフォーム固有のレジスタ
このセクションの表は、式で使用できる SPARC アーキテクチャー、x86 アーキテクチャー、および AMD64 アーキテクチャーのプラットフォーム固有のレジスタ名を示しています。
SPARC レジスタ情報
次の表は、SPARC アーキテクチャーのレジスタ情報を示しています。
|
|
$g0 - $g7
|
大域レジスタ
|
$o0 - $o7
|
「出力」レジスタ
|
$l0 - $l7
|
「局所」レジスタ
|
$i0 - $i7
|
「入力」レジスタ
|
$fp
|
フレームポインタ (レジスタ $i6 と等価)
|
$sp
|
スタックポインタ (レジスタ $o6 と等価)
|
$y
|
Y レジスタ
|
$psr
|
プロセッサ状態レジスタ
|
$wim
|
ウィンドウ無効マスクレジスタ
|
$tbr
|
トラップベースレジスタ
|
$pc
|
プログラムカウンタ
|
$npc
|
次のプログラムカウンタ
|
$f0 - $f31
|
FPU「f」レジスタ
|
$fsr
|
FPU ステータスレジスタ
|
$fq
|
FPU キュー
|
|
$f0f1 $f2f3 ... $f30f31 のような浮動小数点レジスタのペアは、C の「double」型とみなされます (通常、$fN レジスタは C の「float」型とみなされます)。これらのペアは、$d0 ... $d30 とも呼ばれます。
次の 4 倍精度浮動小数点レジスタは、C の long double 型を持つと見なされます。これらのレジスタは、SPARC V9 ハードウェア上で使用できます。
$q0 $q4 through $q60
次のレジスタペアは、2 つのレジスタの下位 32 ビットを組み合わせたもので、SPARC V8+ ハードウェアで使用できます。
$g0g1 through $g6g7
$o0o1 through $o6o7
次の追加レジスタは、SPARC V9 および V8+ ハードウェアで使用できます。
$xg0 through $xg7
$xo0 through $xo7
$xfsr $tstate $gsr
$f32f33 $f34f35 through $f62f63 ($d32 ... $$d62)
SPARC のレジスタとアドレッシングの詳細については、『SPARC アーキテクチャーマニュアル バージョン 8』(トッパン刊) および『SPARC Assembly Language Reference Manual』を参照してください。
x86 レジスタ情報
次の表は、x86 アーキテクチャーのレジスタ情報を示しています。
|
|
$gs
|
代替データセグメントレジスタ
|
$fs
|
代替データセグメントレジスタ
|
$es
|
代替データセグメントレジスタ
|
$ds
|
データセグメントレジスタ
|
$edi
|
デスティネーションインデックスレジスタ
|
$esi
|
ソースインデックスレジスタ
|
$ebp
|
フレームポインタ
|
$esp
|
スタックポインタ
|
$ebx
|
汎用レジスタ
|
$edx
|
汎用レジスタ
|
$ecx
|
汎用レジスタ
|
$eax
|
汎用レジスタ
|
$trapno
|
例外ベクトル番号
|
$err
|
例外を示すエラーコード
|
$eip
|
命令ポインタ
|
$cs
|
コードセグメントレジスタ
|
$eflags
|
フラグ
|
$uesp
|
ユーザースタックポインタ
|
$ss
|
スタックセグメントレジスタ
|
|
一般的に使用されるレジスタには、マシンに依存しない名前が別名として指定されます。
|
|
$sp
|
スタックポインタ ($uesp と同じ)。
|
$pc
|
プログラムカウンタ ($eip と同じ)。
|
$fp
|
フレームポインタ ($ebp と同じ)。
|
$ps
|
|
|
次の表は、80386 の下位半分 (16 ビット) のレジスタを示しています。
|
|
$ax
|
汎用レジスタ
|
$cx
|
汎用レジスタ
|
$dx
|
汎用レジスタ
|
$bx
|
汎用レジスタ
|
$si
|
ソースインデックスレジスタ
|
$di
|
デスティネーションインデックスレジスタ
|
$ip
|
命令ポインタ (下位 16 ビット)
|
$flags
|
フラグ (下位 16 ビット)
|
|
80386 の最初の 4 つの 16 ビットレジスタは、次の表に示すように、8 ビットの部分に分割できます。
|
|
$al
|
レジスタの下位 (右) 部分 $ax
|
$ah
|
レジスタの上位 (左) 部分 $ax
|
$cl
|
レジスタの下位 (右) 部分 $cx
|
$ch
|
レジスタの上位 (左) 部分 $cx
|
$dl
|
レジスタの下位 (右) 部分 $dx
|
$dh
|
レジスタの上位 (左) 部分 $dx
|
$bl
|
レジスタの下位 (右) 部分 $bx
|
$bh
|
レジスタの上位 (左) 部分 $bx
|
|
次の表は、80387 の各半分のレジスタを示しています。
|
|
$fctrl
|
コントロールレジスタ
|
$fstat
|
ステータスレジスタ
|
$ftag
|
タグレジスタ
|
$fip
|
命令ポインタオフセット
|
$fcs
|
コードセグメントセレクタ
|
$fopoff
|
オペランドポインタオフセット
|
$fopsel
|
オペランドポインタセレクタ
|
$st0 - $st7
|
データレジスタ
|
|
AMD64 レジスタ情報
次の表は、AMD64 アーキテクチャーのレジスタ情報を示しています。
|
|
rax
|
汎用レジスタ - 関数呼び出しの引数の引き渡し
|
rbp
|
汎用レジスタ - スタック管理/フレームポインタ
|
rbx
|
汎用レジスタ - 呼び出し先保存
|
rcx
|
汎用レジスタ - 関数呼び出しの引数の引き渡し
|
rdx
|
汎用レジスタ - 関数呼び出しの引数の引き渡し
|
rsi
|
汎用レジスタ - 関数呼び出しの引数の引き渡し
|
rdi
|
汎用レジスタ - 関数呼び出しの引数の引き渡し
|
rsp
|
汎用レジスタ - スタック管理/スタックポインタ
|
r8
|
汎用レジスタ - 関数呼び出しの引数の引き渡し
|
r9
|
汎用レジスタ - 関数呼び出しの引数の引き渡し
|
r10
|
汎用レジスタ - 一時レジスタ
|
r11
|
汎用レジスタ - 一時レジスタ
|
r12
|
汎用レジスタ - 呼び出し先保存
|
r13
|
汎用レジスタ - 呼び出し先保存
|
r14
|
汎用レジスタ - 呼び出し先保存
|
r15
|
汎用レジスタ - 呼び出し先保存
|
rflags
|
フラグレジスタ
|
rip
|
命令ポインタ
|
mmx0/st0
|
64 ビットメディアおよび浮動小数点レジスタ
|
mmx1/st1
|
64 ビットメディアおよび浮動小数点レジスタ
|
mmx2/st2
|
64 ビットメディアおよび浮動小数点レジスタ
|
mmx3/st3
|
64 ビットメディアおよび浮動小数点レジスタ
|
mmx4/st4
|
64 ビットメディアおよび浮動小数点レジスタ
|
mmx5/st5
|
64 ビットメディアおよび浮動小数点レジスタ
|
mmx6/st6
|
64 ビットメディアおよび浮動小数点レジスタ
|
mmx7/st7
|
64 ビットメディアおよび浮動小数点レジスタ
|
xmm0
|
128 ビットメディアレジスタ
|
xmm1
|
128 ビットメディアレジスタ
|
xmm2
|
128 ビットメディアレジスタ
|
xmm3
|
128 ビットメディアレジスタ
|
xmm4
|
128 ビットメディアレジスタ
|
xmm5
|
128 ビットメディアレジスタ
|
xmm6
|
128 ビットメディアレジスタ
|
xmm7
|
128 ビットメディアレジスタ
|
xmm8
|
128 ビットメディアレジスタ
|
xmm9
|
128 ビットメディアレジスタ
|
xmm10
|
128 ビットメディアレジスタ
|
xmm11
|
128 ビットメディアレジスタ
|
xmm12
|
128 ビットメディアレジスタ
|
xmm13
|
128 ビットメディアレジスタ
|
xmm14
|
128 ビットメディアレジスタ
|
xmm15
|
128 ビットメディアレジスタ
|
cs
|
セグメントレジスタ
|
es
|
セグメントレジスタ
|
fs
|
セグメントレジスタ
|
gs
|
セグメントレジスタ
|
os
|
セグメントレジスタ
|
ss
|
セグメントレジスタ
|
fcw
|
fxsave および fxstor メモリーイメージ制御ワード
|
fsw
|
fxsave および fxstor メモリーイメージステータスワード
|
ftw
|
fxsave および fxstor メモリーイメージタグワード
|
fop
|
fxsave および fxstor メモリーイメージ最終 x87 オペコード
|
frdp
|
fxsave および fxstor メモリーイメージ 64 ビットオフセットからデータセグメントへ
|
frip
|
fxsave および fxstor メモリーイメージ 64 ビットオフセットからコードセグメントへ
|
mxcsr
|
fxsave および fxstor メモリーイメージ 128 メディア命令制御およびステータスレジスタ
|
mxcsr_mask
|
mxcsr_mask のビットを設定し、mxcsr でサポートされる機能ビットを示す
|
ymmo
|
256 ビット Advanced Vector レジスタ
|
ymm1
|
256 ビット Advanced Vector レジスタ
|
ymm2
|
256 ビット Advanced Vector レジスタ
|
ymm3
|
256 ビット Advanced Vector レジスタ
|
ymm4
|
256 ビット Advanced Vector レジスタ
|
ymm5
|
256 ビット Advanced Vector レジスタ
|
ymm6
|
256 ビット Advanced Vector レジスタ
|
ymm7
|
256 ビット Advanced Vector レジスタ
|
ymm8
|
256 ビット Advanced Vector レジスタ
|
ymm9
|
256 ビット Advanced Vector レジスタ
|
ymm10
|
256 ビット Advanced Vector レジスタ
|
ymm11
|
256 ビット Advanced Vector レジスタ
|
ymm12
|
256 ビット Advanced Vector レジスタ
|
ymm13
|
256 ビット Advanced Vector レジスタ
|
ymm14
|
256 ビット Advanced Vector レジスタ
|
ymm15
|
256 ビット Advanced Vector レジスタ
|
|
Advanced Vector (AVX) レジスタ (ymm0 - ymm15) の各フィールドは、C int、float、または double 型を持つと見なすことができます。