计算机原理常见问题大全.doc

上传人:壹****1 文档编号:559924336 上传时间:2023-05-17 格式:DOC 页数:23 大小:86.50KB
返回 下载 相关 举报
计算机原理常见问题大全.doc_第1页
第1页 / 共23页
计算机原理常见问题大全.doc_第2页
第2页 / 共23页
计算机原理常见问题大全.doc_第3页
第3页 / 共23页
计算机原理常见问题大全.doc_第4页
第4页 / 共23页
计算机原理常见问题大全.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《计算机原理常见问题大全.doc》由会员分享,可在线阅读,更多相关《计算机原理常见问题大全.doc(23页珍藏版)》请在金锄头文库上搜索。

1、第一章 计算机系统概论1.计算机系统就是硬件系统吗? 答:说计算机系统就是硬件系统是不完整的。一个完整的计算机系统应该包括硬件系统和软件系统两部分。硬件系统包括:运算器、控制器、存储器、输入设备和输出设备五大基本部件。软件系统分为系统软件和应用软件两大类。系统软件包括操作系统、计算机语言处理程序(各种程序翻译软件,包括编译程序、解释程序、汇编程序)、服务性程序、数据库管理系统和网络软件等;应用软件包括各种特定领域的处理程序。 计算机系统中的硬件和软件是相辅相成的,缺一不可。软件是计算机系统的灵魂,没有软件的硬件不能被用户使用,犹如一堆废铁。2.同一个功能可以由软件完成也可以由硬件完成吗?答:软

2、件和硬件是两种完全不同的形态,硬件是实体,是物质基础;软件是一种信息,看不见、摸不到。但是它们都可以用来实现逻辑功能,所以在逻辑功能上,软件和硬件是等价的。因此,在计算机系统中,许多功能既可以直接由硬件实现,也可以在硬件的配合下由软件来实现。例如:乘法运算既可以用专门的乘法器(主要由加法器和移位器组成)实现,也可以用乘法子程序(主要由加法指令和移位指令等组成)来实现。 3.翻译程序就是编译程序吗?解释程序和编译程序有什么差别?什么是汇编程序?答:翻译程序是指把高级语言源程序翻译成机器语言程序(目标代码)的软件。翻译程序有两种:一种是编译程序,另一种是解释程序。它们是两种不同的翻译程序。不同在于

3、编译程序将高级语言源程序一次全部翻译成目标程序,每次执行程序时,只要执行目标程序,因此,只要源程序不变,就无需重新翻译;解释程序是将源程序的一条语句,翻译成对应的机器目标代码,并立即执行,然后翻译下一条源程序语句并执行,直至所有源程序中的语句全部被翻译并执行完。所以解释程序的执行过程是翻译一句,执行一句。解释的结果是源程序执行的结果,而不会生成目标程序。汇编程序也是一种语言翻译程序,它是把汇编语言写的源程序翻译为机器语言程序(目标代码)的软件。汇编语言是一种面向机器的低级语言,是机器语言的符号表示,与机器语言一一对应。 4.要计算机做的任何工作都要先编写成程序才能完成吗?答:是的。要计算机完成

4、的任何事情,都必须先编制程序,程序是由指令构成的。不管是用哪种语言编写的程序,最终都要翻译成机器语言程序才能让机器理解,机器语言程序是由一条一条指令组成的程序。CPU的主要功能就是周而复始地执行指令,因此,要计算机完成的所有功能都是通过执行一条一条指令来实现的,也就是由一个程序来完成的。有时我们说某个特定的功能是由硬件实现的,但并不是说不要编写程序,如乘法功能可由乘法器这个硬件实现,但要启动这个硬件(乘法器)工作,必须先执行程序中的乘法指令。 5.指令和数据形式上没有差别,且都存于存储器中,计算机如何区分它们呢?答:指令和数据在计算机内部都是用二进制表示的,因而都是0、1序列,在形式上没有差别

5、。在指令和数据取到CPU之前,它们都存放在存储器中,CPU必须能够区分读出的是指令还是数据,如果是指令,CPU会把指令的操作码送到指令译码器进行译码,而把指令的地址码送到相应的地方进行处理;如果是数据,则送到寄存器,或运算器。那么,CPU如何识别读出的是指令还是数据呢?实际上,CPU并不是把信息从主存读出后,靠某种判断方法来识别信息是数据还是指令的。而是在读出之前就知道将要读的信息是数据还是指令了。执行指令的过程分为:取指令、指令译码、取操作数、运算、送结果等。所以,在取指令阶段,总是根据程序计数器PC的值去取指令,所以取来的一定是指令;取操作数阶段取的一定是数据。 6.什么叫透明性?透明是指

