1.传送指令
指令格式:MOV OPD,OPS
功能:将源操作数传送到目的地址中,即(OPS)→OPD。
MOV有如下五种具体格式:
MOV reg,reg
;两个寄存器之间的数据
;传送,如MOV AL, BH
MOV reg,mem
;内存单元内容送给寄存器,读内存,
;如MOV BX,[ESI]
MOV mem,reg
;寄存器的数据送给内存单元,写内存,
;如MOV [ESI],BX
MOV reg,imm
;立即数送给寄存器,
;如MOV ECX,12345678H
MOV mem,imm
;立即数送给内存单元,如
;MOV WORD PTR [SI],5678H
用于段寄存器的传送指令有三种格式
MOV seg,reg
;寄存器数据送给数据段寄存器,
;如 MOV DS,AX
MOV reg,seg
;段寄存器数据送给寄存器,
;如 MOV AX,DS
MOV mem,seg
;段寄存器数据送给内存单元,
;如 MOV [ESI],DS
2.数据交换指令:
指令格式:XCHG OPD,OPS
功能:将源操作数与目的操作数的内容互换,即(OPS)←→(OPD)。
XCHG一般有如下三种:
XCHG reg,reg
XCHG reg,mem
XCHG mem,reg
例:
XCHG AH,AL
;其操作是AH和AL两
;个寄存器的值交换
XCHG EAX,EBX
;其操作是EAX和EBX
;两个寄存器值交换。
3.查表转换指令
指令格式:XLAT或XLATB
功能:DS:[BX+AL]→AL,或DS:[EBX+AL]→AL,即 将(BX)或(EBX)为首地址、(AL)为偏移量的字节存储单元中的内容送AL。
由于AL的值不能超过256,所以表的大小也不能超过256个字节。
操作码XLAT的含义是:translate(转换)
例:
data segment
;定义数据段DS
tab db ’0123456789’
;单引号内汇编后,生成数
;0~9对应的ASCII码
data ends
;数据段结束
┇
mov bx,offset tab
;变量名tab的偏移地址传
;送给bx,指向表的首地址
mov al,4
;表tab中第5项的偏移量4→al
xlat
;(tab+4)=34h→al
┇
该例完成的功能是将al中的一位10进制数转换成对应的ASCII码(字符)。
4. 标志寄存器装入指令\标志寄存器保存指令:
指令格式:LAHF
功能:将标志寄存器低8位送AH。
指令格式:SAHF
功能:将AH的内容送入标志寄存器的低8位,而高8位保持不变。该指令执行后,OF、DF、IF、TF的值均不变,因为这4个标志位于标志寄存器的高8位。但SF、ZF、AF、PF、CF的值会发生变化,因为这5个标志位于标志寄存器的低8位。
閱讀更多 又將如何存在 的文章