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位。
閱讀更多 又將如何存在 的文章