计算机系统概论第七章

计算机系统概论第七章
计算机系统概论第七章

第七章汇编语言

到目前为止,我们已经有点厌倦了用1和0来编程,我们需要知道0001表示“加”;1001表示“非”。如果我们采用一些有意义的符号表示“地址”,而不用去记忆它的16位地址,这岂不是更好吗?并且如果我们能够用一些易于理解的方式来代替那些指令,而无需记住各个指令的二进制表示传达了什么信息,这该是多么好的一件事啊!事实上,已经有了这样的机制。

本章里,我们将介绍汇编语言,它不仅实现了上述目标,还扩展了一些功能。

7.1 汇编语言程序设计——向上一个层次

回忆一下我们在第一章的1.6节中提到的层次的转换。我们把算法转化成用机械语言描述的程序。这些机械语言,可以是像我们在第五章中所学习的特定计算机上的机器语言。回忆一下,如果一个程序的每个指令都是来源于该计算机的指令集结构(ISA),那么这个程序就是用计算机的机器语言来编写的。

另一方面,机械语言的用户友好程度也可以更高一些。我们通常把机械语言分成两个级别:高级语言与低级语言。二者之中,高级语言要比低级语言的用户友好程度更高。例如C++、C、Fortran、COBOL、Pascal,加起来超过一千种之多。在高级语言中几乎所有的指令(也不尽然)都类似于自然语言,如英语。高级语言倾向于独立于指令集结构(ISA)。这就是说,一旦你学会如何用针对某个ISA 上的C语言(或Fortran或Pascal)编程,对于其他ISA 上的C语言(或Fortran或Pascal)编程来说,你只需要迈出一小步就可以了。

一个用高级语言编写的程序执行之前,它首先必须被翻译成适合于期望执行的那台特定计算机的ISA的程序。通常,高级语言的一条语句可以表示为ISA上的几条指令。在第十一章,我们将给大家介绍一种高级语言——C语言,并且在第十二章到第十九章,我们将给大家介绍C语言中各种语句和它们转换成相应的LC-3代码之间的关系。但是,在本章,我们只从第五章的ISA往上移动一小步。

这一小步是从一个机器的ISA到该ISA的汇编语言,汇编语言是一种低级语言。请不要混淆英语中低级语言的指令和语句两个单词。通常每个汇编语言的指令指的是一条ISA的指令。与高级语言不同的是,高级语言是独立于ISA的,而低级语言是要依赖于ISA的。事实上,每一个ISA通常只有一套汇编语言。

汇编语言的目的是使程序设计的用户友好性比机器语言(即我们正在涉及的计算机的ISA)更强,但是,它同样能使程序员详细的控制计算机能执行的指令。也就是说,我们既能控制计算机能执行的详细指令,又不必记住1001表示什么操作码,0001又是代表的什么操作码,或者在地址0011111100001010中存储的是什么,什么内容会被存储到0011111100000101中。汇编语言让我们可以用一些便于记忆的符号表示操作码,例如ADD 和NOT;用一些有意义的符号表示存储单元,例如用SUM和PRODUCT,而不再是16位地址来表示,这将使我们更容易区别用SUM和用PRODUCT表示的地址。我们称其为“符号地址”。

我们将会看到,从第十一章开始,当我们向上移动了一大步到一种高级语言(如C语言)时,编写程序对用户来说将会更加的友好,但是使用高级语言会让我们放弃了对准备执行的详细指令的精确的控制。

7.2 一个汇编语言程序

我们使用一个例子来学习LC-3汇编语言。图7.1中的这个程序用自加6次实现把一个整数乘以6。举个例子,如果这个整数是123,程序将会通过完成123+123+123+123+123+123,计算出结果。

这个程序由21行代码构成。我们已经给每行代码添加了“行号”来使我们能容易地找到每一行。这是个普遍的做法。这些行号不是程序的一部分。以分号开头的共10行,表明它只是为了让人阅读的目的,稍后再讲。06,07,08,0C,0D,0E和10这7行是汇编语言指令,将被翻译成LC-3的机器语言指令,是当程序运行时真正被执行的指令。剩下的4行05,12,13和15包含了伪操作,是程序员为翻译程序给出的有助于翻译过程的消息。翻译程序被称为汇编器(本书中称为LC-3汇编器),翻译过程被称为汇编。

01 ;

02 ;用6乘以一个整数的程序。

03 ;执行之前,该整数存储于NUMBER中。

04 ;

05 .ORIG x3050

06 LD R1, SIX

07 LD R2, NUMBER

08 AND R3,R3,#0 ;R3清零,它将

09 ;包含乘积。

0A ;内部循环

0B ;

0C AGAIN ADD R3,R3,R2

0D ADD R1,R1,# -1 ;R1跟踪

0E BRp AGAIN ;循环次数

0F ;

10 HALT

11 ;

12 NUMBER .BLKW 1

13 SIX .FILL x0006

14 ;

15 .END

图7.1 一个汇编语言程序

7.2.1 指令

汇编语言的指令不再是LC-3的ISA中的0和1的组合,在汇编语言中,一条指令包括四个部分,如下所示:

标记(LABEL)操作码(OPCODE)操作数(OPERANDS);注释(COMMENTS)其中的两个部分(标记和注释)是可选的,稍后会讲。

操作码和操作数

这两个部分是必不可少的。一条指令必须有一个操作码(这条指令是做什么的),还要有适当数目的操作数(对谁进行操作)。不必感到惊讶,这正是我们在第五章学习LC-3 ISA

所遇到的。

对于对应的LC-3指令的操作码来说,OPCODE只是一个符号名。记住符号名ADD,AND和LDR所表示的操作要比记住4位的0001,0101或0110要容易的多。图5.3(图A.2同样)列出了15种LC-3指令的OPCODE。从526页到541页显示了15种指令所对应的汇编语言的表示。

操作数的数目取决于正在执行的操作。例如,ADD指令(0C行)需要3个操作数(两个获取加数的源操作数,和一个被指定用来存放结果的目标操作数)。3个操作数必须在该指令中被明确的标识出来。

AGAIN ADD R3, R3, R2

从寄存器2和寄存器3获得的操作数被相加,结果被放在寄存器3中。我们用R0,R1,…,R7来表示寄存器0到7。

LD指令(07行)需要2个操作数(被读取的数值所在的存储单元,和指令执行结束后,包含那个数值的目标寄存器)。我们看到该存储单元通过称为标记的符号地址给出。在此,被读取的数值所在的存储单元被标记NUMBER给出。那个数值的目标是被加载进寄存器2。

LD R2, NUMBER

正如我们在5.1.6节中讨论的,操作数可以通过寄存器、存储器或指令中的字面值(即立即数)获得。在寄存器操作数的情况下,寄存器被明确的表示出来(如0C行中的R2和R3)。在存储器操作数的情况下,存储器的符号名称被明确的表示出来(如07行中的NUMBER和06行中的SIX)。在立即数操作数的情况下,实际的值被明确的表示出来(如08行中的数值0)。

AND R3, R3, #0 ; R3清零,它将包含乘积。

一个字面值必须包含一个表明该数的基的符号。我们用“#”表示十进制,用“x”表示十六进制,用“b”表示二进制。有时,例如3F0A的值不存在含糊性,它表示十六进制。虽然如此,我们仍把它写作x3F0A。有时,例如1000的值存在含糊,x1000表示十进制数4096,b1000表示十进制数8,而#1000表示十进制数1000。

标记

标记是程序中用来明确的标识存储单元的符号名。在LC-3汇编语言中,标记由1到20个字母、数字(即字母表中的大、小写字母,或十进制数位)组成,并且以字母表中的字母开头。NOW,Under21,R2D2和C3PO都是LC-3汇编语言的标记的例子。

使用标记表示存储单元的原因有两个:

1、该单元为某个分支指令的目标(如0C行中的AGAIN);

2、该单元包含的是某个被加载或存储的值(如12行中的NUMBER,13行中的SIX)。

单元AGAIN被0E行的分支指令所引用。

BRp AGAIN

如果ADD R1,R1,#-1的结果是正数(通过P条件码被设为1而证实),那么程序跳转到被AGAIN明确标识的存储单元,从而执行又一次的循环。

单元NUMBER被07行的加载指令所引用。存储在NUMBER被明确标识的存储单元中的值,被加载到R2中。

如果某个单元在程序中未被引用,那么就不需要为它设一个标记。

注释

注释只是给人看的信息。对于翻译过程没有影响,事实上,LC-3汇编器对它不起作用。在程序中,注释通过分号被标识出来。分号表示该行的分号后面的部分是注释,被汇编器忽

略。如果分号是某行的第一个非空字符,那么整行都被忽略。如果分号位于一条指令的操作数之后,那么,只有注释被汇编器忽略。

