因特尔公司的CPU,其定义的指令集一般为复杂指令集CISC,全称为complex instruction set computer

Intel 8086CPU

Intel的CPU,8086CPU下所有寄存器都是16位的

1.环境
  1. vscode安装MASM/TASM插件
2.8086CPU常用指令

8086微处理器支持8中类型的指令,常见的指令如下所示:

  1. 数据传送指令
    1. MOV:传送一个字节(向下兼容)或者字从一个地方到另一个地方
    2. POP:从栈顶弹出一个字到指定的位置
    3. IN:从端口读取一个字节或者一个字
    4. OUT:向端口写入一个字节或者一个字
    5. LEA:加载操作数的地址到指定的寄存器
    6. PUSHF:将标志寄存器的值送入栈顶
    7. POPF:弹出栈顶的值送入标志寄存器
  2. 运算指令:用于指定加减乘除等操作
    1. ADD:加法指令
    2. ADC:带进位加法指令,功能为操作对象1 = 操作对象1 + 操作对象2 + CF
    3. INC:将给定的一个字节或者一个字的数据加1
    4. SUB:减法指令
    5. SBB:带借位减法指令,功能为:操作对象1 = 操作对象1 -操作对象2 - CF
    6. DEC:和INC指令功能相反
    7. CMP:比较两个字节或者两个字的数据。这个指令的功能相当于减法指令,只是不保存结果。cmp指令执行后,将对标志寄存器产生影响。
    8. MUL:乘法指令
    9. DIV:除法指令
  3. 位操作指令
    1. NOT:取反给定字节或者字的每一个位
    2. AND:按位进行与运算(两者都为1结果才为1)
    3. OR:按位进行或运算(两者其中一个为1结果就为1)
    4. XOR:按位进行异或运算(两者相同为0,不同为1)
    5. SHR:逻辑右移指令,高位补零
    6. SHL:逻辑左移指令,低位补零
  4. 中断指令
    1. int:这个指令用于中断程序的执行,转而去执行中断处理程序。格式为:int 中断类型码
    2. iret:这个指令用于从中断处理程序返回到被中断程序,继续执行被中断程序
    ;汇编语法描述指令功能如下
    pop IP
    pop CS
    popf (f表示标志寄存器)
    
    1. into:这个指令用于当OF = 1时,中断程序的执行
  5. 循环控制指令
    1. loop:这个指令用于循环执行一组指令直到CX寄存器的值为0
    2. jcxz:如果CX寄存器的值为0,则跳转到指定的地址执行。格式为jcxz 标号
    if ((cx) == 0)
    {
        jmp short 标号  // 段内短转移
    }
    
    
  6. 处理器控制指令:这些指令都会影响标志寄存器中的某些位
    1. STC:将CF位设为1
    2. CLC:将CF位设为0
    3. STD:将DF位设为1
    4. CLD:将DF位设为0
    5. STI:将IF位设为1
    6. CLI:将IF位设为0
  7. 串处理指令
    1. MOVSB:传送一个字节
    2. MOVSW:传送一个字
    3. REP:重复执行给定的指令,直到CX寄存器的值为0
  8. 转移指令
    1. 无条件转移指令:
      1. CALL:这个指令用于调用其他子程序(或者说高级语言中的函数),其进行两步操作
      1. 将当前的IP或者CS和IP压入栈中
      2. 转移
      
      1. RET:这个指令用于从子程序(被调用程序)中返回到调用程序,继续执行
      (IP) = ((ss) * 16 + (SP))
      (SP) = (SP) + 2
      
      相当于
      pop IP
      
      1. JMP: 转移到指定的地址执行
    2. 条件转移指令
      1. JZ:标志寄存器的ZF标志位为1则跳转
3.8086CPU常用寄存器
  1. AX
  2. BX
  3. CX
  4. DX
  5. SI:SI和DI是8086CPU中和BX功能相近的寄存器,但是si和di不能拆分为两个8位寄存器使用。
  6. DI
  7. DS
  8. CS
  9. IP
  10. SS
  11. ES
  12. SP
  13. BP
  14. FLAG:标志寄存器,其值又被称为程序状态字(PSW)
4.章节
  1. chapter1-chapter6
  2. chapter7-chapter9
  3. chapter10-chapter11
  4. chapter12-chapter16

参见:<<汇编语言第四版>>

Intel X86架构处理器

待续

Intel X86_64架构处理器

待续