6、什么都能看见吗?答:在计算机领域中,站在某一类用户的角度,如果感觉不到某个事物或属性的存在,即“看”不到某个事物或属性,则称为“对xxxx用户而言,某个事物或属性是透明的”。这与日常生活中的“透明”概念(公开、看得见)正好相反。例如:对于高级语言程序员来说,浮点数格式、乘法指令等这些指令的格式、数据如何在运算器中运算,等等,是透明的;而对于机器语言程序员和汇编语言程序员来说,指令的格式、机器结构、数据格式等则不是透明的。 7.数据通路宽度、机器字长、“字”宽、存储单元宽度、编址单位、总线宽度、指令字长各指什么?它们之间有何关系? 答:在计算机内部,有指令和数据两大类信息。指令和数据都以二进制形

7、式存放在存储器中,运行程序时,需要把指令和数据从存储器读出,通过总线传输到CPU,然后,CPU再通过执行指令来对操作数进行相应的运算,最后把结果数据送到寄存器或存储器中。所以,在设计或使用计算机过程中,要涉及到:指令和数据在存储器中按什么长度存放;写入或读出时按什么长度存取;在总线上传输时同时传送多少位;数据和指令送到CPU后,在CPU的寄存器中按多少位存放;在运算器中按多少位运算;等等问题。因而出现了以下一些概念,它们的定义和关系如下: “数据通路”是指数据在CPU中所经过的路径,连同路径上的部件,包括:通用寄存器、多路选择器、符号扩展器、零扩展器、ALU、移位寄存器等。这些部件的宽度和数据

8、传送的路径宽度都是一致的,这个一致的宽度就是数据通路的宽度。CPU中有定点运算器和浮点运算器,因而,相对应的就有定点运算器的数据通路和浮点运算器数据通路。两者的宽度不同,浮点运算器的数据通路要宽的多。“机器字长”是计算机的一个非常重要的指标。通常称32位机器或64位机器,就是指机器的字长是32位或64位。一般情况下,机器字长定义为CPU中在同一时间内一次能够处理的二进制数的位数,实际上就是CPU中数据通路的位数。因为机器字长与内存单元的地址位数有关,而地址计算是在定点运算器中进行的。所以,一般把定点运算器的数据通路宽度定为机器字长。在计算机中,“字”的概念经常出现。一个“字”的宽度并不等于机器

9、字长。“字”作为机器中所有信息宽度的计量单位,对于某个系列机来说,其字宽总是固定的。例如,在80x86系列中,一个字的宽度为16位,因此,32位是双字,64位是四字。在IBM303X系列中,一个字的宽度为32位,所以16位为半字,32位为单字、64位为双字。“存储单元”指存储器中具有相同地址的若干个存储元件(或称存储元、存储基元、记忆单元)构成的一个存储单元中的二进制代码,其宽度等于一个编址单位的长度,可以是8位、16位、32位等。现在,大多数计算机是按字节编址的,即:每一个字节(8位)有一个地址,编址单位就是一个字节,所以一个存储单元的宽度(位数)是8位。由此可见,一个数据(如:32位整数、

10、32位浮点数或64位浮点数等)可能占多个存储单元。一次从存储器读出或写入的信息也可能有多个存储单元。“指令字长”指指令的位数。有定长指令字机器和不定长指令字机器。定长指令字机器中所有指令的位数是相同的,目前定长指令字大多是32位指令字。不定长指令字机器的指令有长有短,但每条指令的长度一般都是8的倍数。所以,一个指令字在存储器中存放时,可能占用多个存储单元;从存储器读出并通过总线传输时,可能分多次进行,也可能一次读多条指令。第二章 运算方法和运算器1.真值和机器数的关系是什么?答:在计算机内部用二进制编码表示的数称为机器数,而机器数真正的值(即原来带有正负号的数)称为机器数的真值。 2.什么是编

