《计算机组成原理第四章答案.doc》由会员分享,可在线阅读,更多相关《计算机组成原理第四章答案.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date计算机组成原理第四章答案第3章习题参考答案第4章习题参考答案1ASCII码是7位,如果设计主存单元字长为32位,指令字长为12位,是否合理?为什么?答:不合理。指令最好半字长或单字长,设16位比较合适。一个字符的ASCII是7位,如果设计主存单元字长为32位,则一个单元可以放四个字符,这也是可以的,只是在存取单个字符时,要多花些时间而已,不过,一条指令至少占一个单元,
2、但只占一个单元的12位,而另20位就浪费了,这样看来就不合理,因为通常单字长指令很多,浪费也就很大了。2假设某计算机指令长度为32位,具有双操作数、单操作数、无操作数三类指令形式,指令系统共有70条指令,请设计满足要求的指令格式。答:字长32位,指令系统共有70条指令,所以其操作码至少需要7位。双操作数指令7位OP12位操作数12位操作数单操作数指令7位OP25位操作数无操作数指令7位OP-3指令格式结构如下所示,试分析指令格式及寻址方式特点。15 109 87 43 0OP-目标寄存器源寄存器答:该指令格式及寻址方式特点如下:(1)单字长二地址指令。(2)操作码字段OP可以指定26=64种操
3、作。(3)源和目标都是通用寄存器(可分指向16个寄存器)所以是RR型指令,即两个操作数均在寄存器中。(4)这种指令结构常用于RR之间的数据传送及算术逻辑运算类指令。4指令格式结构如下所示,试分析指令格式及寻址方式特点。 15 10 9 8 7 4 3 015 109 87 43 0OP-源寄存器变址寄存器偏移量(16位)答:该指令格式及寻址方式特点如下:(1) 双字长二地址指令,用于访问存储器。(2) 操作码字段OP可以指定26=64种操作。(3) RS型指令,一个操作数在通用寄存器(选择16个之一),另一个操作数在主存中。有效地址可通过变址寻址求得,即有效地址等于变址寄存器(选择16个之一)
4、内容加上位移量。 5指令格式结构如下所示,试分析指令格式及寻址方式特点。15 1211 98 65 32 0OP寻址方式寄存器寻址方式寄存器源地址目标地址答:该指令格式及寻址方式特点如下:(1) 该指令为单字长双操作数指令,源操作数和目的操作数均由寻址方式和寄存器构成,寄存器均有8个,寻址方式均有8种。根据寻址方式的不同,指令可以是RR型、RS型、也可以是SS型; (2) 因为OP为4位,所以最多可以有16种操作。6一种单地址指令格式如下所示,其中为I间接特征,X为寻址模式,D为形式地址,I、X、D组成该指令的操作数有效地址E,设R为变址寄存器,R1为基值寄存器,PC为程序计数器,请在下表中第
5、一列位置填入适当的寻址方式名称。寻址方式名称IX有效地址E000011000110110010E=DE=(PC)+DE=(R)+DE=(R1)+DE=(D)E=(R1)+D),D=0答: 直接寻址 相对寻址 变址寻址 基址寻址 间接寻址 先基址后间接寻址7某计算机字长为32位,主存容量为64K字,采用单字长单地址指令,共有40条指令。试采用直接、立即、变址、相对四种寻址方式设计指令格式。答:根据题意,40种指令至少需6位OP;四种寻址方式至少需用2位表示;主存为64K,则地址需要16位,而机器字长为32位,可设计如下格式: 31 2625 1817 1615 0OP-寻址方式XD设:寻址方式X
6、=00为直接寻址方式,由16位的D直接给出有效地址,EA=D寻址方式X=01为立即寻址方式,由16位的D直接给出操作数,操作数=D寻址方式X=10为变址寻址方式,设变址寄存器为IR,则EA=(IR)+D寻址方式X=11为相对寻址方式,设程序计数器为PC,则EA=(PC)+D(D可正可负)注:IR和PC的位数与机器的字长相等,均为32位8某机字长为32位,主存容量为1M,单字长指令,有50种操作码,采用寄存器寻址、寄存器间接寻址、立即、直接等寻址方式。CPU中有PC,IR,AR,DR和16个通用寄存器。问: (1)指令格式如何安排? (2) 能否增加其他寻址方式?答:(1) 根据题意,50种操作
7、码至少需6位OP;寻址方式可用2位分别表示最多4种寻址方式;用4位编码选择16个通用寄存器之一作为源操作数或目的操作数,因机器字长为32位,固还剩20位可表示形式地址D31 2625 2423 2019 0OP寻址方式寄存器DD字段的寻址方式由25-24位决定,如:寻址方式字段=00,表示D为寄存器寻址,实际使用D中的4位进行寄存器选择;寻址方式字段=01,表示寄存器间接寻址,实际使用D中的4位进行寄存器选择;寻址方式字段=10,表示立即寻址,可使用D的全部确定一个立即数;寻址方式字段=11,表示直接寻址,20位的D可确定一个存储单元。(2) 若将形式地址的位数减少,则可以增加其他的寻址方式9
8、设某机字长为32位,CPU中有16个32位通用寄存器,设计一种能容纳64种操作的指令系统。如果采用通用寄存器作基址寄存器,则RS型指令的最大存储空间是多少?答:根据题意,64种操作至少需6位OP;用2位表示四种寻址方式;寄存器16个源操作数和目的操作数各用4位,因机器字长为32位,固还剩16位可表示形式地址D31 2625 2423 2019 1615 0OP寻址方式源寄存器目的寄存器D如果采用通用寄存器作基址寄存器,因为寄存器为32,位所以RS型指令可寻址空间最大可达232单元。10将表4.9的指令系统设计成二地址格式的指令系统。答:表4.9中的指令共有29条,故操作码字段需要5位;设这些指
9、令支持9种寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、间接寻址、相对寻址、基址寻址、变址寻址、堆栈寻址,则源和目的操作数各需要4位来确定其寻址方式;因字长为32位,故还剩余19位用于表示源和目的操作数的形式地址,可取形式地址为9位,多余的1位可以加在操作码字段。即,格式如下:31 2625 2221 1312 98 0OP目的寻址方式目的操作数源寻址方式源操作数11从以下有关RISC的描述中,选择正确答案。 A采用RISC技术后,计算机的体系结构又恢复到早期的比较简单的情况。 B为了实现兼容,新设计的RISC,是从原来CISC系统的指令系统中挑选一部分实现的。 C. RISC的主
10、要目标是减少指令数。 DRISC设有乘、除法指令和浮点运算指令。答:C12根据操作数所在位置,指出其寻址方式(填空): (1) 操作数在寄存器中,为(A)寻址方式。 (2) 操作数地址在寄存器,为(B)寻址方式。 (3) 操作数在指令中,为(C)寻址方式。 (4) 操作数地址(主存)在指令中,为(D)寻址方式。 (5) 操作数的地址,为某一寄存器内容与位移量之和,可以是(E,F,G)寻址方式。答:A. 寄存器B. 寄存器间接 C. 立即D. 直接E,F,G. 基址、变址、相对13将C语句翻译成MIPS R4000汇编语言代码。C赋值语句是:=(g+h)-(i+j)假设变量、g、h、i、j分别分
11、配给寄存器$s0、$s1、$s2、$s3、$s4。答:该语句翻译成MIPS R4000汇编语句如下:add $s5,$s1,$s2;将g+h的和存入寄存器$s5中($s5=$s1+$s2)add $s6,$s3,$s4;将i+j的和存入寄存器$s6中($s6=$s3+$s4)sub $s0,$s5,$s6;将结果存入寄存器$s0中($s0=$s5-$s6)14将如下MIPS R4000汇编语言翻译成机器语言指令。lw $t0,1200($t1)add $t0,$s2,$t0sw $t0,1200($t1)答:已知MIPS指令的字段值如下表所示,而且寄存器$s0$s7对应的寄存器号为1623(十
12、进制),寄存器$t0$t7对应的寄存器号为815。MIPS指令的字段值指令格式oprsrtrdshamtfunct常数或地址add(加)R0regregreg032-sub(减)R0regregreg034-立即数加I8regreg-常数lw(取字)I35regreg-addresssw(存字)I43regreg-address由此,可写出以上3条指令翻译成机器语言指令如下表所示。3条指令对应的机器语言指令机器语言各字段各字段长度6位5位5位5位5位6位R型oprsrtrdshamtfunctI型oprsrtaddresslw $t0,1200($t1)35981200add $t0,$s2,
13、$t001888032sw $t0,1200($t1)4398120015将下面一条ARM汇编语言指令翻译成用十进制和二进制表示的机器语言指令:ADD r5,r1,r2答:已知ARM汇编指令的指令译码格式如下表所示:ADD、SUB、LDR、STR指令的指令译码格式指令名称condFIopcodeSRnRdoperand2ADD(加)140040regregregSUB(减)140020regregregADD(立即数加)140140regregconstant(12位)LDR(取字)141-24-regregaddress(12位)STR(存字)141-25-regregaddress(12位
14、)由此,可得该指令的十进制和二进制的机器语言如下表所示ADD r5,r1,r2的机器语言condFopcodeRnRdoffset 12IopcodeSoperand 12十进制140040152二进制1110001000000101010000 0000 001016将下面C语言翻译成ARM汇编语言代码,C赋值语句是:=(g+h)-(i+j)假设变量、g、h、i、j分别放在寄存器r0、r1、r2、r3、r4中答:该语句翻译成ARM汇编语句如下:add r5,r1,r2;将g+h的和存入寄存器r5中(r5=r1+r2)add r6,r3,r4;将i+j的和存入寄存器r6中(r6=r3+r4)sub r0,r5,r6;将结果存入寄存器r0中(r0=r5-r6)-