
MOV MOVE (BYTE OR WORD) MOV
Encoding:
Memory Operand to Accumulator:
11 01 0000 w 1
if w = 0 then SRC = addr, DEST = AL else SRC = addr+ 1:addr, DEST = AX
Accumulator to Memory Operand:
1101 0001 w 1
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 | MOV BP, STACK_TOP | |
memory, register | 9(13) + EA | 1 | MOV COU NT [01], ex | |
register, immediate | 4 | - | MOVCL,2 | |
memory, immediate | 10(14)+EA | 1 | MOV MASK [BX] [SI], 2CH | |
2 | - | 2 | MOV ES, ex | |
(12) + EA | 1 | MOV DS, SEGMENT_BASE | ||
reg16, | 2 | - | 2 | MOV BP, SS |
memory, | (13) + EA | 1 | 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.