11、码?答:用少量简单的基本符号,对大量复杂多样的信息进行一定规律的组合。基本符号的种类和组合规则是信息编码的两大要素。例如,用10个阿拉伯数字表示数值,电报码中用4位十进制数字表示汉字,等等,都是编码的典型例子。计算机内部处理的所有信息都是“数字化编码”了的信息。 3.什么是“数字化编码”? 答:“数字化编码”就是对感觉媒体信息(如:数值、文字、图像、声音、视频等信息)进行定时采样,将现实世界中的连续信息转换为计算机中的离散的“样本”信息,然后对这些离散的“样本”信息进行二进制编码。 4.计算机内部为什么用二进制来编码所有信息? 答:主要有三个方面的原因:(1) 二进制系统只有两个基本符号:“0

12、”和“1”。所以,它的基本符号少,易于用稳态电路实现;(2)二进制的编码/计数/运算等的规则简单;(3)二进制中的“0”和“1”与逻辑命题的“真”和“假”的对应关系简单 5.什么叫数值数据?答:数值数据有确定的值,即在数轴上能找到其对应的点,可以比较其大小。确定一个数值数据的值有三个要素:进位计数制、定浮点表示和数的编码表示。也就是说,给定一个数字序列,如果不说明这个数字序列是几进制数、小数点的位置在哪里、采用什么编码方式,那么这个数字序列的值是无法确定的。或者说,同一个数字序列可能有不同的值。 6.计算机内都用二进制表示信息,为什么还要引入八进制和十六进制? 答:计算机内部在进行信息的存储、

13、传送和运算时,都是以二进制形式来表示信息的。但在屏幕上或书本上书写信息时,由于二进制信息位数多,阅读、记忆也不方便。而十六进制、八进制和二进制的对应关系简单。所以引入十六进制或八进制。在开发程序、调试程序、阅读机器内部代码时,人们经常使用八进制或十六进制来等价地表示二进制信息。 7.如何表示一个数值数据?计算机中的数值数据都是二进制数吗? 答:在计算机内部,数值数据的表示方法有两大类: 直接用二进制数表示 分为无符号数和有符号数,有符号数又分为定点数表示和浮点数表示。无符号数用来表示无符号整数(如:地址等信息);定点数用来表示整数;浮点数用来表示实数。 采用二进制编码的十进制数表示(Binar

14、y Coded Decimal Number,简称BCD码)BCD码的编码方案很多,但一般都采用8421码(也称为NBCD码)来表示。用来表示整数。 所以,计算机中的数值数据虽然都用二进制来编码表示,但不全是二进制数,也有用十进制数表示的。所以,后面一章有关指令类型中,就有对应的二进制加法指令和十进制加法指令。 8.为什么要引入无符号数表示? 答:一般在全部是正数运算且结果不出现负值的场合下,可以省略符号位,使用无符号数表示。例如在进行地址运算时可用无符号数。 9.在高级语言编程中所定义的unsigned型数据是怎么表示的? 答:unsigned型数据就是无符号数,不考虑符号位,直接用二进制对

15、数值进行编码得到的就是无符号数。 10.为什么无符号整数结果会发生“溢出”? 什么叫无符号整数的“溢出”? 答:计算机的机器字长总是有限的,因而机器数的位数有限,所以可表示的数的个数有限。对于n位二进制数,只能表示2n个不同的数,因此有很多数用n位无法表示。 对于无符号定点整数来说,计算机运算过程中一般保留低n位,舍弃高位。这样,会产生两种结果: 剩下的低n位数不能正确表示运算结果。这种情况下,意味着运算的结果超出了计算机能表达的范围,有效数值进到了第n+1位,我们称此时发生了“溢出” 现象。 剩下的低n位数能正确表达计算结果,也即高位的舍去并不影响其运算结果。“span对一个多于n位的数丢弃高位而保留低n位数”这样一种处理, 实际上等价于“将这个多于n位的数去除以2n,然后丢去商保留其余数”的操作。这种操作运算就是“模运算”。在一个模运算系统中,运算的结果最终都是丢弃高位,只截取低n位。所以,只要不是“溢出”,即:只要真正的值不会进到第n+1位,结果就是正确的。这是模运算系统的特点。 11.为什么现代计算机都用补码来表示整数? 答:补码表示定点整数时,和原码、反码相比,有以下四个好处: (1)符号位可以和数值位一起参加运算 (2)可以用加法方便地实现减法运算 (3)零的表示唯

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号