注释的目的是为了让程序更好的被读者理解。它们帮助解释一条或一组指令的非直观上的表象。在08行和09行,注释“R3清零,它将包含乘积”,让读者知道08行的指令是在计算两个数的乘积之前先对R3初始化。08行的目的对于今天的程序员可能是明显的,但是如果两年后,在该程序员又写了3万行代码后,他/她不可能记得为什么写下ADD R3,R3,#0。另一种可能的情况是,两年后,该程序员不在该公司工作了,而公司为了产品的升级,需要修改程序,如果这个任务被指派给一个以前没看过这段代码的人,注释对于提高理解力大有帮助。

做注释不是重申一个显而易见的表象,重要的是提供补充的理解。这有2个原因,第一,重申一个显而易见的表象的注释,是浪费人的时间,第二,重申一个显而易见的表象,会给程序增加混乱,而使那些重要的注释不明显了。例如,0D行,如果注释“R1减1”就是个坏主意。它不能为指令提供补充的理解,只是增加的页面的混乱。

注释的另一个目的,也就是在一行中明智的使用空格,可以使程序的可视化的表现更易于被理解。例如,注释可以被用来将程序分割为一个个片断,使程序更具可读性。也就是说,为了计算出某一个结果而一起工作的代码行被放在连续的行中,而产生不同的结果的程序片断相互分隔开来。例如,0C到0E行,被0B和0F两行与其他代码分隔开,在0B和0F两行除了分号什么都没有。

被汇编器忽略的空格也为程序对齐提供了机会,从而更易读。例如,所有操作码都开始于页面中的相同的列。

7.2.2 伪操作(汇编指令)

LC-3汇编器把输入的字符串,作为一个使用LC-3汇编语言写的计算机程序,并将其翻译为LC-3的ISA程序。伪操作有助于汇编器实现其任务。

实际上,对于伪操作的更正式的名字是汇编指令。之所以被称为伪操作,是因为它们不是在程序执行过程中被执行的操作,相反地,伪操作只是在汇编过程中,为了帮助汇编器而发给汇编器的信息。一旦汇编器处理了这个信息,伪操作就被抛弃掉。LC-3汇编器包括5个伪操作:.ORIG, .FILL, .BLKW, .STRINGZ和.END。所有的都把“点”作为第一个字符,可以容易的被识别出来。

.ORIG

.ORIG告诉汇编器将LC-3程序放在存储器的什么地方。在05行,.ORIG x3050表示,开始于单元x3050。结果,LD R1,SIX指令就被放进单元x3050。

.FILL

.FILL告诉汇编器在程序中留出一个单元,并将它初始化为操作数中的值。在13行,结果是LC-3程序的第9个单元被初始化为值x0006。

.BLKW

.BLKW告诉汇编器在程序中留出一定数目的连续的存储单元(即字块)。实际的数目就是.BLKW伪操作的操作数。在12行,伪操作指示汇编器在存储器中留出一个单元(顺便提一下,这个单元被标记为NUMBER)。

伪操作.BLKW在操作数的实际值未知时特别有用。例如,一个人想在存储器中留出一个单元,以便存储从键盘输入的某个字符。直到程序运行之前,我们都不会知道按键的内容。.STRINGZ

.STRINGZ告诉汇编器将一个连续的n+1个存储单元进行初始化。参数是两个双引号之

间的连续的n个字符。存储器的前n个字被字符串中的字符对应的经零扩展的ASCII码初始化。存储器的最后一个字被初始化为0。最后一个字符是x0000,为处理ASCII码字符串提供了一个方便的标记。

例如,代码片断

.ORIG x3010

HELLO .STRING “Hello,World!”

结果是汇编器把x3010到x301D初始化为以下的值:

x3010: x0048

x3011: x0065

x3012: x006C

x3013: x006C

x3014: x006F

x3015: x002C

x3016: x0020

x3017: x0057

x3018: x006F

x3019: x0072

x301A: x006C

x301B: x0064

x301C: x0021

x301D: x0000

.END

.END告诉汇编器程序在哪里终止。在.END后出现的任何字符都不会被汇编器使用。注意:.END在执行时并不会停止程序。事实上,在运行的时候它甚至都不出现。它仅仅是一个简单的分界符——标志一个源程序的结束。

7.2.3 例子:回顾的5.5节的计算字符出现次数的例子

现在我们准备做一个完整的例子。再次回顾在5.5节中出现的例子。我们希望写一个程序,它能查找出在文档中的从键盘输入的字符出现的次数。像以前一样,我们先通过构造流程图,研究出算法。回忆在6.1节我们显示了如何系统的分解问题,从而创建一个如图5.16的流程图。事实上在第六章的最后一个环节是图6.3e,其本质和图5.16相同。下一步,我们用流程图来写真正的程序。这次我们不用再担心0和1的繁琐而用LC-3汇编语言来写程序。程序如图7.2所示。

有关程序的一些说明:

在这个程序中有三次需要操作系统的服务调用的协助。每一次都使用trap命令。TRAP x23从键盘输入一个值,并把该字符放到R0中(0D行)。TRAP x21把在R0中的ASCII码显示到显示器上(在28行)。TRAP x25使机器停止(在29行)。我们曾经说过,我们将在第9章中详细介绍TRAP命令的实现。

01 ;

02 ; 用于计算一个字符在文档中出现次数的程序。

03 ; 字符由键盘输入。

04 ; 结果显示在显示器上。

05 ; 仅当一个字符的出现次数不多于9时,程序正常运行。

06 ;

07 ;

08 ;初始化

09 ;

0A .ORIG x3000

0B AND R2,R2,#0 ; R2是计数器,初始化为0 0C LD R3,PTR ; R3是字符的指针

0D TRAP x23 ; R0获取输入的字符

0E LDR R1,R3,#0 ; R1取得下一个字符

0F ;

10 ; 检验字符,否到达文件的末尾

11 ;

13 TEST ADD R4,R1,#-4 ; 检验EOT

14 BTz OUTPUT ; 如果完成,准备输出

15 ;

16 ; 检验字符是否匹配,如果匹配,计数器加1

17 ;

18 NOT R1,R1

19 ADD R1,R1,R0 ; 如果匹配,R1=xFFFF

1A NOT R1,R1 ; 如果匹配,R1=x0000

1B BRnp GETCHAR ; 如果不匹配,不加1

1C ADD R2,R2,#1

1D ;

1E ;从文档中取得下一个字符.

1F ;

20 GETCHAR ADD R3,R3,#1 ; 指针加1

21 LDR R1,R3,#0 ; R1取得下一个检验的字符

22 BRnzp TEST

23 ;

24 ; 输出结果

25 ;

26 OUTPUT LD R0,ASCII ; 加载ASCII模板

27 ADD R0,R0,R2 ; 将二进制转换为ASCII码

28 TRAP x21 ; R0中的ASCII码被显示

29 TRAP x25 ; 停止机器

2A ;

2B ; 存储指针和ASCII码模板

2C ;

2D ASCII .FILL x0030

2E PTR .FILL x4000

2F .END

图7.2 计算字符出现次数的汇编语言程序

十进制数0到9(0000到1001)的ASCII码是x30到x39,从二进制转变为ASCII码只需将该十进制数的二进制表示加上x30即可。2D行显示了标记ASCII被用来标识包含x0030的存储单元。

被测试的文档起始于地址x4000(2E行)。通常,因为我们希望对文件操作的程序在将来可用,所以写这个程序员的程序员不会知道起始地址,这种情况将在7.4节中说明。

7.3 汇编过程

7.3.1介绍

在一个LC-3汇编语言程序被执行前,它首先必须被翻译成机器语言程序,也就是说,每一个指令都是LC-3 ISA中的指令。LC-3汇编器的工作就是进行这样的翻译。

如果你有一个LC-3汇编器,你就能通过执行一个适当的命令,使它把你的汇编语言程序翻译成机器语言程序。LC-3汇编器通常可通过网络获得,其命令是assemble,需要你编写的汇编语言程序的文件名作为参数之一。举个例子,如果文件名是solution1.asm,那么

assemble solusion1.asm outfile

将生成LC-3 ISA上的文件outfile。有必要从你的老师处得到正确的命令,使LC-3汇编器能生成一个LC-3 ISA中的0和1组成的文件。

7.3.2 一个“两趟”的过程

在这一节,我们将看到汇编器是怎样把一个汇编语言程序翻译成机器语言程序的,我们使用图7.2的汇编语言程序作为处理过程的输入。

回想一下,在汇编语言程序的指令和机器语言程序的指令之间一般有一个“一一对应”的关系。我们试图通过扫描汇编语言程序,实现这种翻译。从图7.2的顶部开始,汇编器抛弃掉01到09行,因为它们只包含注释。注释只是为人使用,与翻译过程无关。然后,汇编器移到0A行,0A行是个伪操作,它告诉汇编器,该机器语言程序开始于地址x3000。然后,汇编器移到0B行,它可以容易的翻译为LC-3机器指令。到这儿,我们有

x3000:0101010010100000

