The following register information is for x86 architecture.
Register |
Description |
---|---|
$gs |
Alternate data segment register |
$fs |
Alternate data segment register |
$es |
Alternate data segment register |
$ds |
Data segment register |
$edi |
Destination index register |
$esi |
Source index register |
$ebp |
Frame pointer |
$esp |
Stack pointer |
$ebx |
General register |
$edx |
General register |
$ecx |
General register |
$eax |
General register |
$trapno |
Exception vector number |
$err |
Error code for exception |
$eip |
Instruction pointer |
$cs |
Code segment register |
$eflags |
Flags |
$uesp |
User stack pointer |
$ss |
Stack segment register |
Commonly used registers are also aliased to their machine independent names.
Register |
Description |
---|---|
$SP |
Stack pointer; equivalent of $uesp |
$pc |
Program counter; equivalent of $eip |
$fp |
Frame pointer; equivalent of $ebp |
Registers for the 80386 lower halves (16 bits) are:
Register |
Description |
---|---|
$ax |
General register |
$cx |
General register |
$dx |
General register |
$bx |
General register |
$si |
Source index register |
$di |
Destination index register |
$ip |
Instruction pointer, lower 16 bits |
$flags |
Flags, lower 16 bits |
The first four 80386 16-bit registers can be split into 8-bit parts:
Register |
Description |
---|---|
$al |
Lower (right) half of register $ax |
$ah |
Higher (left) half of register $ax |
$cl |
Lower (right) half of register $cx |
$ch |
Higher (left) half of register $cx |
$dl |
Lower (right) half of register $dx |
$dh |
Higher (left) half of register $dx |
$bl |
Lower (right) half of register $bx |
$bh |
Higher (left) half of register $bx |
Registers for the 80387 are:
Register |
Description |
---|---|
$fctrl |
Control register |
$fstat |
Status register |
$ftag |
Tag register |
$fip |
Instruction pointer offset |
$fcs |
Code segment selector |
$fopoff |
Operand pointer offset |
$fopsel |
Operand pointer selector |
$st0 through $st7 |
Data registers |