Sun Studio 12: Debugging a Program With dbx

x86 Register Information

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