注意:
-
MOV
- 两操作数字长必须相同;
- 不允许同时为存储器操作数;
- 不允许同时为段寄存器操作数;
- 源操作数是立即数,目标操作数不能是段寄存器操作数;
- IP和CS不能作为目标操作数,FLAGS一般也不作为操作数出现;
-
PUSH
- 操作数可以是寄存器或存储器两单元,但不能是立即数;
- 操作数不能使CS(代码段寄存器)
- 必须是字操作数即16位
-
XCHG
- 两个操作数不能同时为存储器
- 段寄存器的内容不能参加交换
-
IN/OUT
- 不管是准备发送还是读入的数据都必须放在AL/AX寄存器中
- 如果是间接寻址必须通过DX来指定
-
LEA
- 目的操作数必须是一个16位的通用寄存器;
- 源操作数必须是存储器操作数;
-
ADD
- 源操作数和目的操作数不能同时为存储器;
- 不能对段寄存器进行加减乘除运算;
- 将修改全部6个标志位;
-
ADC同上
-
INC
- 对进位标志位CF没有影响;
- 目的操作数不能是立即数或段寄存器;
-
SUB
- 不允许两个存储器操作数相减;
-
SBB同上
-
DEC同INC
-
CMP
- 两操作数不能同时为存储器
- 结果不返回目的操作数
- 判断原理:若目的操作数小于源操作数则发生借位,CF=1;
-
MUL
- 隐含操作数在AL(8位)/AX(16位);
- 8位相乘结果放在AX中,16位相乘结果放在DX:AX中;
- 源操作数必须放在寄存器或存储单元中;