80*86指令系统

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意:

  • 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中;
    • 源操作数必须放在寄存器或存储单元中;

猜你喜欢

转载自blog.csdn.net/mashaokang1314/article/details/85109530
今日推荐