前言
前面我们已经了解了计算机硬件的工作原理,以及操作系统的发展。我们知道是内存把计算机硬件和软件联系了起来。不夸张的说,了解了软件在内存中的结构,就基本了解了程序最底层的运行原理。所以从这一篇开始,将深入的讨论计算机中内存管理和布局。内存的管理同计算机硬件以及擦做系统是分不开的。这一篇我们主要讨论早期x86 CPU和DOS系统对于内存的管理。
1. 8086 CPU
说到CPU,我们第一个想到的应该就是Intel。 1971年11月15号,Intel发布了全球第一款微处理器Intel 4004,这是一个主频只有108KHz的4bit处理器。而后又发布了8bit的8008处理器。而我们最熟悉的应该就是8086,为什么?因为随便找一本汇编的书籍看看,都会有8086四个大字。因为8086标志着Intel x86体系结构的CPU的开始。而且8086/8088开始用于便携电脑,所以我们就从8086开始介绍。80186除8086内核,另外包括了中断控制器、定时器、DMA、I/O、UART、片选电路等外设。
1.1 8086/8088内存访问
8086是x86体系结构的开始,他采用了16bit,但是地址线却用了20位。前面介绍CPU工作原理的时候哦我们知道,CPU内部有一个PC计数器,用来存储下一个要执行的物理地址。但是16位的寄存器如何存储20位的地址呢?