Skip to content

寄存器

历史

8086 --- 80286 --- 80386 --- Pentium

MS-DOS在实模式下运行(8086) , windows作为一个多任务系统,运行在80386的保护模式下,80386提供了虚拟8086模式,用于运行兼容8086处理器的程序。80286相比于80386微处理器,只提供了实模式和保护模式,没有虚拟8086模式。

8086架构

  • 8086处理器是16位结构的CPU,一次可以存储一个字。一个字 = 2个字节 = 16 bit。AX(accumulator)BX(base)CX(count),DX(data)

  • CS:IP(Code segment:Instruction pointer)寄存器的工作原理:段地址x16+偏移地址;一条指令取址执行的大致流程

  • 内存中的的存储:小端

  • DS(data segment)寄存器和[address]

    • ds通常用于存放即将访问的数据的段地址;不允许通过立即数直接写入,不允许各种运算指令操作
  • SS:SP(Stack segment:Stack pointer)寄存器用于维护一个栈指针。

基础指令

  • 如何改变CS/IP寄存器的内容:
    • jmp 寄存器修改ip;
    • jmp 段地址:偏移地址同时修改CS,IP。
  • 加减add,sub;乘除mul,div
    • mul:它是单操作符。它将两个数相乘,均为8位,或者均为16位:
      • 均为8位,则另一个操作数默认在AL中;结果默认放在AX中;
      • 均为16位,则另一个默认在AX中,计算结果放在两个寄存器中,高8位在DX中,低8位在AX中。
  • 栈操作push,pop
  • [address]代表一个偏移地址,可以是一个立即数或者寄存器。
  • loop+cx寄存器实现循环

MS-DOS环境的使用

  • -r查看和修改寄存器
  • -d查看内存
  • -e修改内存
  • -u查看内存,但是自动转换汇编
  • -a修改内存,但是输入的是汇编
  • -t执行一条cs:ip的指令