Move
mov al, moffs | mov ax, moffs | mov eax, moffs | mov rax, moffs | mov moffs, al | mov moffs, ax | mov moffs, eax | mov moffs, rax | mov r/m8, reg8 | mov r/m16, reg16 | mov r/m32, reg32 | mov r/m64, reg64 | mov reg8, r/m8 | mov reg16, r/m16 | mov reg32, r/m32 | mov reg64, r/m64 | mov reg64, imm32 | mov reg8, imm8 | mov reg16, imm16 | mov reg32, imm32 | mov reg64, imm64 | mov reg8, imm8 {abs} | mov reg16, imm16 {abs} | mov reg32, imm32 {abs} | mov reg64, imm64 {abs} | mov r/m8, imm8 | mov r/m16, imm16 | mov r/m32, imm32 | mov r/m64, imm32 | mov reg32, creg | mov creg, reg32 | mov reg64, creg | mov creg, reg64 | mov reg32, dreg | mov dreg, reg32 | mov reg64, dreg | mov dreg, reg64 | mov reg32, treg | mov treg, reg32 | mov mem16, segreg | mov reg16, segreg | mov reg32, segreg | mov reg64, segreg | mov segreg, mem16 | mov segreg, reg16 | mov segreg, reg32 | mov segreg, reg64 | mov kreg8, kreg/mem8 | mov kreg16, kreg/mem16 | mov kreg32, kreg/mem32 | mov kreg64, kreg/mem64 | mov mem8, kreg8 | mov mem16, kreg16 | mov mem32, kreg32 | mov mem64, kreg64 | mov kreg32, reg32 | mov kreg64, reg64 | mov reg32, kreg32 | mov reg64, kreg64 | mov kreg8, reg32 | mov kreg8, reg8 | mov kreg16, reg32 | mov kreg16, reg16 | mov reg32, kreg8 | mov reg32, kreg16 MOV copies the contents of its source (second) operand into its
destination (first) operand.
In all forms of the MOV instruction, the two operands are the
same size, except for moving between a segment register and an
r/m32 operand. These instructions are treated exactly like the
corresponding 16-bit equivalent (so that, for example, \c{MOV
DS,EAX} functions identically to MOV DS,AX but saves a prefix
when in 32-bit mode), except that when a segment register is moved
into a 32-bit destination, the top two bytes of the result are
undefined.
MOV may not use CS as a destination.
CR4 is only a supported register on the Pentium and above.
Test registers are supported on 386/486 processors and on some
non-Intel Pentium class processors.