LC-3汇编器继续移动,翻译下一个指令(0C行),不幸的是,因为它不明白符号地址PTR的意思,所以无法翻译。在此,汇编器受到打击,汇编过程失败。

为了防止这种情况的发生,汇编过程需要“两趟”完整的对整个汇编语言程序的扫描(从开始到.END)。“第一趟”扫描的目的是标识出符号名(或标记)对应的真实的二进制地址。这个对应的集合就是符号表。在“第一趟” 扫描中,我们建立符号表,在“第二趟” 扫描中,我们把各条汇编语言指令翻译成相应的机器语言指令。

这样,在“第二趟”扫描时,当汇编器检查0C行时,翻译

LD R3,PTR

它已经知道PTR和x3013之间存在对应关系。这样,它可以容易的翻译0C行为

x3001:0010011000010001

不知道PTR对应的16位地址的问题不再存在。

7.3.3 第一趟:构建符号表

对于我们的目的,符号表仅仅是符号名称和16位存储地址相对应的关系。通过扫描汇编语言程序一趟,我们可获得这些对应关系:标记哪个指令被分配到哪个地址,用分配的地址来标识每一个标记。

回忆我们在必须引用存储单元的地方提供标记的情况,要么是因为它是一个分支指令的目标,要么是因为它包含一个准备加载或存储的数据。因此,如果我们没有任何程序错误,当我们能识别出所有的标记时,我们就能识别所有的在程序中用到的符号地址。

以上是假定我们的整个程序存在于.ORIG和.END这两个伪操作之间,这对于7.2节的程序是成立的。在7.4节,我们将考虑包含多个部分的程序,每一个都有自己的.ORIG 和.END,每一部分分别被汇编。

第一趟扫描开始,在抛弃掉01到09行的注释后,在0A行注意到第一条指令将被分配到地址x3000,我们用地址计数器LC记录分配给每一个指令的地址,地址计数器被初始化为.ORIG中说明的地址,即x3000。

汇编器按顺序检查每一条指令,每检查一条汇编语言指令,LC就增加一次。如果检查的指令里包含标记,符号表中就会有一条针对该标记的记录,把LC里的内容作为它的地址。当遇到.END指令时,第一趟扫描就结束了。

包含标记的第一条指令在13行。因为它是程序中的第五条指令,LC在这一点包含x3004

包含标记的第二条指令在20行,此时LC已经增加到x300B,所以产生符号表的一条纪录,如下:

第一趟扫描后,符号表的记录如下:

7.3.4 第二趟:生成机器语言程序

第二趟扫描是在符号表的帮助下,第二次一行行的遍历汇编语言程序。在每一行,汇编语言指令都被翻译成一条LC-3机器语言指令。

再次从顶部开始,汇编器再次抛弃掉01到09行,因为它们只包含注释。0A行是.ORIG 伪操作,被汇编器用来初始化LC为x3000。汇编器移到0B行,生成机器语言指令0101010010100000,然后,汇编器移到0C行。

这时,当汇编器到达0C行,就可以汇编该指令了,因为它知道PTR对应于x3013。这个指令是LD,它的操作码是0010,目标寄存器(DR)是R3,即011。

PCoffset计算如下:我们知道PTR是地址x3013的标记,增加了1的PC是LC+1,在

此是x3002。因为PTR(x3013)一定是增加了1的PC(x3002)与经过符号扩展的PCoffset 的和,所以PCoffset一定是x0011。把这些放在一起,x3001就被设置成0010 011 000010001,LC被递加为x3002。

注意:为了使用LD指令,加载的源地址,在这个例子中是标记为PTR的地址,必须不得超过当前LD指令的+256或-255个存储单元的地址。如果PTR的地址比LC+1+255大,或比LC+1-256小,那么,偏移量无法在指令的[8:0]位表示。那样,一个汇编错误将会产生,阻止汇编过程成功的完成。幸运的是,PTR足够的靠近LD指令,所以指令可以被准确的汇编。

第二趟扫描继续进行。在每一步,LC加1,同时它所指的单元被分配为翻译的LC-3指令,或者,如果是.FILL的情况,则分配为标明的值。当第二趟扫描遇到.END指令时,汇编结束。

最终的翻译得到的程序在图7.3中。

然而这个过程,即使在不错的一天里也让人感到厌烦。很幸运,你不必亲自去做,留给LC-3汇编器去做。现在,既然你已经了解了LC-3汇编语言,那就没有再用机器语言写程序的必要了。我们可以把我们的程序用符号性的LC-3汇编语言写出来,然后求助于LC-3汇编器,让它把汇编语言程序转化成能在LC-3计算机上运行的机器语言即可。

7.4 超过一个的汇编语言程序

我们学习这一章的目的是让你从计算机的ISA向上一层,介绍汇编语言。尽管现在离C 语言或C++还很远,然而汇编语言已减轻了我们不少的痛苦。我们已经讲了一个基本的“两趟”汇编器如何把汇编语言程序转化成一个LC-3的ISA的机器语言程序。

复杂的汇编语言编程有很多方面是我们的介绍课程未涉及的。然而,我们教授汇编语言的目的不是涉及它的复杂性,而是让大家看到它的简明易懂。在我们结束这一章以前,还有一些附加的部分是我们要思考的。

7.4.1 可执行映像

当计算机开始一个程序的执行时,被执行的实体叫做可执行映像。可执行映像是被几个不同的程序员独立创造出来的模块形成的。每一个模块都分别被翻译成一个目标文件。我们刚刚通过模拟LC-3汇编器,自己执行了翻译的过程。其他模块,一些可能用C语言写的,是通过C语言的编译器翻译的,一些模块是被用户写的,一些模块是由操作系统提供的库程序。每一个目标文件由使用的计算机的ISA中的指令和相关的数据组成。最后一步就是把所有目标模块链接在一起成为一个可执行映像。在程序的执行过程中,取指令、译码……指令周期应用于可执行映像中的指令。

7.4.2 多个目标文件

由多个目标文件形成一个可执行映像是很普遍的。事实上,在现实世界中,大多数的程序会用到操作系统提供的库,也会用到其他程序员生成的模块,用多个目标文件比用单个的更为普遍。

我们的一个计算字符出现个数的程序就是这样的一个例子。这个程序计算在一个文档中的某个字符出现的次数。一个典型的应用把这个程序作为一个模块,把输入数据文档作为另

一个模块。如果是这种情形的话,那么,如图7.2中2E行的x4000所示的一个文件的首地址,在写程序时可能还不知道。如果我们用

PTR .FILL STARTofFILE

代替2E行,那么图7.2的程序就不能被汇编,因为符号表中没有STARTofFILE那一项。那么我们该怎么办呢?

另一方面,如果LC-3汇编语言包含伪操作.EXTERNAL,我们就可以把STARTofFILE 标识为一个被汇编的图7.2的程序未知的地址的符号名。可以实现如下行所示:

.EXTERNAL STARTofFILE

会发送一条信息到LC-3汇编器,告诉它缺少标记STARTofFILE不是程序的错误。相反的,STARTofFILE是其他的被单独翻译的模块中的一个标记。事实上,在我们的例子中,它就是被计算字符出现次数的程序检查的文档中首字符所在的位置的标记。

如果LC-3汇编语言有伪操作.EXTERNAL,而且如果我们把STARTofFILE指定为.EXTERNAL,LC-3就能够在符号表中产生一个STARTofFILE的记录,而且,不是为它分配一个地址,而是将它标记为属于其他模块。在链接的时候,当所有的模块被结合后,链接器(管理“结合”过程的程序)会使用另外的模块的符号表中的STARTofFILE项,完成修改过的2E行的翻译。

通过这种办法,.EXTERNAL伪操作允许一个模块引用另一个模块中的符号单元。正确的翻译被链接器解决。

习题

7.4为如下机器语言程序构建符号表。

7.5对于如下程序:

a.该程序实现了什么?

b.在程序执行完成之后,RESULT中包含了什么值?

7.6为如下机器语言程序构建符号表,并将标记为A、B和D的指令翻译为机器指令。

.ORIG x3000

AND R0,R0,#0

A LD R1,E

AND R2,R1,#1

BRp C

B ADD R1,R1,#-1

C AD

D R0,R0,R1

ADD R1,R1,#-2

D BRp C

ST R0,F

TRAP x25

E .BLKW 1

F .BLKW 1

.END

假设在此模块执行之前,有另一个模块将E中放置了一个正数。上面的程序实现了什么?

7.7写一个LC-3汇编程序,计算存储在R0中的数值中的1的个数,将结果存储于R1中。

例如,R0包含0001001101110000,则程序执行后,R1包含0000 0000 0000 0110。

7.8有一个代码片断如下:

xA400: THIS1 LEA R0,THIS1

xA401: THIS2 LD R1,THIS2

xA402: THIS3 LDI R2,THIS5

xA403: THIS4 LDR R3,R0,#2

