第1章 基础知识
1.1 计算机系统层次结构
1.1.1 按功能划分的多级层次结构
现代计算机是通过执行指令来解决问题的,它由软件和硬件两大部分组成。描述一个任务如何实现的指令序列称为程序,所有程序在执行前都必须转换成计算机能识别且能直接执行的机器指令。这些机器指令与机器硬件直接对应,并能被其直接识别和执行,然而使用机器语言编程既不方便,也无法适应解题需要和计算机应用范围的扩大。这个问题可从两方面去解决,前提都是需要设计一个比机器指令更方便使用或编程的指令集合,由它构成新的语言,例如汇编语言。汇编语言是一种符号语言,给程序员编程提供了方便,但尽管每个语句仍基本上与机器指令对应,却并不能被机器直接识别和执行。用汇编语言开发的程序需要某种转换才能在实际机器上执行:一种是翻译(translation),即在执行汇编语言源程序之前生成一个等价的机器语言指令序列来替换它,生成的程序全部由机器指令组成,计算机执行等效的机器语言源程序,而不是原来的汇编语言源程序,也即把源程序先转换成目标程序,然后再在机器上执行目标程序以获得结果;另一种是解释(interpretation),即用机器指令写一个程序,将汇编语言源程序作为输入数据,按顺序检查它的每条指令,然后直接执行等效的机器指令序列来解决问题。
汇编语言源程序可以在机器上运行并获得结果,是因为有汇编程序的支持。在汇编语言程序设计者看来,就好像有了一台用汇编语言作为机器语言的机器。这里的机器是指能存储和执行程序的算法和数据结构的集合体。我们把以软件为主实现的机器称为虚拟机器,而把由硬件和固件实现的机器称为实际机器。显然,虚拟机器的实现是构筑在实际机器之上的。图1.1给出了虚拟机器与实际机器之间构成的一个简单的层次结构。
……