以下各表列出了可在表达式中使用的 SPARC、x86 和 AMD64 体系结构的平台特定寄存器名称。
寄存器 |
说明 |
---|---|
$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 的“双精度”类型(通常 $fN 寄存器视为 C 的“浮点”类型)。这些对也可称为 $d0 ... $d30。
SPARC V9 和 V8+ 硬件上另外还提供了以下这些寄存器:
$g0g1 through $g6g7 $o0o1 through $o6o7 $xfsr $tstate $gsr $f32f33 $f34f35 through $f62f63 ($d32 ... $$d62) |
有关 SPARC 寄存器和寻址的更多信息,请参见《SPARC Architecture Reference Manual》(《SPARC 体系结构参考手册》)和《SPARC Assembly Language Reference Manual》(《SPARC 汇编语言参考手册》)。
寄存器 |
说明 |
---|---|
$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 |
80386 下半部(16 位)寄存器为:
寄存器 |
说明 |
---|---|
$ax |
通用寄存器 |
$cx |
通用寄存器 |
$dx |
通用寄存器 |
$bx |
通用寄存器 |
$si |
源索引寄存器 |
$di |
目标索引寄存器 |
$ip |
指令指针,下 16 位 |
$flags |
标志,下 16 位 |
80386 的前四个 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 |
数据寄存器 |
寄存器 |
说明 |
---|---|
rax |
通用寄存器-为函数调用传递参数 |
rbx |
通用寄存器-被调用方保存 |
rcx |
通用寄存器-为函数调用传递参数 |
rdx |
通用寄存器-为函数调用传递参数 |
rbp |
通用寄存器-栈管理/帧指针 |
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 |
段寄存器 |
os |
段寄存器 |
es |
段寄存器 |
fs |
段寄存器 |
gs |
段寄存器 |
ss |
段寄存器 |
fcw |
fxsave 和 fxstor 内存映像控制字 |
fsw |
fxsave 和 fxstor 内存映像状态字 |
ftw |
fxsave 和 fxstor 内存映像标记字 |
fop |
fxsave 和 fxstor 内存映像最后一个 x87 op 代码 |
frip |
fxsave 和 fxstor 内存映像 64 位代码段偏移 |
frdp |
fxsave 和 fxstor 内存映像 64 位日期段偏移 |
mxcsr |
fxsave 和 fxstor 内存映像 128 位媒体指令控制和状态寄存器 |
mxcsr_mask |
mxcsr_mask 中的设置位指示 mxcsr 中支持的特征位 |