xA404: THIS5 .FILL xA400

如果在xA404设置一个断点,在PC= xA400开始时,所有寄存器初始化为0。当程序执行到断点时,各寄存器的值是什么?

7.10如下程序片断有一个错误,请指出并纠正过来。

ADD R3,R3,#30

ST R3,A

HALT

A .FILL #0

7.12如下LC-3程序实现了什么?

7.13 如下程序将存储于单元A、B和C中的数值相加,并存储结果。在代码中有两处错误,

请指出这两处错误,并说明该错误是在汇编时还是在运行时被检测出来。

7.14如下程序的目的是输出一个“%”到显示器上,但是程序员混淆了操作码,请指出使

用错误的一个操作码,并纠正过来。

7.15如下程序实现什么功能?假设一列整数存储于从x4000单元开始的一段连续的存储单

元之中。

7.16假设一列非负整数存储于以x4000单元开始的一段连续的存储单元之中,每个整数值

位于0到30000(十进制)之间,最后一个整数值为-1(即xFFFF)。如下程序实现什么功能?

7.18如下LC-3程序比较两个长度相同的字符串,第一个字符串存储于以存储单元x4000开

始的空间,第一个字符串的存储空间从x4100开始,两个字符串均具有.STRINGZ格式。

如果两个字符串相同,以R5的值为1结束。请填上(a)、(b) 和(c)处空格,将程序补充完整。

7.19当如下LC-3程序执行时,标记为LOOP的存储单元中的指令将执行多少次?

7.20如下LC-3汇编语言模块(a)和(b)分别由不同的程序员完成,都是为了将x0015存储于存

储单元x4000中,请指出两个模块采用的方法有什么不同?

7.21如下LC-3汇编语言程序实现了什么功能?

7.23 如下LC-3程序判断一个字符串是否是“回文”(正向读和反向读都相同的字符串),例

如,“racecar”就是回文。假设字符串起始于存储单元x4000,为.STRINGZ格式。如果该字符串是回文,程序以R5的值为1结束,否则R5为0。请填上(a)—(e)处空格,将程序补充完整。

7.24 如下程序片断将R3向左移4位,但是存在一个错误,请指出该错误并纠正。

计算机导论试卷第1章 课后习题及参考答案

第一章习题 一、选择题 1.世界上第一台通用电子数字计算机诞生于( )。 A、1950年 B、1945年 C、1946年 D、1948年 2.与二进制数(10111.101)2等值的十进制数是( )。 A、23.625 B、23.5 C、39.5 D、39.625 3.与十进制数(101.1)10等值的二进制数是( )。 A、5.5 B、110010.00011 C、11000101.0011 D、1100101.000110011… 4.与十六进制数(1AE.5D)16等值的八进制数是( )。 A、(647.272)8 B、(565.727)8 C、(656.272)8 14 160 16 2 ‘ D、(656.235)8 5.与二进制数(1111111111)2等值的十六进制数是( )。 A、FF3H B、3FFH C、210-1 D、1777O 6. 在PC机中,1MB准确等于( )。 A、1000×1000KB B、1024×1024KB C、1024×1024B D、1000×1000B 7.已知真值X= 11101010,则其补码[X]补等于( )。 A、00010110 B、01101010 C、10010110 D、0010110 8.已知机器数[X]反=11111111,则其真值X为( )。 A、00000000 B、+0000000 C、10000000 D、-0000000 9.已知[X]原=10011110,则其对应的[X]补为( )。 A、01100010 B、11100001 C、-0011110 D、11100010 10.已知A =01011101,B =11101010,则A○+B为( )。 A、10110111 B、01001000 C、11111111 D、10100010 11.1MB等于( )字节? A、10K B、100K C、1024K D、10000K 12.把十进制数215转换成二进制数,结果为( )。 A、10010110 B、11011001 C、11101001 D、11010111 13.ASCII是( )。 A、条形码 B、二~十进制编码 C、二进制码 D、美国信息交换标准码 14.已知3×4=10,则5×6=( )。 A、24 B、26 C、30 D、36 15.已知“B”的ASCII码值是66,则码值为1000100的字符为( )。 A、“C” B、“D” C、“E” D、“F” 16.一个汉字字形采用( )点阵时,其字形码要占72B。 A、16×16 B、24×24 C、32×32 D、48×48 17.已知内存条的容量为16MB,则其对应的地址寄存器最少应有( )。 A、8位 B、16位 C、24位 D、36位 18.MIPS是表示计算机运行速度的一种单位,其含义是( )。

计算机系统概论第一章测验及答案

第1章练习题参考答案 一、判断题(正确Y,错误N) 1.信息是认识主体所感知或所表述的事物运动及其变化方式的形式、内容和效用。Y 2.信息就是数据。N 3.知识来源于信息。Y 4.信息是可以交换的。N 5.信息处理的本质是数据处理。Y 6.经加工后的信息一定比原始的信息更能反映现实的最新状态。N 7.信息技术是指用来取代人们信息器官功能,代替人类进行信息处理的一类信息技术。N 8.集成电路芯片的集成度越高,其工作速度就越快。Y 9.集成电路按用途可分为通用和专用两类,PC机中的存储器芯片属于专用集成电路。N 10.现代微处理器都是大规模集成电路。N 11.现代通信指的是使用电波或光波传递信息的技术。通信的任务就是传递信息。Y 12.通信就是传递信息,因此书、报、磁带、唱片等都是现代通信的媒介。N 13.通信系统中的发送与接收设备称之为“终端”。Y 14.在通信系统中,计算机既可以用作信源也可以用作信宿,接收和发送的都是数字信号。Y 15.通信系统中信源和信宿之间必须存在信道,才能实现信息的传输。Y 16.光纤是绝缘体,不受外部电磁波的干扰。Y 17.微波可以按任意曲线传播。N 18.微波可以经电离层反射传播。N 19.与同轴电缆相比,双绞线容易受到干扰,误码率较高,通常只在建筑物内部使用。Y 20.光纤通信、微波通信、卫星通信、移动通信,它们的任务都是传递信息,只是其传输介质和技术各有不同。Y 21.微波中继站之间的距离大致与塔高平方成正比。一般为50公里左右。Y 22.中低轨道通信卫星相对于地面是静止的。N 23.同步轨道上的卫星数目是有限的。Y 24.卫星通信是微波接力通信向太空的延伸。Y 25.传输信息量与传输速率是相同的概念。N 26.模拟信号是随时间而连续变化的物理量,包含无穷多个值。Y 27.信道的带宽总是指信道上所能通过的信号的频带宽度。N 28.FDM和TDM是指将任意多路信号复合在同一个信道中传输。Y 29.无线电广播中的中波段和短波段都采用调幅方式调制声音信号,而且都利用电离层反射传输信号。N 30.调频广播比调幅广播的声音质量好,原因是调频广播的传输频带较宽,且外界信号不会对声音的频率形成干扰。Y 31.光纤通信是利用光纤传导光信号来实现的,因此光纤不能弯曲。 N 32. 与有线通信相比,地面微波接力通信具有容量大、建设费用省、抗灾能力强等优点。Y 33.电视广播的图像信号和伴音信号都采用调幅方式发送。N 34.在有线电视系统中,通过同轴电缆传输多路模拟电视信号所采用的信道复用技术是频分

第一章 计算机系统概述(二)

四川警安职业学院标准教案纸 课程名称计算机组成原理(第二讲)任课教师陈平授课时间地点多媒体授课班级人数 教学目标1.掌握计算机系统组成 2.了解计算机的层次结构 教学重点计算机系统组成 教学难点计算机系统的层次结构 教学时数2节教学方法讲授法、演示法、实践操作法教学手段多媒体教学 教学内容: 第一章计算机系统概述(二) 1.3.1计算机硬件系统 计算机硬件系统是指构成计算机的所有实体部件的集合,通常这些部件由电路(电子元件)、机械等物理部件组成,它们都是看得见摸得着的,故通常称为硬件,它是计算机系统的物质基础。 绝大多数计算机都是根据冯·诺依曼计算机体系结构的思想来设计的。故具有共同的基本配置,即由五大部件组成:主机部分由运算器、控制器、存储器组成,外设部分由输入设备和输出设备组成,其中核心部件是运算器。这种硬件结构也可称为冯·诺依曼结构,如图1-3所示。 图1-3计算机硬件的基本组成 计算机硬件的基本组成演示 计算机各部件之间的联系是通过两股信息流动而实现的,宽的一股代表数据流,窄的代表控制流。数据由输入设备输入至运算器,再存于存储器中,在运算处理过程中,数据从存储器读入运算器进行运算,运算的中间结果存入存储器,或由运算器经输出设备输出。指令也以数据形式存于存储器中,运算时指令由存储器送入控制器,由控制器产生控制流控制数据流的流向并控制各部件的工作,对数据流进行加工处理。 1.运算器 运算器是完成二进制编码的算术或逻辑运算的部件。运算器由累加器(用符号A表示)、通用寄存器(用符号B表示)和算术逻辑单元(用符号ALU表示)组成,其结构如图1-4所示,其核心是算术逻辑单元。 图1-4运算器结构示意图

