Slide 4.9: Instructions
Slide 4.11: Instruction operands
Home

MOV Instruction


The MOV instruction moves the integer -5000h to the EAX register. The first operand (EAX) is called the destination operand, and the second operand is called the source operand.
MOV Instruction Output
 .data
 X  SDWORD  -5000h
 .code
 mov   eax, X
 call  WriteHex




MOV — Move Byte or Word
Usage: MOV dest, src

Flag O D I S Z A P C
Result                

Copies byte or word from the source operand to the destination operand.
Clocks
Operands 286 386 486 Size Bytes
reg, reg 2 2 1 2
mem, reg 3 2 1 2-4
reg, mem 5 4 1 2-4
mem, immed 3 2 1 3-6
reg, immed 2 2 1 2-3
mem, accum 3 2 1 3
...

MOV is very flexible in its use of operands, as long as the rules are observed:
  • Both operands must be the same size.
  • Both operands can not be memory operands. For the example on the right, move the value of X to the value of Y:
  • CS, EIP, and IP registers can not be destination operands.
  • An immediate value can not be moved to a segment register.

  .data
  X   SDWORD  -5000h
  Y   SDWORD  ?
  .code
  mov   eax, X
  mov   Y, eax
  mov   eax, Y
  call  WriteHex