(1)通用传送指令MOV
MOV DST,SRC;(SRC)→DST
mov al,4
mov si,200h
mov byte ptr [si],0ah
mov word ptr [si+2],0bh
mov al,’1’
mov ax,bx
mov ah,al
mov dx,[bp]
mov es,[si]
mov ds:[bp],dl
mov ds,ax
注意:
①两个操作数的类型要一致
②两个操作数不能都是mem
③段寄存器操作的限制
不允许立即数传送给段寄存器
不允许直接改变CS值
不允许段寄存器之间的直接数据传送
(2)堆栈操作指令PUSH/POP
PUSH SRC
;SP←(SP)-2
;(SP)←(SRC)
POP DST
;DST←((SP))
;SP←(SP)+2
(3)交换指令XCHG
把两个位置的数据进行互换
XCHG DST,SRC;
(DST)→(SRC)
(4)输入/输出指令IN/OUT
输入输出寻址方式
直接寻址:只用于寻址前256个(00H~FFH) 端口,操作数port表示端口号
间接寻址:可用于寻址全部64K个端口,DX寄存器的值为端口号
对大于FFH的端口只能采用间接寻址方式
输入指令IN
将外设数据传送给CPU内的AL/AX
IN AL,port
IN AX,port
;AL或AX←(port)
IN AL,DX
IN AX,DX
;AL或AX←((DX))(DX间接寻址)
输出指令OUT
将CPU内的AL/AX数据传送给外设
OUT port,AL
OUT port,AX
;port←(AL)/(AX)
OUT DX,AL
OUT DX,AL
;(DX)←(AL)/(AX) (DX间接寻址)
(5)换码指令XLAT
将(BX)为首址(AL)为位移量的字节存储单元中的数据送AL寄存器。
(6)地址传送指令LEA/ LDS/ LES /LSS
取有效地址指令LEA
将存储器操作数的有效地址传送至指定的寄存器中
取段地址和偏移地址指令LDS/LES/LSS
将主存中指定字单元数据送入指定寄存器,下一字单元数据送段寄存器。
LDS Reg,mem
;Reg←(mem),
;DS←(mem+2)
(7)标志寄存器传送指令
传送标志寄存器FLAGS的内容,方便进行对各个标志位的直接操作
低8位传送:LAHF和SAHF
16位传送:PUSHF和POPF