来源于IBM PC汇编语言程序设计 沈美明 温冬婵 编著
负责把 数据,地址或立即数传送到寄存器或者存储单元中.
1. 通用数据传送指令
MOV, PUSH, POP, XCHG
MOV指令在CPU内或CPU和存储器之间传送字节或字, 目的操作数不允许使用立即数, 也不能用CS寄存器, 不允许用MOV指令在两个存储单元之间直接传送数据,也不允许在两个段寄存器之间直接传送信息.
MOV指令不影响标志位
MOV AX, DATA_SEG,
MOV DS, AX ;;段地址必须通过寄存器如AX送到DS寄存器
MOV AL, 'E'
MOV BX, OFFSET TABLE
MOV AX, Y[BP][SI]
PUSH AX
(SP)=(SP) -2
((SP)+1, (SP)) = (AX)
POP AX
(AX) = ((SP) +1, (SP))
(SP) = (SP) + 2
XCHG OPR1, OPR2
(OPR1) (OPR2) 交换数据
2. 累加器专用传送指令
IN AL, PORT
IN AX, PORT
OUT PORT, AL
OUT PORT, AX
如:
IN AX, 28H
MOV DATA_WORD, AX
MOV DX, 3FCH
IN AX, DX
XLAT换码指令
3. 地址传送指令
LEA 有效地址送寄存器
如: LEA BX, [BX + SI + 0F62H]
(BX) = 0400H, (SI) =003CH
执行完指令后
(BX) = 0400 +003C +0F62 = 139EH
LES 指针送寄存器和ES指令
LES DI, [BX]
如:
LES DI, [BX]
(DS)=B000H, (BX) =080AH, (0B080H) = 05AEH, (0B080CH) = 4000H
则执行完后
(DI)=05EH , (ES) = 4000H
LDS 指针送寄存器和DS指令
如:
LDS SI , [10H]
(DS)=C000H, (C0010H) =0180H, (C0012H) = 2000H
则执行完后
(SI) = 0180H, (DS)=2000H
4. 标志寄存器传送指令
LAHF 标志送AH
SAHF AH送标志寄存器
PUSHF 标志进栈
(SP) = (SP) - 2
((SP) + 1, ( SP)) = (PSW)
POPF 标志出栈
(PSW) = ((SP) + 1 , (SP))
(SP) = (SP) + 2