The five control registers determine various characteristics of the currently executing program. These registers are:
List of Control Registers
The five registers are:
CR0: Flags controlling the operating mode and status of the processor.
CR2: The page fault linear address (the address that last caused a page fault).
CR3: The physical address of the base of the paging structure.
CR4: Flags to enable various processor extensions.
CR8: Access to the "Task Priority Register" (
Currently, only five registers are defined:
CR8. Despite this, the instruction encodings allow the possibility of registers all the way through
CR15; Accessing any of the undefined registers will result in a
#UD exception being thrown.
Accessing the Registers
Control registers are accessed using two special forms of the
MOV instruction. These instructions are detailed on their specific page: