目的操作数
5. 不能将一个段寄存器的内容直接送到另一个段寄存器中, 可借助通用寄存器或PUSH, POP指令实现这一要求
l PUSH SRC ;压栈指令: 将一个字数据压入当前栈顶, 位移量disp=-2的地址单元. 数据进栈时, 栈指针SP首先向低地址方向移动两个字节位置, 接着 数据进栈, 形成新的栈顶
l POP DST ;出栈指令: 弹出栈顶元素, 后将栈顶指针向栈底方向移动一个字
l XCHG OPR1, OPR2 ;交换指令: 将这两个操作数交换
地址传送指令:
l LEA DST, SRC ;装载有效地址指令: 该指令将源操作数的偏移量OA装载到目的操作数中
l LDS DST, SRC ;装载数据段指针指令: 将当前数据段中的一个双字数据装入到一个通用寄存器SI(双字数据的低字)和数据段寄存器DS(双字数据的高字)中
l LES DST, SRC ;装载附加段指针指令: 将附加数据段中的一个32位地址数据指针(附加段指针)送到DI(低字)和ES(高字)寄存器中
标志传送指令: (专用于标志寄存器保护和更新的指令, 共四条)
l LAHF ;标志寄存器送AH指令, 将标志寄存器的低字节送入AH中
l SAHF ;AH送标志寄存器指令, 将AH寄存器内容送标志寄存器FR的低字节
l PUSHF ;标志进栈指令, 标志寄存器进栈
l POPF ;标志出栈指令, 标志寄存器出栈
累加器专用传送指令:
l IN AL, Port ;从端口读入数据, 存放在AL中
l OUT Port, AL ;传送AL中的数据到端口
l XLAT OPR或XLAT ;用于将AL中当前的内容转换为一种代码
算术运算指令加法指令:
l ADD DST, SRC ;DST+SRC的和存放到DST中去
l ADC DST, SRC ;带进位加法指令, DST+SRC+CF
l INC DST ;增1指令
减法指令:
l SUB DST, RSC ;DST-SRC, 存放到DST中
l SBB DST, SRC ;带借位减法指令, DST-SRC-CF
l DEC DST ;减1指令
l NEG DST ;求补指令, 求补码
l CMP OPR1, OPR2 ;比较指令
乘法指令:
l MUL SRC ;无符号数乘指令, AL*SRC, 结果放入AX中
l IMUL SRC ;有符号数乘指令, AL*SRC, 结果放入AX中
除法指令:
l DIV SRC ;无符号数除指令, AX/SRC, 商放入AL中, 余数放在AH中
l IDIV SRC ;符号数除指令, AX/SRC, 上放入AL中, 余数放在AH中
l CBW, CWD ;都是符号扩展指令. 将AL的符号扩到AX中; 将AX的符号扩到DX中
逻辑运算与移位指令逻辑运算指令:
l NOT OPR ;逻辑非指令
l AND OPR ;逻辑与指令
l OR OPR ;