第1章计算机系统概论参考答案

第1章 计算机系统概论参考答案 1.什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要? 答:计算机系统是能按照人的要求接受和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统。计算机系统由两大部分组成:硬件(子)系统和软件(子)系统,其中硬件子系统是系统赖以工作的实体,它是有关的各种物理部件的有机的结合。软件子系统由各种程序以及程序所处理的数据组成,这些程序的主要作用是协调各个硬件部件,使整个计算机系统能够按照指定的要求进行工作。 硬件子系统包括中央处理器、主存存储器、输人输出控制系统和各种外围设备。 软件子系统包括系统软件、支援软件、应用软件三个部分。 都很重要,,,硬件是基础,软件是灵魂 2.如何理解计算机系统的层次结构? 答:计算机系统存在着层次结构,从功能上看,现代计算机系统可分为五个层次级别,每一层都能进行程序设计,如图所示。 1. 微程序设计级 这一级是由硬件直接实现的,是计算机系统最底层的硬件系统。由机器硬件直接执行微指令。只有采用微程序设计的计算机系统,才有这一级。如果某一个应用程序直接用微指令来编写,那么可在这一级上运行应用程序。 2. 一般机器级 也称为机器语言级,它由微程序解释机器指令系统。这一级也是硬件级,是软件系统和硬件系统之间的纽带。硬件系统的操作由此级控制,软件系统的各种程序,必须转换成此级的形式才能执行。 3. 操作系统级 由操作系统程序实现。这些操作系统由机器指令和广义指令组成,广义指令是操作系统定义和解释的软件指令,所以这一级也称为混合级。计算机系统中硬件和软件资源由此级管理和统一调度,它支撑着其它系统软件和应用软件,使计算机能够自动运行,发挥高效率的特性。 4. 汇编语言级 给程序人员提供一种符号形式语言,以减少程序编写的复杂性。这一级由汇编程序支持和执行。

计算机系统概论第四章测验及答案

第四章测验 一、判断 1. 网络中的计算机可能利用微波传输数据,它比利用光缆传输数据的效率高。( ) 2. 异步转移模式ATM使多种媒体的信息数据可以同时在ATM信道中传输。( ) 3. Internet提供了电子购物服务,因此网络能传递物品。( ) 4. B-ISDN是一种通信网络,数据在其上是模拟信号传输。( ) 5. ADSL是一种网络联结方式,数据在线上是模拟信号传输。( ) 6. Internet网由主干网、地区网和校园网(或部门网)三级组成。( ) 7. Inertnet网中计算机的IP地址就是它的主机名。( ) 8. 计算机网络是在通信协议控制下实现的计算机互联。( ) 9. 建立计算机网络的最主要目的是实现资源共享。( ) 10. E-mail能在任意的地点,任意的机器上使用(只要它接入Internet)。( ) 11. 工作站本身所具有的硬盘、光盘、程序、数据、打印机等都是该用户的本地资源,网络上其他工作站和服务器的资源称为网络资源。( ) 12. 蓝牙(IEE802.15)是一种近距离无线通信的技术标准,通过增加发射功率可达到100m,适合于办公室或家庭环境的无线网络。( ) 13. 网络中一台微机既可以作为服务器,也可以作为客户机,取决于它是否同时提供共享资源,又使用其它计算机的资源。( ) 14. 网络信息安全主要是指信息在处理和传输中的泄密问题。( ) 15. 在网络信息安全的措施中,身份认证是访问控制的基础。( ) 16. 在密码学中,所有的公共密钥对所有用户都是公开的。( ) 17. 因特网防火墙的作用主要是防止病毒侵害。( ) 18. 包过滤通常安装在路由器上,而且大多数商用路由器都提供了包过滤的功能。( ) 19. 在一台已感染病毒的计算机上读取一CD-ROM光盘中的数据,该光盘没有可能被感染病毒。( ) 20. 全面的网络信息安全方案不仅要覆盖到数据流在网络系统中所有环节,还应当包括信息使用者、传输介质和网络等各方面的管理措施。( ) 21. 以太网使用的集线器(Hub)只是扮演了一个连接器的角色,不能放大或再生信号。( ) 22. 使用Cable Modem需要用拨号后才能上网。( ) 23. 通过Telnet可以远程使用网上提供该服务功能的计算机系统中的计算资源。( ) 24. 总线式以太网通常采用广播式的通信方式。( ) 25. 计算机广域网与局域网的最本质的区别是网络的覆盖围不同。( ) 26. 一个完整的URL包括网络信息资源类型/协议、服务器地址、端口号、路径和文件名。( ) 27. 所有的IP地址都可以分配给用户使用。( ) 28. 域名为https://www.360docs.net/doc/a813299061.html,的服务器,若对应的IP地址为202.119.175.2,则通过主机域名和IP地址都可以实现对服务器的访问。( ) 二、单选 1. 万维网(WWW)引进了超文本的概念,超文本是指_____。 A. 包含的文本 B. 包含多种文本的文本 C. 包含图像的文本 D. 包含多种颜色的文本 2. 电子是_____。 A. 通过网页发布的公告信息 B. 网络信息检索服务 C. 一种利用网络交换信息的非实时服务 D. 通过网络实时交互的信息传递方式

计算机概论第一次作业

1、请简述冯诺依曼计算机体系结构 (1)机器以运算器为中心 (2)采用存储程序原理 (3)存储器是按地址访问的、线性编址的空间。 2、什么是操作系统? 答:操作系统是管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分,负责管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本任务。操作系统的种类很多,各种设备安装的操作系统可从简单到复杂,可从手机的嵌入式操作系统到超级计算机的大型操作系统。 3、什么是数据库管理系统? 答:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms 进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。 4、存储器的主要功能是什么? 答:(1)存储器是具有“记忆”功能的设备,它采用具有两种稳定状态的物理器件来存储信息。这些器件也称为记忆元件。在计算机中采用只有两个数码“0”和“1”的二进制来表示数据。记忆元件的两种稳定状态分别表示为“0”和“1”。日常使用的十进制数必须转换成等值的二进制数才能存入存储器中。计算机中处理的各种字符,例如英文字母、运算符号等,也要转换成二进制代码才能存储和操作。 5、计算机硬件有哪些部件,各部件的作用是什么? 电子计算机硬件由运算器、控制器、存储器、输入设备和输出设备组成,运算器和控制器集成在一起统称为中央处理器(CPU)。计算机各部件通过总线连接形成有机整体,微机总线有三种:地址总线、控制总线和数据总线。 (1)、运算器的主要功能是:完成算术运算和逻辑运算; (2)、控制器的功能是:协调指挥计算机各部件工作; (3)、存储器的主要作用是:存储程序和数据,实现记忆的功能。 (4)、输入设备的功能是:输入数据并转换为机内信息存储; (5)、输出设备的作用是:将机内信息转换为便于识别、处理和使用的字符、图形,并输出显示。

计算机系统概论_随堂练习及答案考试用

第一章计算机系统概论 1. 大约(C)年,计算机的运算速度提高10倍,成本降为原来的1/10.C、5~8 2. 计算机划为巨型机、大型机、中型机、小型机、微型计算机和单片机的依据是(D )D 整机性能 3. 第四代计算机的主要逻辑元件采用的是D)大规模和超大规模集成电路 4. 从第一台计算机诞生到现在的50 多年中按计算机采用的电子元器件来划分,计算机发展经历了( D )个阶段。 D. 5 1. 计算机硬件的五大基本构件包括:运算器、存储器、输入设备、输出设备和B)控制器 2. 通常所说的I/O 设备指的是A)输入输出设备 3.CPU 要能与外设通信必须要 有:C)接口电路 4.现代计算机之所以严格地按照时间的先后顺序进行操作,主要因为有 ( B )。 B. 时序部件 1.计算机软件系统一般包括( C )。 C. 系统软件和应用软件 2.系统软件中最重要的是( A) 。 A.操作系统 3.数据库管理系统是一种(D)。 D 系统软件 1.下列不属于计算机的性能评价指标的是( C ) D. 主频 2.计算机的字长是指(D)D计算机每次运算包含的位数 3. MTBF 表示C 、故障平均间隔时间 1. 计算机系统采用分层次逐级实现,最底层的是( A )A、汇编语言级 2. 计算机系统的软硬件功能划分不取决于下列哪种因素( D )D、体积 第二章 1. 机器数10000001B它所代表的数(B )。 B.-127 2. 二进制数-101101B 的原码是( B )10101101B 3. 二进制数-101101B 的反码是( C )C、11010010B 4. 二进制数-101101B 的补码是( B )B、11010011B 5. 二进制数-101101B 的移码是(B )B、01010011B 6. 浮点数规格化的目的是( C )C、使数的浮点表示是唯一的 7.下列关于双精度格式的浮点数的说法错误的是(C )C符号位2位 8.在计算机中,用于汉字信息的存储、交换、检索等操作的是(B)。B.汉字内 码 9.五笔字型输入法属于(B )B)形码输入 10.下列关于奇偶校验码错误的描述是(C ) C只能发现偶数位错 1.设X=-0.1010 ,Y=-0.0100 ,则用补码定点加法求X+Y的和为 (B) B、 1.0010 2.设X=-0.1010 ,Y=-0.0100 ,则用原码定点加法求X+Y的和为(D) D、 1.1110 3.运算中会产生溢出的是( C )C、X=0.1011Y=-0.1101求[X-Y]补1.在计算机中,实现乘法或除法时采用下列哪一种编码方式最方便( C )C 原码 2.设X=-0.1011 ,Y=-0.1101 ,则用补码一位乘法X*Y 的结果为(C) C、0. 10001111 1. 下列关于补码定点除法说法错误的是(D )D、被除数与除数异号时,做凶补+[-Y]补 1. 下列不是逻辑运算的特点的是(C)C、位之间存在进位 2. 关于锁存器的说法正确的是(B )B、比触发器简单 3. 下列部件中,在单总线运算器中不可能出现的部件是(C )C总线旁路器 1. 浮点数加减法运算中,说法错误的是( A )A、阶和尾数一起运算 2. 下列不属于浮点运算器的部件是(C )C地址寄存器第三章

