(I)计组课后答案(第十章部分)(DOC) 下载本文

内容发布更新时间 : 2024/5/14 18:01:25星期一 下面是文章的全部内容请认真阅读。

计算机组成课后答案

第十章

思考题

10.1机器指令的典型元素是什么?

答:机器指令的典型元素是操作码,源操作数的引用,结果操作数的引用,下一指令引用。

10.2什么类型的位置能保存源和目的的操作数? 答:主存(或虚存),寄存器(I/O接口的端口)。

10.3若一个指令容有4个地址,每个指令的用途是什么? 答:包括两个源操作数,一个结果,以及下一指令地址。

10.4列出并简介指令集设计的5个重要问题? 答:

(1)操作指令表:应提供多少和什么样的操作,操作将是何等的复杂。 (2)数据类型:对几种数据类型完成操作。

(3)指令格式:指令的(位)长度、地址数目、各个字段的大小等。 (4)寄存器:能被指令访问的CPU寄存器数目以及它们的用途。 (5)寻址方式:指定操作数地址的产生方式。

10.5在机器指令集中,典型的操作数类型是什么? 答:地址、数值、字符、逻辑数据。

10.6压缩十进制表示数与IRA字符代码之间的关系是什么?

答:数字0到9的IRA代码的样式是011****,其中后4位恰恰是0000到1001,即压缩十进制数的编码。因此7位IRA代码与4位压缩十进制表示之间转换是十分方便的。

10.7算数移位和逻辑移位有何区别? 答:

逻辑移位(无符号<<,>>,java>>>>):一个字的各位左移或右移,一端移出的位丢失,另一端是0被移入。

算术移位(有符号补码<<,>>):把数据看做是有符号整数而不移符号位。 算数右移(有符号补码>>):左边符号位(高位)填充。

算数左移:无溢出时,算数左移和逻辑左移都相当于乘以2。如果出现溢出,算数左移和逻辑左移将产生不同的结果,但算数左移仍保留数的符号位不变。

10.8为何要控制传递(转移)指令? 答:

(1)实现一个应用需要上千条甚至上百万条指令,若每条指令必须分立的写出,这将会是非常麻烦的事情。若一个表或者列表来处理,则可使用程序循环的方法,

一个指令序列重复执行直到所有的数据被处理。

(2)所有程序都涉及到某种选择,我们希望计算机能在满足某种条件下做某种事情,另一种条件下做另一种事情。

(3)大中型的计算机程序的编写,是一件较困难的任务。若将此任务分成小的片段,每次只工作在另一种事情上,将是有益的。

10.9列出并简要说明生成条件的两种普通方式。列出并简要说明实现条件转移的两种普通方式。

答:大多数机器提供了1位或多位的条件代码,它作为某种操作的结果被设置。可以把这条件代码想象成一个用户可见的短寄存器。

另一种能使三地址指令格式的方法是,在同一条指令内完成比较和指定转移。

10.11列出为过程返回保存返回地址的三种可能位置 答:寄存器,被调过程开始处,堆栈顶部。

10.12什么是可重入过程? 答:可重入过程准许几个通过它的调用同时存在。递归过程就是使用之一特征的。

10.13汇编语言和机器语言有何不同?

答:汇编语言使用符号名地址,而不是机器语言所使用的具体的物理内存地址,比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占用内存空间少等优点。但在编写复杂程序时具有明显的局限性,汇编语言依赖具体的机型,不能通用,也不能在不同机型之间移植。汇编语言是面向具体机型的,他离不开具体计算机的指令系统。

10.14什么是逆波兰表示法?

答:逆波兰表示法,操作数跟随在它的两个操作数之后。不管一个表达式有多复杂,使用逆波兰表示法都不需要括号。

10.15大数在先和小数在先有何不同?

答:对于同样一个多字节数值,大数在先情况,存储器安排成从左到右、从上到下;而小数在先的情况,存储器安排从右到左、从上到下。在两种策略中,每个数据都有同样的地址。在任何一个给定的多字节标量值中,小数在先的字节排序是大数在先的反序,反之亦然。端序不影响结构中数据项的次序。

习题

10.1 a. 23 b. 32 33 10.2 a. 7309

b. 582

c. 1010 不是一个压缩十进制数,所以表达式错误! 10.3 a. 0; 255 b. –127; 127 c. –127; 127 d. –128; 127 e. 0; 99 f. –9; +9

10.4

1698 0001 0110 1001 1000 +1798 0001 0111 1000 0110 0010 1100 10001 1110 1 1 1 0110 0011 1110 0110 10100 0110 1000 1 0100

3484 0011 0100 1000 0100 10.5

0736 +9674 1 0410

结果是:0410 10.6

表达式 : X=(A+B*C)/(D-E*F) 零地址 PUSH A PUSH B PUSH C MUL 一地址 LOAD E MUL F STORE T LOSD D 二地址 MOVE R0,E MUL R0,F MOVE R1,D SUB R1,R0 三地址 MUL R0,E,F SUB R0,D,R0 MUL R1,B,C ADD R1,A,R1