| General registers: | 
|---|
| eax | function return value | 
| ebx | general use | 
| ecx | general use, counter | 
| edx | general use | 
| ebp | stack frame base pointer | 
| esp | kernel stack pointer | 
| uesp | user process stack pointer | 
| esi | general use, source index | 
| edi | general use, destination index | 
| Segment registers: | 
| cs | code | 
| ds | data | 
| es | extra data | 
| fs | extra data | 
| gs | extra data | 
| ss | stack | 
| Memory management registers: | 
| gdtr | Global Descriptor Table Register | 
| ldtr | Local Descriptor Table Register | 
| idtr | Interrupt Descriptor Table Register | 
| tr | Task register | 
| Control registers: | 
| cr0 | system control flags | 
| cr1 | unused | 
| cr2 | page fault linear address | 
| cr3 | page directory base | 
| Other registers and pseudo-registers: | 
| eip | location processor is executing code | 
| efl | flags | 
| trap | system trap number | 
| proc | processor running on (for MPX) | 
The stack segment register, memory-management and control registers,
as well as the pseudo-registers trap and proc,
are not considered lvalues.