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 ;寄存器和内存进行双字节交换
标志寄存器状态不变。