计算机系统概论_随堂练习及答案

第一章计算机系统概论 1.大约()年,计算机的运算速度提高10倍,成本降为原来的1/10. A、10~12 B、5~10 C、5~8 D、6~9 参考答案:C 2.计算机划为巨型机、大型机、中型机、小型机、微型计算机和单片机的依据是() A、价格 2、体积 C、体系结构 D、整机性能 参考答案:D 3.第四代计算机的主要逻辑元件采用的是 A) 晶体管 B) 小规模集成电路 C) 电子管 D) 大规模和超大规模集成电路 参考答案:D 4.从第一台计算机诞生到现在的50多年中按计算机采用的电子元器件来划分,计算机发展经历了()个阶段。 A. 4 B. 6 C. 7 D. 5 参考答案:D 1.计算机硬件的五大基本构件包括:运算器、存储器、输入设备、输出设备和 A) 显示器 B) 控制器 C) 磁盘驱动器 D) 鼠标器 参考答案:B 2.通常所说的I/O设备指的是 A) 输入输出设备 B) 通信设备 C) 网络设备 D) 控制设备 参考答案:A 3. CPU要能与外设通信必须要有: A) 寄存器 B) 存储器 C) 接口电路 D) 网线 参考答案:C 4.现代计算机之所以严格地按照时间的先后顺序进行操作,主要因为有()。 A.开关电路 B. 时序部件 C. 接口电路 D. 协处理器 参考答案:B 1.计算机软件系统一般包括()。 A. 操作系统和应用软件 B. 系统软件和管理软件 C. 系统软件和应用软件 D. 操作系统、管理软件和各种工具软件 参考答案:C

2.系统软件中最重要的是( )。 A. 操作系统 B. 语言处理程序 C. 工具软件 D. 数据库管理系统 参考答案:A 3.数据库管理系统是一种( )。 A.应用软件 B.工具软件 C.免费软 件 D.系统软件 参考答案:D 1.下列不属于计算机的性能评价指标的是() A.机器字长 B.指令系统 C.操作系统 D.主频 参考答案:C 2.计算机的字长是指() A、地址总线的位数 B、数据总线的位数 C、操作系统支持的位数 D、计算机每次运算包含的位数参考答案:D 3. MTBF表示 A、存储器大小 B、Cache大小 C、故障平均间隔时间 D、CPU的核的个数 参考答案:C 1.计算机系统采用分层次逐级实现,最底层的是() A、汇编语言级 B、机器语言级 C、微程序级 D、操作系统级 参考答案:C 2.计算机系统的软硬件功能划分不取决于下列哪种因 素() A、价格 B、速度 C、可靠性 D、体积 参考答案:D 第二章 1.机器数10000001B它所代表的数( )。 A.-1 B.-127 C.129 D.以上均有可能 参考答案:B 2.二进制数-101101B的原码是() A、10110100B B、10101101B C、00101101B D、10110111B 参考答案:B 3.二进制数-101101B的反码是() A、11001011B B、11010011B C、11010010B D、11110111B 参考答案:C 4.二进制数-101101B的补码是() A、11001011B B、11010011B C、11010110B D、11110111B 参考答案:B

计算机导论第一章课后练习答案

1.1节 1. 上面的两个输入中有且只有一个必须为1,且最下面的输入必须为1。 2. 下面的输入1被NOT门取反为0,使得AND门的输出变为0。因此,OR门的2个输入均为0(记 住,触发器上面的输入保持为0),因此OR门的输出变成0。这就意味着,当触发器下面的输入变回0,AND门的输出仍将保持0。 3. 上面的OR门的输出将变为1,使得上面的NOT门得到一个输出0。这会使得下面的OR门得到 一个输出0,并使得下面的NOT门得到一个输出1。这个1被看作是触发器的输出,同时反馈给了上面的OR门,这时,它将该门的输出保持为1,即使在触发器的输入已经变回0。 4. 当时钟为0时,触发器将屏蔽掉电路的输入值。当时钟为1时,触发器将响应电路的输入值。 5. a. 整个电路等同于单个XOR门。 b. 这个电路也等同于单个XOR门。 6. a. 6AF2 b. E85517 c. 48 7. a. 01011111110110010111 b. 0110000100001010 c. 1010101111001101 d. 0000000100000000 1.2节 1. 在第一种情况下,地址为6的存储单元最后结果为值5。在第二种情况下,它的最后结果值为8。 2. 在步骤1当新值写入3号存储单元时,该单元的原始值被擦去了。因此,步骤2并没有将3号存 储单元中原始值存入2号存储单元中。结果是:两个存储单元最后的值都是最初2号存储单元中的值。正确的步骤如下: 步骤1,将2号存储单元中的内容移到1号存储单元。 步骤2,将3号存储单元中的内容移到2号存储单元。 步骤3,将1号存储单元中的内容移到3号存储单元。 3. 32768位。 1.3节 1. 有较快的数据检索速度以及较高的传输速率。 2. 这里要记住的一点是,与计算机内部运作速度相比较,机械动作的缓慢表明:我们应该把必 须移动读/写磁头的次数减到最少。如果我们要在写满磁盘的一面后再开始下一面,那么当我们在写满一个道时都必须移动一次读/写磁头。因此磁头移动的次数就大约等于磁盘两个盘面所有道的总和。不过,如果我们通过电子方式在磁盘表面之间切换读/写磁头,我们就只需要在每个柱面写满时才移动一次读/写磁头了。 3. 在这个应用中,必须从海量存储系统中随机地检索信息,而对于CD和DVD等设备中使用的螺 旋系统,这种方法是很耗时的。(而且,现在的技术还无法使CD和DVD设备中的某部分数据进行更新。) 4. 存储空间是以物理扇区为单元分配的(事实上,在大多数情况下是以扇区组为单元)。如果最 后一个物理扇区没有被写满,可以再填加新的文本,而不需要增加此文档的存储空间。如果最后一个物理扇区已经被写满,那么无论要给该文档填加什么内容,都需要分配额外的物理扇区。 5. 闪存驱动器不需要物理运动,因此所需要的响应时间比较短,而且不会有物理损耗。 6. 缓冲区是一个临时的数据存储区域,通常用作解决数据源与最终目的地不一致性的手段。1.4节

第1章-计算机系统概论

第1章计算机系统概论 本章系统地介绍计算机系统的基本知识,要求学生了解计算机的分类与应用,掌握计算机的硬件组成,软件与硬件的关系以及计算机系统的层次结构。 重点提示: ●计算机系统的工作原理 ●计算机硬件系统的几大部件及其功能 ●计算机软件系统 1-1重点难点指导 1-1-1计算机系统简介 ENIAC(电子数字积分计算机,Electronic Numerical Integrator And Computer)是第一台正式运转的通用电子计算机。自从这台计算机问世以来,从使用的元器件角度来看,计算机的发展大致经历了4代的变化。 ●第一代(1946~1954)电子管计算机; ●第二代(1955~1964)晶体管计算机; ●第三代(1965~1973)集成电路计算机; ●第四代(1974~现在)大规模和超大规模集成电路计算机。 在计算机系统发展历史中,摩尔定律(Moore’s Law)是一个很重要的概念。Intel的创始人之一高登·摩尔(Gordon Moore)于1965年提出了著名的摩尔定律,预言单位平方英寸芯片的晶体管数目每过18到24个月就将增加一倍。 计算机的分类方法有很多种,主要的分类方式有: 按所处理的信号分类:⑴模拟计算机;⑵数字计算机。 按硬件的组合及用途分类:⑴专用计算机;⑵通用计算机。 按计算机的规模分类:⑴微型计算机;⑵工作站;⑶小型计算机;⑷主机;⑸小巨型计算机;⑹巨型计算机。 现实中的分类:⑴服务器;⑵工作站;⑶台式机;⑷便携机;⑸手持机。 计算机系统就是按人的要求接收和存储信息,自动地进行数据处理和计算,并输出结果信息的系统。计算机系统由硬件(子)系统和软件(子)系统组成。前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统赖以工作的实体。后者是各种程序和文

