mov cr

Move Control Register

MOV CRn, r

Moves data to/from Control Registers (CR0, CR3, etc.) (Privileged).

Details

Moves a 32-bit or 64-bit value from a general-purpose register to a control register (CR0, CR2, CR3, CR4, CR8 in 64-bit mode). This privileged instruction (CPL=0 only) performs hardware state modification with potential serialization effects; certain CR writes invalidate TLBs or flush caches. No arithmetic flags are affected.

Pseudocode Operation

CRn ← r (where n ∈ {0,2,3,4,8}); TLB and cache invalidation may occur

Example

MOV CRn, rax

Encoding

Binary Layout
0F
+0
22
+1
ModRM
+2
 
Format System
Opcode 0F 22 /r
Extension System

Operands

  • dest
    CRn
  • src
    Reg