编程语言
首页 > 编程语言> > 8086汇编 CPU 寄存结构

8086汇编 CPU 寄存结构

作者:互联网

8086汇编 CPU 结构

8086 CPU 组成

一、结构说明

8086CPU主要由三块部分组成、通过内部总线实现CPU内各个器件之间的联系:

  1. 运算器进行信息处理:处理指令运算使用。
  2. 寄存器进行信息存储:存储地址数据使用。
  3. 控制器协调各种器件进行工作:发送读写执行使用。

二、寄存器

寄存器是CPU内部的信息存储单元 CPU通过寄存器存放、内存地址、数据、指令,通过总线访问主板上任意连接的设备。

8086CPU有14个寄存器:

  1. 通用寄存器:AX、BX、CX、DX
  2. 变址寄存器:SI、DI
  3. 指针寄存器:SP、BP
  4. 指令指针寄存器: IP
  5. 段寄存器:CS、SS、DS、ES
  6. 标志寄存器:PSW

8086 CPU 存储方式

一、CPU 存储

CPU 存储主要通过寄存器,在8086CPU中寄存器最多可以存储16位数据,两个字节。

CPU寄存器存储单位:

  字:CPU寄存器使用位以字为单位、8086CPU的字长(word size)为16bit=2字节

 字节:每个字节等于8bit

高位低位存储:

一个字(word)可以存在一个16位寄存器中

二、CPU 兼容

  上面说到8086CPU寄存器存储单元最多存储16位数据存储,那么上一代最多存储8位数据、那么如今的16位CPU是如何兼容8位CPU的,下面会有说明。

  通用寄存器均可以分为两个独立的8位寄存器使用、两个8位寄存器作为一个16位寄存器使用。

通用寄存器

8086CPU 物理寻址

一、CPU 寻址

问题说明

  上篇博客我们知道了 8086CPU是20位地址总线,可传送20位地址,寻址能力为1M。但是8086CPU是16位结构的CPU。运算器一次最多可以处理16位的数据,寄存器的最大宽度为16位,在8086内部处理的、传输、暂存的地址也是16位,寻址能力也只有64KB,那么8086如何处理在寻址空间缺乏的问题,下面会说明。

解决方法

CPU在访问内存时,用一个基础地址(段地址×16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。

注:段地址x16就相当于段地址向左偏移4个二进制位

注:相当于16位段地址向左移动4个二进制位、加上偏移地址、值为20位内存地址。

注:通过段地址向左偏移4位后 + 偏移地址 = 物理地址、只要结果成立,可任意调整段地址与偏移地址。

 

段地址会采用一个寄存器进行存储16位数据、在通过另一个寄存器存储偏移地址。

 

 

 二、CPU 内存分段

8086CPU用“(段地址×16)+偏移地址=物理地址”的方式给出内存单元的物理地址。

实际上内存并没有分段,段的划分来自于CPU。

可根据、物理地址、段地址、求出偏移地址。

分段方案

  1. 段地址×16 必然是 16的倍数,所以一个段的起始地址也一定是16的倍数;
  2. 偏移地址为16位,16 位地址的寻址能力为 64K,所以一个段的长度最大为64K。
  3. 段地址:分段内存的起始地址到结尾中、取结尾后16个二进制位。
  4. 可根据、物理地址、段地址、求出偏移地址。

 

标签:8086,16,物理地址,地址,偏移,寄存,寄存器,CPU
来源: https://www.cnblogs.com/xiangsikai/p/12460997.html