资源预览内容
第1页 / 共85页
第2页 / 共85页
第3页 / 共85页
第4页 / 共85页
第5页 / 共85页
第6页 / 共85页
第7页 / 共85页
第8页 / 共85页
第9页 / 共85页
第10页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
习 题 与 题 解 (7-10章),目 录 第三篇 中央处理器(CPU) 第七章 指令系统 第八章 CPU的结构和功能 第四篇 控制单元CU 第九章 控制单元的功能 第十章 控制单元的设计,指 令 系 统,第 七 章,7. 试比较基址寻址和变址寻址。 解:比较如下: 1)都可有效地扩大指令寻址范围。 2)基址寻址时,基准地址由基址寄存器给出,地址的改变反映在位移量A的取值上;变址寻址时,基准地址由A给出,地址的改变反映在变址值的自动修改上,变址值由变址寄存器给出。 3)基址寄存器内容通常由系统程序设定,变址寄存器内容通常由用户设定。 4)基址寻址适用于程序的动态重定位,变址寻址适用于数组或字符串处理,适用场合不同。,8. 画出先变址再间址及先间址再变址的寻址过程示意图。 解:1)设形式地址为A,变址寄存器为IX,则先变址再间址寻址过程示意如下: (一重间址) EA=(IX)+A (IX)+1IX,OP M A,IR,IX,EA,操作数,+1,ALU,MM,2)先间址再变址寻址过程示意: EA=(IX)+(A) (IX)+1IX,OP M A,IR,IX,操作数,+1,ALU,MM,EA,9. 画出SUB R1指令对操作数的寻址及减法过程的流程图。设被减数和结果存于ACC中,表示间接寻址,R1寄存器的内容为2074H。 解: SUB R1指令寻址及减法过程的流程图:,取指令(可省),寻址操作: 寄存器间址 EA=(R1) =2074H,EA MAR,读,M(EA) MDR,(ACC)-(MDR) ACC,A,A,(公操作),10. 画出执行ADD *-5指令(*为相对寻址特征)的信息流程图。设另一个操作数和结果存于ACC中,并假设(PC)=4000H。 解:由于本题未指定数据通路结构,因此只能大概地排一下信息流程图,并且流程图中突出寻址过程的实现。 ADD *-5指令信息流程图如下:,取指令(可省),寻址计算: EA=(PC)-5 =4000H+FFFBH =3FFBH,EA MAR,读,M(EA) MDR,(ACC)+(MDR) ACC,A,A,(公操作),11. 设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示。假设当前转移指令第一字节所在的地址为2000H,且CPU每取出一个字节便自动完成(PC)+1PC的操作。试问当执行JMP *+8和JMP *-9指令时,转移指令第二字节的内容各为多少? 解:据题意,相对寻址的转移指令格式如下:,2000H 2001H 2002H,当执行JMP指令时,指令第二字节的内容不变,PC的内容变为2002H。此时转移指令第二字节内容各为: A1= +6 = 0000 0110 = 06H A2= -11 = 1111 0101 = F5H 其有效地址各为: EA1= (PC) +6 = 2002H+0006H = 2008H EA2= (PC) 9 =2002H+FFF5H = 1FF9H,12. 某机主存容量为4M16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答: (1)画出一地址指令格式并指出各字段的作用; (2)该指令直接寻址的最大范围; (3)一次间址和多次间址的寻址范围; (4)立即数的范围(十进制表示);,(5)相对寻址的位移量(十进制表示); (6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题? (7)如何修改指令格式,使指令的寻址范围可扩大到4M? (8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。,解: (1)单字长一地址指令格式: 7 3 6,OP M A,各字段的作用: OP操作码字段,提供至少108种指令操作码; M寻址方式码字段,指出6种寻址方式; A形式地址字段,给出寻址所需的形式地址。,(2)A为6位,该指令直接寻址的最大范围为26=64字; (3)一次间址的寻址范围为216=64K字; 多次间址的寻址范围为215=32K字; (4)立即数的范围:若采用补码表示为1FH20H;十进制表示为31 -32;无符号数为063; (5)相对寻址的位移量范围在采用补码表示时同立即数范围,为31 -32;,(6)六种寻址方式中,立即寻址指令执行时间最短,因为此时不需寻址; 间接寻址指令执行时间最长,因为寻址操作需访存一次到多次; 相对寻址便于程序浮动,因为此时操作数位置可随程序存储区的变动而改变,总是相对于程序一段距离; 变址寻址最适合处理数组问题,因为此时变址值可自动修改而不需要修改程序。,(7)为使指令寻址范围可扩大到4M,需要有效地址22位,此时可将单字长一地址指令的格式改为双字长,如下图示: 7 3 6,OP M A,A,16 图中,指令的第一字保持原来格式不变,形式地址A扩展到第2个字。这样,直接寻址时,EA=A=16+6=22位,正好可访问4M地址空间。由于A的扩展,变址、基址、相对、立即数等寻址方式也扩展到22位。,(8)如使一条转移指令能转移到主存的任一位置,可采用上述双字长一地址指令,通过选用合适的寻址方式完成。(如选用直接寻址就可转移到主存任一位置,但选用相对寻址则只能在2M范围内转移。) 除此之外,(7)、(8)两题也可通过段寻址方式达到扩大寻址空间的目的。总之,不论采取何种方式,最终得到的实际地址应是22位。,13. 举例说明哪几种寻址方式在指令的执行阶段不访问存储器?哪几种寻址方式在指令的执行阶段只需访问一次存储器?完成什么样的指令,包括取指令在内共访问四次存储器? 解:举例如下: 1)一地址指令在执行阶段不访存的寻址方式有:寄存器寻址、立即寻址。 2)一地址指令在执行阶段只访存一次的寻址方式有:寄存器间接寻址、直接寻址、基址寻址、变址寻址、相对寻址、页面寻址。,3)包括取指在内共访存四次的指令有:二重间址的一地址指令;一重间址的二地址指令,当另一操作数采用直接、基址、变址、相对、页面、寄存器间接寻址时。,15. 某CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的指令系统。假设指令字长等于机器字长,试回答: (1)如果主存可直接或间接寻址,采用“寄存器存储器”型指令,能直接寻址的最大存储空间是多少?画出指令格式并说明各字段的含义。 (2)如果采用通用寄存器作基址寄存器,则上述“寄存器存储器”型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间?,解: (1)如采用RS型指令,则此指令一定是二地址以上的地址格式,指令格式如下: 6 5 1 20,OP Ri I A,操作码 寄存器号 间接 形式地址 标志 直接寻址的最大空间=220=1M字 此指令格式的设计有较大的发挥余地,为简化设计,在此采用紧贴题意的答题方式,即只按题意要求的因素设计,不考虑扩展因素。,(2)如采用基址寻址,则指令格式中应给出基址寄存器号,以指定哪一个通用寄存器用作基址寄存器。指令格式变为: 6 5 1 1 5 14,OP Ri I B BRi A,其中:I、B可省(B为基址寻址标志),BRi为基址寄存器号。基址寻址时: 寻址的最大空间=232=4G字 其寻址范围仅与基址位数有关,与形式地址位数无关。,16. 某机字长16位,存储器直接寻址空间为128字,变址时的位移量为-64+63,16个通用寄存器均可作为变址寄存器。采用扩展操作码技术,设计一套指令系统格式,满足下列寻址类型的要求: (1)直接寻址的二地址指令3条; (2)变址寻址的一地址指令6条; (3)寄存器寻址的二地址指令8条; (4)直接寻址的一地址指令12条; (5)零地址指令32条。 试问还有多少种代码未用?若安排寄存器寻址的一地址指令,还能容纳多少条?,解:题意分析: 设指令字长=机器字长,128字的直接寻址空间要求形式地址A为7位,-64+63的位移量也需7位(6位加1位符号位),16个通用寄存器作变址寄存器需4位变址寄存器号,则指令格式为: (1)直接寻址的二地址指令: 2 7 7,OP A1 A2,(2)变址寻址的一地址指令: 5 4 7,OP IX A,(3)寄存器寻址的二地址指令: 8 4 4,OP Ri Rj,(4)直接寻址的一地址指令: 9 7,OP A,(5)零地址指令: 16,OP,(6)若安排寄存器寻址的一地址指令,指令格式应为: 12 4,OP Ri,要清楚是否有冗余编码,必须做出具体的操作码编码分配方案,见下页。 由于寄存器寻址的一地址指令格式介于直接寻址的一地址指令与0地址指令之间,因此在设计0地址指令编码时,必须从全1开始往下安排,空出的即为冗余编码,可分给寄存器寻址的一地址指令用。这样的编码有30个,因此还能安排30条该类指令。(注意:需去掉4位Ri场),操作码编码分配: 0 0 0 1 A1,A2; 3条直接寻址的二地址指令。 1 0 1 1 0 0 0 IX,A;6条变址寻址的一地址指令。 1 1 1 0 1 1 1 1 1 0 0 0 0 Ri,Rj; 1 1 1 1 0 1 1 1 8条寄存器寻址的二地址指令。 1 1 1 1 1 0 0 0 0 A; 1 1 1 1 1 1 0 1 1 12条直接寻址的一地址指令。,续: 1 1 1 1 1 1 1 0 0 0 0 0 Ri; 1 1 1 1 1 1 1 1 0 1 1 1 30条寄存器寻址的 1 1 1 1 1 1 1 1 1 0 0 0 一地址指令。 (利用30个冗余编码) 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 32条0地址 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 指令,17. 某机指令字长16位,每个
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号