曲曲的秘密学术基地

纯化欲望、坚持严肃性

欢迎!我是曲泽慧(@zququ),目前在深圳(ICBI,BCBDI,SIAT)任职助理研究员。


病毒学、免疫学及结构生物学背景,可以在 RG 上找到我已发表的论文

本站自2019年7月已访问web counter

汇编语言 2.4 2.5 2.6 物理地址与8086CPU

2.4 物理地址

所有的内存单元构成的存储空间使一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,我们称这个唯一的地址为物理地址

2.5 16位结构的CPU

8086CPU的上一代CPU(8080、8085)等是8位机,而8086位16位机,即16位结构的CPU。

其具有以下特点:

  1. 运算器一次最多可以处理16位的数据
  2. 寄存器的最大宽度为16位
  3. 寄存器和运算器之间的通路为16位

8086内部,能够一次性处理、传输、存储的信息的最大长度是16位的。内存单元的地址在送上地址总线之前,必须在CPU中处理、传输、暂存16位的地址。

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

8086CPU有20位地址总线,可以传送20位地址,达到$2^{20} = 1 MB$的寻址能力。但是矛盾的是,8086只能够一次性处理、传输、存储的信息的最大长度是16位,即只能送出16位的地址,表现出的寻址能力只有64KB。

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

8086CPU相关部件的逻辑:

  1. CPU中的相关部件提供两个16位地址,一个成为段地址,另一个成为偏移地址
  2. 短地址和偏移地址通过内部总线送入一个成为地址加法器的部件
  3. 地址加法器将两个16位地址合成为一个20位的物理地址
  4. 地址加法器通过内部总线将20位物理地址送入输入输出控制电路
  5. 输入输出控制电路将20位物理地址送上地址总线
  6. 20位物理地址被地址总线传送到存储器

物理地址 = 段地址 * 16 + 偏移地址

比如段地址为16位1230H, 偏移地址为16位00C8H。 根据上面的公式,相当于将段地址想左平移一个单位(等同于二进制想左平移4个单位).

关于移位次数和各种形式的数据关系转换:

  1. 一个数据的二进制形式左移1位相当于该数据乘以2
  2. 一个数据二进制形式左移N位,相当于该数据乘以$2^N$位
  3. 地址加法器如何完成段地址x16运算?就是将以二进制形式存放的段地址左移4位
Last One

About the Strang LA notebook

I have uploaded the related notes to the github as PDF. Get it as you need!…

数学More
Next One

汇编语言 2.1 2.2 通用寄存器, 与几条简单的汇编指令

汇编 第二章:一个典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。相对的,外部总线实现CPU和主板上其他器件的联系。 运算器进行信息处理寄存器进行信息储存控制器控制各种器件进行工作内部总线连接各种器件,在它们之间进行数据的传送2.1 通用寄存器8086寄存器CPU的所有寄存器都是16位的,可以存放两个字节(Byte)。AX、BX、CX、DX这四个寄存器通常用来存放一般性数据,被通常成为通用寄存器。以AX为例。AX可以分为AH和AL,其为两个可独立使用的8位寄存器。...…

汇编语言More