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
Operands
-
dest
CRn -
src
Reg