1.计算机系统就是硬件系统吗?
答:说计算机系统就是硬件系统是不完整的。一个完整的计算机系统应该包括硬件系统和软件系统两部分。硬件系统包括运算器、控制器、存储器、输入设备和输出设备五大基本部件。软件系统分为系统软件和应用软件两大类。系统软件包括操作系统、语言处理程序(各种程序翻译软件,包括编译程序、解释程序、汇编程序)、服务性程序、数据库管理系统和网络软件等;应用软件包括各种特定领域的处理程序。计算机系统中的硬件和软件是相辅相成的,两者缺一不可。软件是计算机系统的灵魂,没有软件的硬件犹如一堆废铁,不能被用户使用。
2.同一个功能可以由软件完成,也可以由硬件完成吗?
答:软件和硬件是两种完全不同的形态,硬件是实体,是物质基础,软件是一种信息,看不见、摸不到。但是它们都可以用来实现逻辑功能,所以在逻辑功能上,软件和硬件是等价的。因此,在计算机系统中,许多功能既可以直接由硬件实现,也可以在硬件的配合下由软件来实现。例如,乘法运算既可以用专门的乘法器硬件实现,即机器提供专门的一条乘法指令,也可以用乘法子程序来实现,即不提供乘法指令,而由加法指令和移位指令等组成的一个指令序列来完成乘法运算。
3.解释程序和编译程序有什么差别?
答:编译程序和解释程序是两种不同的翻译程序。不同在于编译程序将高级语言源程序全部翻译成目标程序,每次执行程序时,只要执行目标程序,因此,只要源程序不变,就无须重新翻译;解释程序是将源程序的一条语句翻译成对应的机器目标代码并立即执行,然后翻译下一条语句并执行,直至所有源程序中的语句全部被翻译并执行完。所以解释程序的执行过程是翻译一句、执行一句。解释的结果是源程序执行的结果,而不会生成目标程序。
4.要计算机做的任何工作都要先编写成程序才能完成吗?
答:是的。要计算机完成的任何事情,都必须先编制程序,程序是由指令构成的。不管是用哪种语言编写的程序,最终都要翻译成机器语言程序才能让机器理解,机器语言程序是由一条一条的指令所组成的程序。CPU的主要功能就是周而复始地执行指令,因此,要计算机完成的所有功能都是通过逐条执行指令来实现的,也就是由一个程序来完成的。有时我们说某个特定的功能是由硬件实现的,但并不是说不要编写程序,如乘法功能可由乘法器这个硬件实现,但要启动这个硬件(乘法器)工作,必须先执行程序中的乘法指令。
5.指令和数据在形式上没有差别,且都存于存储器中,计算机如何区分它们呢?
答:指令和数据在计算机内部都是用二进制表示的,因而都是0、1序列,在形式上没有差别。在把指令和数据读取到CPU之前,它们都存放在存储器中,CPU必须能够区分读出的是指令还是数据。如果是指令,CPU会把指令的操作码送到指令译码器进行译码,而把指令的地址码送到相应的地方进行处理;如果是数据,则把数据送到寄存器或运算器。那么,CPU如何识别读出的是指令还是数据呢?实际上,CPU并不是把信息从主存读出后靠某种判断方法来识别信息是数据还是指令的,而是在读出之前就知道将要读的信息是数据还是指令。执行指令的过程分为取指令、指令译码、取操作数、运算、送结果等阶段。所以,在取指令阶段,总是根据程序计数器(PC)的值去取指令,所以取来的一定是指令;取操作数阶段取来的一定是数据。