购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 原型系统

本节将在最小系统的基础上进行扩展,打造一个符合冯·诺依曼体系结构的原型系统。冯·诺依曼体系结构是现代计算机的基础,现在的大多数计算机仍是冯·诺依曼计算机体系结构,在这种体系中,计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。

原型系统1

扫描上方二维码可观看知识点讲解视频

原型系统2

扫描上方二维码可观看知识点讲解视频

原型系统的结构如图3-13所示。

图3-13 原型系统的结构

在原型系统中:

· 存储器为内存。

· 运算器(ALU)在CPU内部,与最小系统中ALU的功能相同。

· 输入设备为一个数字小键盘。为简单起见,假设输入的数字都是三位(不足三位的前面补0,例如001表示1、019表示19),并且大小不会超过127(因为本系统中整数只有一个字节)。

· 共有四个8位通用寄存器R0、R1、R2、R3,一个标志寄存器G,一个程序计数器PC,其中程序无法直接给寄存器G和PC赋值,所以在图3-13中没有画出。

· 输出设备为一个四位数码显示管。

控制器是整个原型系统的核心部件,主要功能是执行系统的指令,本原型系统设计的指令集中只包括12条指令,格式如表3-1所示。

表3-1 原型系统的指令格式

(续)

在机器启动时,可以对内存空间进行划分,例如16字节的内存中,规定前面3字节(0000~0010)为数据段,只存储数据,最后一个字节为显存,用于保存显示输出的数据,中间的12字节用于存放代码,控制器的代码执行初始值可定义为0011,即第一条指令存放在0011处,然后顺序执行或跳转执行,直到遇到停机指令。其示意图如图3-14所示。

图3-14 原型系统内存空间划分示意图

下面以两个简单的C语言程序为例,来说明原型系统的工作原理。

第一个程序的功能是输入一个大于1的数字a,计算1+2+…+a的值并显示出来,代码如下:

显然,我们的原型系统是无法运行这段C程序代码的,因此需要将该程序转换成原型系统能够执行的指令,这个转换过程也称为“编译”。此程序编译完成后的指令如下:

编译完成后,可以将此代码装载进内存中,此时原型系统的状态如图3-15所示。

图3-15 执行第一个程序后原型系统的状态

本书编写了一个程序来模拟原型系统,读者可在封底指示的网站下载相关代码,运行hnuvspm即可模拟原型系统的运行。

第二个程序的功能是输入两个数,保存这两个数,并输出其中的最小值。C程序代码如下。

编译完成后的指令如下:

编译完成后,可以将此代码装载进内存中,此时原型系统的状态如图3-16所示。

图3-16 执行第二个程序后原型系统的状态 9OV6jlHMnAhSCRCBfziRyRuygSBErN5A6XGZOm0tVo+HLWISmKzD3rF8EOoBFgva

点击中间区域
呼出菜单
上一章
目录
下一章
×