编译原理学习笔记(第二章 寄存器)

第二章 寄存器

在CPU中:

  • 运算器进行信息处理;

  • 寄存器进行信息存储;

  • 控制器控制各种器件进行工作;

  • 内部总线来连接各种器件,在它们之间进行数据的传送。

对于汇编程序员来说,CPU中的主要器件是寄存器,寄存器是CPU中程序员可以用指令读写的部件。程序员可以通过改变各种寄存器中的内容来实现对CPU的控制。

不同的CPU的寄存器个数与结构是不相同的。8086CPU有14个寄存器,分别为:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。

2.1、通用寄存器

8086CPU的所有寄存器都是16位的,可以存放两个字节的数据。

AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。

AX、BX、CX、DX这4个寄存器都可以分为两个可独立使用的8位寄存器来使用。

2.2、字在寄存器中的存储

出于对兼容性的考虑,8086CPU可以一次性处理以下两种储存的数据:

  • 字节:记为byte,一个字节由8个bit组成,可以存在8位寄存器中
  • 字:记为word,一个字由两个字节组成,这两个字节分别称为这个字的高位字节和低位字节

一个字可以存在一个16位寄存器中,这个字的高位字节和低位字节存在寄存器的高8位寄存器和低8位寄存器中。

用十六进制可以直观地看出这个数据是由哪两个8位数据构成的。

2.3、常用汇编指令样例

汇编指令 控制CPU完成的操作 用高级语言的语法描述
mov ax,18 将18送入寄存器AX AX = 18
mov ah,18 将18送入寄存器AH AH = 18
add ax,8 将寄存器AX中的数值加上8 AX = AX + 18
mov ax,bx 将寄存器BX中的数值送入寄存器AX AX = BX
add ax,bx 将AX和BX中的数值相加,结果存在AX中 AX = AX + BX

2.4、物理地址

CPU通过地址总线送入储存器的是一个内存单元的物理地址。

每一个内存单元在所有内存单元构成的内存空间有唯一的物理地址。

2.5、16位结构的CPU

16位结构描述了一个CPU具有下面几方面的结构特性:

  • 运算器一次最多可以处理16位的数据
  • 寄存器的最大宽度为十六位
  • 寄存器和运算器之间的通路为16位

2.6 8086CPU给出物理地址的方法

8086CPU有20位地址总线,可以传送20位地址,达到1MB寻址能力。

但是8086CPU是16位结构,表现出的寻址能力只有64KB。

8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。

当8086CPU要读写内存时,先把两个16位的地址(分别叫做段地址和偏移地址)通过内部总线传入一个叫地址加法器的部件中,地址加法器采用 “ 物理地址 = 段地址 x 16 + 偏移地址 ” 的方法合成一个20位的物理地址,再用输入输出控制电路将物理地址送上地址总线。

2.7、物理地址计算式的本质含义

更一般地说,8086CPU的这种寻址功能是 “ 基础地址 + 偏移地址 = 物理地址 ” 寻址模式。

2.8、段的概念

其实内存并没有分段,段的划分来自CPU,由于CPU使用“段地址和偏移地址”的方式来给出物理地址,使得我们可以用分段的方式来管理内存。CPU的位数决定了一个内存段的长度

2.9、段寄存器

段地址在8086CPU的段寄存器中存放。8086CPU有4个段寄存器:CS、DS、SS、ES。

2.10 CS和IP

CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。

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

在8086PC机中,任意时刻,8086CPU将从内存 M(CS中的内容) x 16 + N(IP中的内容)单元开始,读取一条指令并执行。

2.11、修改CS、IP的指令

在CPU中,程序员能够用指令读写的部件只有寄存器,可以通过改变CS、IP中的内容实现对CPU的控制。

8086CPU大部分寄存器的值都可以用mov指令(又被称为传送指令)来改变,但是8086CPU没有提供mov修改CS、IP的功能,所以我们需要用另一个指令:jmp指令,来修改CS、IP寄存器的值。

“jmp 段地址:偏移地址” 指令的功能为:用指令中给出的段地址修改CS,偏移地址修改IP

2.12、代码段

对于8086CPU,在编程时,可以根据需要将一组内存单元定义为一个段

可以将长度为N(N<=64KB)的一组代码存在一组地址连续、起始地址为16的倍数的内存单元中,从而定义了一个代码段

要使得CPU将我们定义的代码段中的指令当作指令来运行,必须要将 CS: IP 指向所定义的代码段中的第一条指令的首地址。

你可能感兴趣的:(学习笔记)