计算机概论 平时作业参考答案

计算机概论平时作业参考答案 1、简述人工智能。 答:人工智能,英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 2、简述虚拟内存。 答:虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。 3、简述计算机总线工作原理。 答:计算机系统总线在微型计算机中的地位,如同人的神经中枢系统,CPU通过系统总线对存储器的内容进行读写,同样通过总线,实现将CPU内数据写入外设,或由外设读入CPU。微型计算机都采用总线结构。总线就是用来传送信息的一组通信线。微型计算机通过系统总线将各部件连接到一起,实现了微型计算机内部各部件间的信息交换。一般情况下,CPU提供的信号需经过总线形成电路形成系统总线。系统总线按照传递信息的功能来分,分为地址总线、数据总线和控制总线。这些总线提供了微处理器(CPU)与存储器、输入输出接口部件的连接线。可以认为,一台微型计算机就是以CPU为核心,其它部件全“挂接”在与CPU 相连接的系统总线上。这种总线结构形式,为组成微型计算机提供了方便。人们可以根据自己的需要,将规模不一的内存和接口接到系统总线上,很容易形成各种规模的微型计算机。 4、简述计算机编码及常用编码。 答:在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则。常用编码有:ASCII、Unicode、UTF-8等。 5、简述冯诺依曼计算机体系结构。 答:冯·诺伊曼体系结构冯·诺伊曼理论的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。人们把冯·诺伊曼的这个理论称为冯·诺伊曼体系结构 6、什么是操作系统? 答:操作系统是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。操作系统的类型非常多样,不同机器安装的操作系统可从简单到复杂,可从移动电话的嵌入式系统到超级计算机的大型操作系统。许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统集成了图形用户界面,而有些仅使用命令行界面,而将图形用户界面视为一种非必要的应用程序。 7、什么是数据库管理系统?

操作系统概念第七版习题答案(中文版)完整版

