武汉理工大学《计算机控制》课程设计说明书
3 硬件系统基本原理
3.1 8086 功能简介
Intel 8086 是一个由 Intel 于 1978 年所设计的 16 位微处理器芯片,是 x86 架构的鼻
祖。不久,Intel 8088 就推出了,拥有一个外部的 8 位数据总线,允许便宜的芯片用途。
它是以 8080 和 8085(它与 8080 有组合语言上的原始码兼容性)的设计为基础,拥有类
似的寄存器组,但是数据总线扩充为 16 位。总线界面单元(Bus Interface Unit)透过 6 字节
预存(prefecth) 的队列(queue)喂指令给执行单元(Execution Unit),所以取指令和执行是
同步的,8086 CPU 有 20 条地址线,可直接寻址 1MB 的存储空间,每一个存储单元可
以存放一个字节(8 位)二进制信息。为了便于对存储器进行存取操作,每一个存储单元
都有一个惟一的地址与之对应,其地址范围用十进制表示为 0~1048575,用十六进制
表示为 00000H~FFFFFH。
Intel 8086 拥有四个 16 位的通用寄存器,也能够当作八个 8 位寄存器来存取,以及
四个 16 位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存
值需要复杂的寄存器配置。它提供 64K 8 位元的输出输入(或 32K 16 位元),以及固定
的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个
寄存器。运算结果会储存在操作数中的一个。
Intel 8086 有四个 内存区段(segment) 寄存器,可以从索引寄存器来设定。区段寄存
器可以让 CPU 利用特殊的方式存取 1 MB 内存。8086 把段地址左移 4 位然后把它加上
偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有
重叠。尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,,使
在编程中使用指针 (如 C 编程语言) 变得困难。它导致指针的高效率表示变得困难,且有
可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内
存扩充到大于 1 MB 的困难。而 8086 的寻址方式改变让内存扩充较有效率。
在这个系统中,8086 作为整个系统的主控芯片,用来控制协调整个系统的工作。