汇编(二)8086指令系统

本篇介绍8086的指令系统,包括常用指令及寻址方式。

CPU的全部指令集称为指令系统,8086指令系统有如下特性:
采用可变长指令,指令格式比较复杂
寻址方式多样灵活,处理数据能力较强,可处理字节、字、符号等
有重复指令和乘、除运算指令。扩充了条件转移、移位/循环指令
增加了软件中断和支持多处理器有关指令

学习指令的几个要点:指令的功能、支持的寻址方式、对标志位的影响等。
一、数据传送指令
1、通用数据传送指令(不影响标志位)
  MOV 传送
  PUSH 进栈
  POP 出栈
  XCHG 交换
2、累加器专用传送指令
  IN 输入
  OUT 输出
  XLAT 换码
3、有效地址送寄存器指令
  LEA 有效地址送寄存器
  LDS 指针送寄存器和DS
  LES 指针送寄存器和ES
4、标志送寄存器传送指令
  LAHF 标志送AH
  SAHF AH送标志寄存器(低字节)
  PUSHF 标志进栈
  POPF 标志出栈
二、算术指令
1、加法指令
  ADD 加法  SRC+DIST->DIST
  ADC 带进位加法
  INC 加1
2、减法指令
  SUB 减法
  SBB 带借位减法
  DEC 减1
  CMP 比较 只设置符号位,不保存结果
  NEG 求补 按位求反后+1
3、乘法指令
  MUL (AX)<-(AL)*(SRC) (DX,AX)<-(AX)*(SRC) 若乘积的高一半为0,则OF=CF=0
  IMUL 带符号乘法 若乘积高一半是低一半的符号扩展 则OF=CF=0
4、除法指令
  DIV 除法
  IDIV 带符号除法
  字节操作:(AL)<-(AX)/(SRC)的商
         (AH)<-(AX)/(SRC)的余数
  字操作:  (AX)<-(DX,AX)/(SRC)的商
          (DX)<-(DX,AX)/(SRC)的余数
  除法错中断:当被除数远大于除数,商溢出 产生除法错中断
5、类型转化指令
 CBW BYTE->WORD
 CWD WORD->DOUBLE
三、逻辑指令  
1、逻辑运算指令
  AND OR NOT XOR TEST
2、移位指令
  SHL SHR SAL SAR ROL ROR RCL RCR
四、串处理指令
五、控制转移指令
 1、无条件转移
   JMP
 2、条件转移
   JZ(JE) ZF=1转移
   JNZ(JNE) ZF=0转移
   JS SF=1转移
   JNS SF=0转移
   JO OF=1转移
   JNO OF=0转移
   JP PF=1转移
   JNP PF=0转移
   JB(JAE,JC) CF=1转移
   JNB(JNAE,JNC) CF=0转移
 3、循环指令
   LOOP OPR CF<>1 LOOP
   LOOPZ/LOOPE OPR  CF<>1 ZF=1 LOOP
   LOOPNZ/LOOPNE OPR CF<>1 ZF==0 LOOP

你可能感兴趣的:(汇编)