Data Transfer Instructions
MOV dest,src transfer (copy) data to/from register, to/from memory
dest←src
XCHG dest,src exchange values of two registers or register and r/m
dest src
IN port8 (or DX) input to AL(or AX) from I/O port
byte: AL←port
word: AL←[port]; AH←[port+1]
OUT port8 (or DX) output from AL(or AX) to I/O port
byte: [port]←AL
word: [port]←AL [port+1]←AH
XLAT translate AL into a value in a translation table at BX
AL←ES:[BX+(AL)]
LEA reg16,addr load address into a register
reg16←(result of EA calculation of addr offset)
LDS reg16,mem load DS and reg16 from memory variable
reg16←[mem16]; DS←[mem16+2]
LES reg16,mem load ES and reg16 from memory variable
reg16←[mem16]; ES←[mem16+2]
LAHF load/convert flags into AH
SAHF store/convert AH into flags
PUSH src transfer reg16 or r/m16 to stack
SP-=2; SS:[SP]←src
PUSH immed transfer immed16 (or sign-extended immed8) to stack.
SP-=2; SS:[SP]←immed16 286+
PUSHA PUSH ALL: copy general registers to stack 286+
SP-=10H; AX,BX,CX,DX,SI,DI,BP,SP saved on stack
PUSHF PUSH Flags: transfer flags register to stack
SP-=2; SS:[SP]←flags
POP dest transfer from stack to dest (reg16, r/m16, or segreg)
dest←SS:[SP]; SP+=2
POPA POP All: copy general registers from stack 286+
SP+=10H; AX,BX,CX,DX,SI,DI,BP restored from stack
POPF POP Flags: transfer from stack to flags register
flags←SS:[SP]; SP+=2
────────────────────────────────────────────────────────────────────────────
String Operation Instructions Instruction Set