MOV MOVE (BYTE OR WORD) MOV

Encoding:

Memory Operand to Accumulator:

11 01 0000 w 1 addr-Iow 1 addr-high

if w = 0 then SRC = addr, DEST = AL else SRC = addr+ 1:addr, DEST = AX

Accumulator to Memory Operand:

1101 0001 w 1 addr-Iow 1 addr-high

if w = 0 then SRC = AL, DEST = addr else SRC = AX, DEST = addr+ 1:addr

Memory or Register Operand to Segment Register:

11000111 0 Imod 0 reg r/ml

if reg *01 then SRC = EA, DEST = REG else undefined operation

Segment Register to Memory or Register Operand:

11 00011 00 Imod 0 reg r I ml

SRC = REG,DEST = EA

MOV Operands Clocks* Transfers Bytes MOV Coding Example

memory, accumulator

10(14)

1

3

MOVARRAYAL

accumulator, memory

10(14)

1

3

MOV AX, TEMP_RESULT

register, register

2.

-

2

MOVAX,eX

register, memory

8(12)+ EA

1

2-4

MOV BP, STACK_TOP

memory, register

9(13) + EA

1

2-4

MOV COU NT [01], ex

register, immediate

4

-

2-3

MOVCL,2

memory, immediate

10(14)+EA

1

3-6

MOV MASK [BX] [SI], 2CH

seg-reg, reg16

2

-

2

MOV ES, ex

seg-reg, mem16

(12) + EA

1

2-4

MOV DS, SEGMENT_BASE

reg16, seg-reg

2

-

2

MOV BP, SS

memory, seg-reg

(13) + EA

1

2-4

MOV [BX].SEG_SAVE, es

*b(w): where b denotes the number of clock cycles for byte operands and w denotes the number of clock cycles for word operands.

2-117

Page 152
Image 152
Intel 210200-002 manual MOV Move Byte or Word MOV, 11000111 0 Imod 0 reg r/ml, 11 00011 00 Imod 0 reg r I ml