汇编语言读书笔记(2.寄存器)

汇编语言(第三版,王爽)读书笔记

8086cpu的寄存器都是16位,向下兼容8位

  • AX、BX、CX、DX寄存器可以分为AH和AL,BH和BL······

8086cpu有20位地址总线,但只能处理16位的数据,因此采用2个16位地址合成一个20位的物理地址

  • 物理地址=段地址*16(段地址左移4位)+偏移地址
  • 物理地址=基础地址+偏移地址

CS和IP

CS为代码段寄存器,IP为指令指针寄存器

汇编语言读书笔记(2.寄存器)

(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器

(2)IP=IP+所读取指令的长度,从而指向下一条指令

(3)执行指令。转到步骤(1),重复这个过程

修改CS、IP的指令

  • mov指令可以修改8086cpu中大部分寄存器的值,但是无法修改cs、ip中的值
  • 修改CS和IP寄存器中的值要使用jmp指令
  • jmp 段地址:偏移地址,例如 jmp 2AE3:3 执行后:CS=2AE3H IP=0003H cup将从2AE33H处读取指令

代码段

  • 在编程时,可根据需要,将一组内存单元定义为一个段
  • 要让cup执行代码段中的指令,必须要将CS:IP指向所定义的代码段中的第一条指令的首地址