一个典型的CPU是由运算器,控制器,寄存器组成。这些器件靠内部总线相连,相对于CPU内部来说是外部总线。内部总线实现CPU内部各个器件的之间的联系,外部总线实现CPU和主板其他器件的联系。在CPU中
- 运算器进行信息处理
- 寄存器进行信息存储
- 控制器控制各个器件间工作
- 内部总线连接各个器件,在他们之间进行数据的传送
1.通用寄存器
a. 8086CPU所有寄存器都是16位的,可以存放两个字节。AX,BX,CX,DX 这四个寄存器通常存放一般性的数据,称为通用寄存器。
上图是 16位寄存器的逻辑结构。
2.字在寄存器中存储
- 字节:称为byte,由8位bite组成,可以存在 8 位寄存器中。
- 字:称为word,由两个字节组成,这两位字节分别称为高位字节和低位字节
一个字可以存在16位寄存器中,这个字的高字节和低字节自然就存在这个寄存器的高8位和低8位中了。
3.几条汇编指令
a.通过汇编指令控制CPU进行工作
--------- 汇编指令举例
b. 在进行数据传送和运算时,要注意指令两个操作的对象位数应当是一致的。
4.物理地址
a.CPU访问内存单元时,需要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地址称为物理地址。
b.CPU 通过地址总线送入寄存器的,必须是一个内存单元的物理地址。
5. 64位结构的CPU
- 运算器一次最多处理64位的数据
- 寄存器的最大宽度为64位
- 寄存器和运算器之间的通路为64位
6.8086CPU 给出物理地址方法
a.采用两个 16位地址合成的方法来形成一个20位的物理地址。
b.通过地址加法器实现段地址+偏移地址得到物理地址。
上图是8086CPU 相关逻辑结构的部件
7.“段地址*16+偏移地址=物理地址”的本质含义
a. CPU在访问内存时,用一个基础地址和一个相对基础地址的偏移地址相加,给出内存单元的物理地址。
8.段的概念
a.段并不是由内存分段而来,内存并没有分段,段的划分来自于CPU。
b.CPU 可以使用不同的段地址和偏移地址形成同一个物理地址。
9.段寄存器
a.段寄存器提供段地址。比如8086CPU 有4个段寄存器:CS、DS,SS, ES。
当需要访问段地址时候,由这些寄存器提供。
10.CS和IP
a. CS和IP 是8086CPU 中最关键的两个寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP为指令指针寄存器。
上图是8086CPU读取和执行指令的相关部件
CPU 工作时把有的信息看作指令,有的信息看作数据。所有的指令和数据都是二进制信息。
思考?CPU 根据什么将内存中的信息看作指令。
11. 修改CS和IP的指令
a. 在CPU 中程序员能够通过指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容(也就是通过修改CS和IP的内容)来对CPU进行控制。
b.一种简单的方法采用jpm指令(转移指令)
12.代码段
a.(相对于 16位 PC机)我们可以将一组长度为N的代码,存在一组地址连续,起始地址为 16 的倍数的内存单元中,我们可以认为这段内存就是用来存放代码的,从而定一个了一个代码段。
上图是常用的一些debug 指令。