1.1 在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。a. 列出此类的问题b.在一个分时机器中,能否确保像在专用机器上一样的安全度?并解释之。 Answer:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源(CPU,内存,磁盘空间,外围设备)b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事。 1.2 资源的利用问题在各种各样的操作系统中出现。试例举在下列的环境中哪种资源必须被严格的管理。(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑 Answer: (a)大型电脑或迷你电脑系统:内存和CPU 资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU 资源(c)手持电脑:功率消耗,内存资源 1.3 在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好? Answer:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义。充分利用该系统可以对用户的问题产生影响。比起个人电脑,问题可以被更快的解决。还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源。当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,。 1.4 在下面举出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时 Answer:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。批处理程序在两种环境中都是非必需的。 1.5 描述对称多处理(SMP)和非对称多处理之间的区别。多处理系统的三个优点和一个缺点? Answer:SMP意味着所以处理器都对等,而且I/O 可以在任何处理器上运行。非对称多处理有一个主处理器控制系统,与剩下的处理器是随从关系。主处理器为从处理器安排工作,而且I/O 也只在主处理器上运行。多处理器系统能比单处理器系统节省资金,这是因为他们能共享外设,大容量存储和电源供给。它们可以更快速的运行程序和增加可靠性。多处理器系统能比单处理器系统在软、硬件上也更复杂(增加计算量、规模经济、增加可靠性) 1.6 集群系统与多道程序系统的区别是什么?两台机器属于一个集群来协作提供一个高可靠性的服务器的要求是什么? Answer:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务。另一方面,多道程序系统可以被看做是一个有多个CPU 组成的单一的物理实体。集群系统的耦合度比多道程序系统的要低。集群系统通过消息进行通信,而多道程序系统是通过共享的存储空间。为了两台处理器提供较高的可靠性服务,两台机器上的状态必须被复制,并且要持续的更新。当一台处理器出现故障时,另一台处理器能够接管故障处理的功能。

第一章计算机网络概论习题

第一章计算机网络概述 一、选择题 1.在网络上只要有一个结点故障就可能会使整个网络瘫痪的网络结构是()。 A.星型B、总线型C、环型D、分布式网络 2.一般来说,用来组织广域网的拓扑方案是()。 A.总线型网 B.星型网 C.环型 D.分布式网 3.以下关于星型网说法正确的是(假定集中区所用设备是集线器)()。 A.一旦集线器出现故障,则整个网络就会崩溃 B.如果有一段网络介质断裂了,则整个网路不能正常工作 C.因为网络的唯一集中区位于集线器处,所以星型拓扑结构易于维护 D.星型网络消除了端用户对中心系统的依赖性 4.以下关于局域网叙述不正确的是()。 A.局域网覆盖的地理范围是有限的 B.局域具有较高的就数据传输速率和误码率 C.局域网的主要技术要素是:网络拓扑结构、传输介质和介质访问控制方法 D.局域网易于建立、维护和扩展 5.最先出现的计算机网络是()。 A.ARPANET B.E thernet C.B ITNET D.Internet 6.计算机网络的主要目的是实现()。 A.数据通信B、资源共享C、远程登录D、分布式处理 7.计算机网络与计算机通信网络的根本区别是使用了()。 A.通信控制处理机 B.调制解调器 C.网络操作系统软件 D.集中器 8.消息服务的典型应用是()。 A.天气预报 B.文件归档 C.电子邮件 D.数据移动 9.组件计算机网络的目的是为了能够相互共享资源,这里的计算机资源主要是指硬件、软 件与()。 A.大型机 B.通信系统 C.服务器 D.数据 10.下面哪一项不是局域网的拓扑结构?() A.总线型

B.环型 C.星型 D.全互联性 11.一个拥有80个职员的公司,不久的将来将扩展到100多人,每个员工拥有一台计算机,现要求将这些计算机连网,实现资源共享,最能满足此公司要求的网络类型是()。 A.主机/终端 B.对等方式 C.客户/服务器方式 D.Internet 12.计算机网络拓扑结构主要取决于它的()。 A.资源子网 B.F DDI网 C.通信子网 D.城域网 13.广域网通常比局域网慢的主要原因是()。 A.广域网要更多的中转,而每个中转需要花费时间 B.广域网为了覆盖大的范围,通常采用慢速的公众交换网络 C.广域网的硬件技术没有局域网的硬件技术先进 D.广域网的软件技术没有局域网的软件技术先进 14.局域网最基本的网络拓扑类型主要有()。 A.总线型 B.总线型、环型、星型 C.总线型、环型 D.总线型、星型、网状型 15.()是连接网络基本模块的桥梁,提供各种连接技术的信息交换技术。 A.计算机系统 B.数据通信系统 C.网络操作系统 D.通信控制处理机 16.在计算机网络发展过程中,()对计算机网络的形成与发展影响最大。 A.OCTOPUS B.Newhall C.DA TAPAC D.ARPANET 17.在计算机网络组成结构中,()负责完成网络数据传输、转发等任务。 A.资源子网 B.局域网 C.通信子网 D.广域网 18.在计算机网络中完成通信控制功能的计算机是()。 A.通信控制处理机 B.通信线路 C.主机算计 D.终端

计算机专业导论课后习题答案汇编(第三版).doc

计算机导论课后习题答案汇编 第一章一、简答题 1、什么是计算机? 计算机系统是一种能够按照事先存储的程序,自动、高速的对数据进行输入、处理、输出和存储的系统。一个计算机系统包括硬件和软件两大部分。2、解释冯·诺依曼所提出的\存储程序\概念。 把程序和数据都以二进制的形式同意存放在存储器中,由机器自动执行。不同的程序解决不同的问题,实现了计算机通用计算的功能,3、计算机有哪些主要的特点?运算速度快`精度高 计算机的字长越长,其精度越高,现在世界上最快的计算机每秒可以运算几十万次以上。一般计算机可以有市纪委甚至几十位(二进制)有效数字,计算精度可由千分之几到百万分之几,是任何计算工具所望尘莫及的。具有逻辑判断和记忆能力 计算机有准确的逻辑判断能力和高超的记忆能力。能够进行各种逻辑判断,并根据判断的结果自动决定下一步应该执行的指令。高度的自动化和灵活性 计算机采取存储程序方式工作,即把编号的程序输入计算机,机器便可依次逐条执行,这就使计算机实现了高度的自动化和灵活性。 4、计算机有哪些主要的用途?(1)科学计算(2)数据处理(3) 实时控制(4)人工智能 (5)计算机辅助工程和辅助教育(6)娱乐和游戏 5、计算机发展中各个阶段的主要特点是什么?第一代计算机特征是采用电子管作为主要元器件第二代计算机特征是采用晶体管作为主要器件第三代计算机特征是半导体中小规模集成电路第四代计算机特征是大规模和超大规模集成电路6信息化社会的主要特点是什么?1·建立完善的信息基础设施2·采用现金的信息技术3·建立广泛的信息产业4·拥有高素质的信息人才5·构建良好的信息环境 7、信息化社会对计算机人才的素质和知识结构有哪些要求? 在信息化社会中所需要的计算机人才是多方位的,不仅需要研究型、设计型的人才,而且需要应用型的人才;不仅需要开发型人才而且需要维护型、服务型、操作型的人才。要求计算机人才具有较高的综合素质和创新能力,并对于新技术的发展具有良好的适应性。8、说明计算机科学与技术学科的知识体系及知识领域、知识单元和知识点的含义。 9计算机科学的研究范畴主要包括哪些? 计算机科学技术的研究范畴主要包括计算机理论、硬件、软件、网络及其应用等。 第二章一简答题 1 什么是数制?采用位权表示法的数制具有哪3个特点?按进位的原则进行计数称为进位计数制,简称数制。特点:(1)数字的总个数等于基数。(2)最大的数字比基数小1 (3)每个数都要乘以基数的幂次,该幂次由每个数字所在的为止决定。 2 二进制的加法和乘法的运算规则是什么? (1)加法运算规则:0+0=0 0+1=1 1+0=1 1+1=10 (2)乘法运算法则0*0=0 0*1=0 1*0=0 1*1=1 3 十进制整数转换为非十进制证书的规则是什么? (1)十进制整数转换为非十进制整数除基取余,先余为低,后余为高。(2)乘基取整,先整为高,后整为低。 4 将下列的十进制数转换成二进制数:6,12,286,1024,0.25,7.125,2.62 5 答:(6)

新版计算机概论第一章作业

1、在计算机中,常用的数制是_________。 A、十六进制 B、二进制 C、八进制 D、十进制 你的回答:B (√) 参考答案:B 2、在微型计算机系统中,微处理器又称为_________。 A、RAM B、ROM C、CPU D、VGA 你的回答:C (√) 参考答案:C 3、计算机的硬件系统由______各部分组成。 A、控制器、运算器、存储器、输入输出设备。 B、控制器、显示器、打印机、主机、键盘。 C、CPU、主机、显示器、打印机、硬盘、键盘。 D、主机箱、集成块、显示器、电源、键盘

你的回答:A (√) 参考答案:A 4、下面几个数中,最小的数是_________。 A、二进制数100010010 B、八进制数420 C、十进制数273 D、十六进制数10F 你的回答:D (√) 参考答案:D 5、软磁盘和硬磁盘都是()。 A、海量存储器 B、计算机的外存储器 C、计算机的内存储器 D、备用存储器 你的回答:B (√) 参考答案:B 6、在下列设备中,()不能作为微型计算机的输出设备。 A、绘图仪 B、键盘 C、打印机

你的回答:B (√) 参考答案:B 7、十进制数10.125转换为二进制数为___________。 A、1011.010 B、1001.111 C、1010.001 D、1100.101 你的回答:C (√) 参考答案:C 8、计算机病毒是一种___________。 A、特殊的芯片 B、人为编制地特殊程序 C、微生物 D、能传染的生物病毒 你的回答:B (√) 参考答案:B 9、计算机的发展经历了机械式计算机、()式计算机和电子计算机三个阶段。

第一章 计算机系统概论

第一章计算机系统概论 一、填空题 1.1946年,世界上第一台数字电子计算机ENIAC在______美国_____诞生。 2.从硬件来看,计算机先后经历了电子管、晶体管、中小规模集成电路以及大和超大规模集成电路四个发展阶段。 3.微型计算机也称为个人计算机,英文简称__PC__机。 4.计算机的出现,被称为第 4 次产业革命。 5.一个完整的计算机系统应包括硬件系统和软件系统两个部分。 6.计算机的应用领域有科学计算、过程检测与控制、信息管理、计算机辅助系统、人工智能五个方面。 7.只有1和0的数字系统这称为标准数字系统。 8.对计算机来说,所谓指令只是一堆0和1的组合。 9.8位二进制位称为一个位。 10.二进制数据的长度单位有B、KB、MB、GB、TB。 11.1.4MB=1.4×1024KB,0.02GB=0.02×1024×1024KB。 12.二进制数1011011等于十进制数___91__,十进制数78等于二进制数__1001110_________。 13.ASCⅡ码是一种__7__位进制编码。 14.我国标准的汉字字符集的编码采用__GB2312-80__编码。 15.微型计算机的硬件系统通由运算器、控制器、内存储器、外存储器、输入设备和输出设备六部分组成。 16.中央处理器简称为CPU,由两部分组成:运算器和控制器是整个计算机系统的指挥中心。 17.存储器一般分为内存储器和外存储器两种类型。 18.内存储器接其功能可以分为ROM和RAM两种。 19.通常所说微机的内存容量是指RAM的容量。 20.磁盘存储器是一种外部存储器。 21.磁盘存储器主要有软盘和硬盘两种。 22.CD-ROM的中文名称为只读紧凑式光盘。 23.扫描仪是一种输入设备,打印机是一种输出设备。 24.没有软件的计算机称为裸机。

计算机系统概论_随堂练习及答案考试用

计算机系统概论_随堂 练习及答案考试用 https://www.360docs.net/doc/a813299061.html,work Information Technology Company.2020YEAR

第一章计算机系统概论 1. 大约(C)年,计算机的运算速度提高10倍,成本降为原来的1/10.C、5~8 2. 计算机划为巨型机、大型机、中型机、小型机、微型计算机和单片机的依据是( D )D、整机性能 3. 第四代计算机的主要逻辑元件采用的是D) 大规模和超大规模集成电路 4. 从第一台计算机诞生到现在的50多年中按计算机采用的电子元器件来划分,计算机发展经历了( D )个阶段。D. 5 1. 计算机硬件的五大基本构件包括:运算器、存储器、输入设备、输出设备和 B) 控制器 2. 通常所说的I/O设备指的是A) 输入输出设备 3. CPU要能与外设通信必须要有: C) 接口电路 4. 现代计算机之所以严格地按照时间的先后顺序进行操作,主要因为有 ( B )。 B. 时序部件 1. 计算机软件系统一般包括( C )。C. 系统软件和应用软件 2. 系统软件中最重要的是( A )。A. 操作系统 3. 数据库管理系统是一种( D )。D系统软件 1. 下列不属于计算机的性能评价指标的是(C )D.主频 2. 计算机的字长是指( D )D、计算机每次运算包含的位数 3. MTBF表示 C、故障平均间隔时间 1. 计算机系统采用分层次逐级实现,最底层的是( A )A、汇编语言级 2. 计算机系统的软硬件功能划分不取决于下列哪种因素( D )D、体积 第二章 1. 机器数10000001B它所代表的数( B )。B.-127 2. 二进制数-101101B的原码是( B )10101101B 3. 二进制数-101101B的反码是( C )C、11010010B 4. 二进制数-101101B的补码是( B )B、11010011B 5. 二进制数-101101B的移码是(B )B、01010011B 6. 浮点数规格化的目的是( C )C、使数的浮点表示是唯一的 7. 下列关于双精度格式的浮点数的说法错误的是(C )C、符号位2位 8. 在计算机中,用于汉字信息的存储、交换、检索等操作的是( B )。B.汉字内码 9. 五笔字型输入法属于(B )B) 形码输入 10. 下列关于奇偶校验码错误的描述是( C )C、只能发现偶数位错 1. 设X=-0.1010,Y=-0.0100,则用补码定点加法求X+Y的和为(B )B、1.0010 2. 设X=-0.1010,Y=-0.0100,则用原码定点加法求X+Y的和为(D )D、1.1110 3. 运算中会产生溢出的是( C )C、X=0.1011 Y=-0.1101 求[X-Y]补 1. 在计算机中,实现乘法或除法时采用下列哪一种编码方式最方便( C ) C、原码 2. 设X=-0.1011,Y=-0.1101,则用补码一位乘法X*Y的结果为(C ) C、0. 10001111 1. 下列关于补码定点除法说法错误的是( D )D、被除数与除数异号时,做[X]补+[-Y]补 1. 下列不是逻辑运算的特点的是( C )C、位之间存在进位 2. 关于锁存器的说法正确的是( B )B、比触发器简单 3. 下列部件中,在单总线运算器中不可能出现的部件是( C )C、总线旁路器 1. 浮点数加减法运算中,说法错误的是( A )A、阶和尾数一起运算 2. 下列不属于浮点运算器的部件是( C )C、地址寄存器

相关文档
最新文档