32位指令集
1、一般傳送指令
MOV指令:
格式:
MOV目的-->除CS、IP以外的寄存器或存儲器
源-->寄存器、存儲器、立即數
ex :
MOV ECX ,EDX ; EDX->ECX
ECX =00000034H
EDX =00000052H
指令執行結果: ECX = 00000052H, EDX不變,標志寄存器也不變。
MOVSX、MOVZX指令:
格式:
MOV目的-->寄存器或存儲器
源-->寄存器、存儲器
MOVSX:按符號擴展傳送數據指令,將源操作數的內容---傳送-->目標操作數。目的操作數左邊空缺的為用源操作數的符號進行填充。可對有符號的數進行擴展,以便運算。
MOVZX:按零擴展傳送數據指令,將源操作數的內容---傳送-->目標操作數。目的操作數左邊空缺用0填充。可對無符號的數進行擴展,以便運算。
ex:
MOV BL, 80H; 80H->BL
MOVSX AX, BL ; 80H用符號擴展為FF0H->AX
MOVZX AX, BL ; 80H用零擴展為0080H->AX
標志寄存器狀態不變。
XCHG指令 :
格式:
XCHG目的、源-->兩個操作數,其中一個操作數可為通用寄存器,另一個操作數可為通用寄存器或存儲器,兩個操作數的長度必須一致。
ex:
XCHG BH,BL ;BH和BL進行字節交換
XCHG SI, DI ;SI和DI進行字節交換
XCHG EBX,ECX ;EBX和ECX進行雙字節交換
XCHG AL,MEM_BYTE ;寄存器和內存進行字節交換
XCHG MEM_WORD, AX ;寄存器和內存進行字節交換
XCHG ESI,MEM_DWORD ;寄存器和內存進行雙字節交換
標志寄存器狀態不變。