《计算机组成原理第三章习题答案.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第三章习题答案.ppt(30页珍藏版)》请在金锄头文库上搜索。
1、计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评计算机组成原理计算机组成原理习题串讲习题串讲2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评3-3 某机某机为为定定长长指令字指令字结结构,指令构,指令长长度度16位;每个操作数的地址位;每个操作数的地址码长码长6位,指令位,指令分分为为无操作数、无操作数、单单操作数和双操作数三操作数和双操作数三类类。若双操作数指令
2、已有。若双操作数指令已有K种,无操作种,无操作数指令已有数指令已有L种,种,问单问单操作数指令最多操作数指令最多可能有多少种?上述三可能有多少种?上述三类类指令各自允指令各自允许许的最大指令条数是多少?的最大指令条数是多少? 2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评1616位位OPOPA A1 1A A2 24 4位位6 6位位6 6位位1616位位OPOPA A1 11010位位6 6位位1616位位OPOP双操作数双操作数指令指令
3、K无操作数无操作数指令指令L设单操作设单操作数指令数指令X2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评(24-K)26-X26=L 留给单地址留给单地址的扩展窗口的扩展窗口留给无地址留给无地址的扩展窗口的扩展窗口(24-K)(24-K)26-XX= (24-K)26-L26上述三上述三类类指令各自允指令各自允许许的最大指令条数的最大指令条数为:为: 双操作数:双操作数:24-1 单操作数:单操作数:1526-1 (假设双操作数指令(假设双
4、操作数指令仅仅1条,为无操作数指令留出条,为无操作数指令留出1个扩展窗口)。个扩展窗口)。2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 无操作数:无操作数: ( 1526-1) 26(假设双操(假设双操作数指令仅作数指令仅1条,单操作数指令留出条,单操作数指令留出1个扩展个扩展窗口),这样实现比较简单。窗口),这样实现比较简单。 如果单操作数指令也仅取如果单操作数指令也仅取1条,则无操条,则无操作数指令的数目还可以增多,但实现比较麻作数指
5、令的数目还可以增多,但实现比较麻烦。具体的条数:烦。具体的条数: 216 212 26 其中其中212 为表示某条二地址指令占用的编为表示某条二地址指令占用的编码数,码数,26为表示某条单地址指令占用的编码为表示某条单地址指令占用的编码数。数。2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评3-4 设某机为定长指令字结构,设某机为定长指令字结构,指令长度指令长度12位位,每个地址码占每个地址码占3位位,试提出一种分配方案,试提出一种分配方案,
6、使该指令系统包含:使该指令系统包含:4条三地址指令,条三地址指令,8条二条二地址指令,地址指令,180条单地址指令。条单地址指令。 1212位位OPOPA A1 1A A2 2A A3 3 若操作码采用定长编码方法,最多只能若操作码采用定长编码方法,最多只能表示表示8条三地址指令,显然不能满足要求。故条三地址指令,显然不能满足要求。故应采用变长编码方法(扩展操作码法)。应采用变长编码方法(扩展操作码法)。2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲
7、评习题讲评12位位OPA1A2A3OP100 000 100 000 XXX YYYXXX YYY100 111 XXX YYY100 111 XXX YYY8条二地址指令条二地址指令OPA1A2A A1 1OPOP101 000 000 101 000 000 XXXXXX111 110 011 111 110 011 XXXXXX180条一地址指令条一地址指令4条三条三地址指令地址指令000 000 XXX YYY ZZZXXX YYY ZZZ011 XXX YYY ZZZ011 XXX YYY ZZZ为二、一地址指令为二、一地址指令留下了留下了100111四四个扩展窗口个扩展窗口为一地址
8、指令留下为一地址指令留下了了101111三个扩三个扩展窗口展窗口2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 101111三个扩展窗口可以扩展出三个扩展窗口可以扩展出192条一地址指令。条一地址指令。 64 3=192 现只需要现只需要180条一地址指令,故最后条一地址指令,故最后12个操作码编码为非法操作码。个操作码编码为非法操作码。最后一个操作码编码最后一个操作码编码111 111 111111 111 11112个非法操作码个非法操
9、作码- 1 100- 1 100最后一个指令的操作码编码最后一个指令的操作码编码111 110 011111 110 0112008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评3-10 某机某机字长为字长为16位位,主存容量为主存容量为64K字字,指,指令格式为令格式为单字长单地址单字长单地址,共有,共有64条指令条指令。试。试说明:说明: (1)若只采用直接寻址方式,指令能访若只采用直接寻址方式,指令能访问多少主存单元?问多少主存单元? (2)
10、为扩充指令的寻址范围,可采用直为扩充指令的寻址范围,可采用直接接/间接寻址方式,若只增加一位直接间接寻址方式,若只增加一位直接/间接间接标志,指令可寻址范围为多少?指令直接寻标志,指令可寻址范围为多少?指令直接寻址的范围为多少?址的范围为多少?2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 (3)采用页面寻址方式,若只增加一位采用页面寻址方式,若只增加一位Z/C(零页零页/现行页)标志,指令寻址范围为现行页)标志,指令寻址范围为多少?指令直
11、接寻址范围为多少?多少?指令直接寻址范围为多少? (4)采用采用b、c两种方式结合,指令的寻址两种方式结合,指令的寻址范围为多少?指令直接寻址范围为多少?范围为多少?指令直接寻址范围为多少?2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 因机器共因机器共64条条指令,操作码占指令,操作码占6位,其余位,其余部分为地址码或标志位。部分为地址码或标志位。 (1)若只采用直接寻址方式,地址码部分若只采用直接寻址方式,地址码部分为为10位,指令能访
12、问的主存单元数为位,指令能访问的主存单元数为210=1K字字。1616位位OPOPA A6 6位位1010位位 (2)若采用直接若采用直接/间接寻址方式,将增加间接寻址方式,将增加了一位直接了一位直接/间接标志,地址码部分为间接标志,地址码部分为9位,位,指令直接寻址的范围为指令直接寻址的范围为29=0.5K字字,指令可,指令可寻址范围为整个主存空间寻址范围为整个主存空间216=64K字字。2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 (
13、3)若采用页面寻址方式,将增加一位若采用页面寻址方式,将增加一位Z/C(零页零页/现行页)标志,所以指令直接寻现行页)标志,所以指令直接寻址范围仍为址范围仍为29=0.5K字字,指令寻址范围仍为,指令寻址范围仍为216=64K字字。1616位位OPOPA A6 6位位1010位位Z/C (4)采用采用b、c两种方式结合,将需要和两种方式结合,将需要和Z/C两个标志位,所以指令直接寻址范围为两个标志位,所以指令直接寻址范围为28=0.25K字字,指令的可寻址范围仍为,指令的可寻址范围仍为216=64K字字。 Z/CZ/C2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计
14、算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 3-13 计算下列四条指令的计算下列四条指令的有效地址有效地址(指令长指令长度为度为16位位)。)。 (1) 000000Q (2) 100000Q (3) 170710Q (4) 012305Q 假定:上述四条指令均用八进制书写;假定:上述四条指令均用八进制书写;指令的最左边是一位间址指示位。(指令的最左边是一位间址指示位。(=0,直接寻址;,直接寻址;=1,间接寻址),且具有多,间接寻址),且具有多重间访功能;指令的最右边两位为形式地址;重间访功能;指令的最右边两
15、位为形式地址;主存容量主存容量215单元,下表为有关主存单元的内单元,下表为有关主存单元的内容(八进制):容(八进制):2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 (1)000000Q 因为指令的最高位为因为指令的最高位为0,故,故为直接寻址,为直接寻址,EA=A。 指令中的形式地址为指令中的形式地址为00Q,因主存容量为因主存容量为215个单元,主个单元,主存地址共存地址共15位,所以位,所以EA=00000Q。 地址地址内容内容00
16、000000000000100001000020000200003000030000400004000050000500006000060000700007000100001010000210000204671004671005430405430410000010000010254310254310000110000106321506321507771007771010000510000500000000002008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习
17、题讲评习题讲评 (2)100000Q 因为指令的最高位为因为指令的最高位为1,故,故指令为间接寻址。指令为间接寻址。 (00000)=100002,最高位,最高位仍为仍为1,继续间接寻址。,继续间接寻址。 (00002)=054304,其最高,其最高位为位为0,表示已找到有效地址,表示已找到有效地址,EA=54304Q。 地址地址内容内容0000000000000010000100002000020000300003000040000400005000050000600006000070000700010000101000021000020467100467100543040543041000
18、00100000102543102543100001100001063215063215077710077710100005100005000000000000002000021 100002000020 054304543040 054304543042008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 (3)170710Q 因为指令的最高位为因为指令的最高位为1,故,故指令为间接寻址。指令为间接寻址。 (00010)=100005,最高位,最
19、高位仍为仍为1,继续间接寻址。,继续间接寻址。 (00005)=100001,最高位,最高位仍为仍为1,继续间接寻址。,继续间接寻址。 (00001)=046710,其最高,其最高位为位为0,表示已找到有效地址,表示已找到有效地址,EA=46710Q。 地址地址内容内容000000000000001000010000200002000030000300004000040000500005000060000600007000070001000010100002100002046710046710054304054304100000100000102543102543100001100001063
20、2150632150777100777101000051000050001000010000050000500001000011 100005000051 100001000010 046710467100 046710467102008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 (4) 012305Q 因为指令的最高位为因为指令的最高位为0,故,故为直接寻址为直接寻址,EA=A。 指令中的形式地址为指令中的形式地址为05Q,因主存容量为因主存
21、容量为215个个单单元元,地,地址主存共址主存共15位,所以位,所以EA=00005Q。 地址地址内容内容00000000000000100001000020000200003000030000400004000050000500006000060000700007000100001010000210000204671004671005430405430410000010000010254310254310000110000106321506321507771007771010000510000500005000052008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算
22、机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评3-14 假定某机的指令格式如下:假定某机的指令格式如下:OPOPI I1 1I I2 2Z/CZ/CA A111110109 98 87 76 65 50 0其中:其中: Bit8=1:变址寄存器变址寄存器I1寻址;寻址; Bit7=1:变址寄存器变址寄存器I2寻址;寻址; Bit6(零页零页/现行页寻址):现行页寻址): Z/C=0,表示表示0页面;页面; Z/C=1,表示现行页面,即指令所在页面表示现行页面,即指令所在页面2008.10北京理工大学计算机科学技术学院
23、北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 若主存容量为若主存容量为212个存储单元,分为个存储单元,分为26个页个页面,每个页面有面,每个页面有26个字。个字。 设有关寄存器的内容为:设有关寄存器的内容为: (PC)=0340Q (I1)=1111Q (I2)=0256Q 试计算下列指令的有效地址。试计算下列指令的有效地址。 (1) 1046Q (2) 2433Q (3) 3215Q (4) 1111Q2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计
24、算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评(1) 1046Q 将用八进制书写的指令变换成二进制。将用八进制书写的指令变换成二进制。 1 0 4 6 0 001 01 000000 100 110 100 110 因为四个标志位均为因为四个标志位均为0,故为直接寻址。,故为直接寻址。 EA=A=100110B=46Q 因主存容量为因主存容量为212个存储单元,主存地址个存储单元,主存地址共共12位,所以位,所以EA=0046Q2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理
25、计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评(2) 2433Q 将用八进制书写的指令变换成二进制。将用八进制书写的指令变换成二进制。 2 4 3 3 0 010 10 100100 011 011 011 011 因为因为Bit8(I1)=1,故为变址寄存器故为变址寄存器1寻址。寻址。 EA=(I1)+A=1111Q+33Q=1144Q001 001 001 001001 001 001 001+ 011 011+ 011 011001 001 100 100001 001 100 1002008.10北京理工大学计算机科学
26、技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评(3) 3215Q 将用八进制书写的指令变换成二进制。将用八进制书写的指令变换成二进制。 3 2 1 5 0 011 11 010010 001 101 001 101 因为因为Bit7(I2)=1,故为变址寄存器故为变址寄存器2寻址。寻址。 EA=(I2)+A=0256Q+15Q=0273Q000 010 101 110000 010 101 110+ 001 101+ 001 101000 010 111 011000 010
27、 111 0112008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评(4) 1111Q 将用八进制书写的指令变换成二进制。将用八进制书写的指令变换成二进制。 1 1 1 10 001 01 001001 001 001 001 001 因为因为Bit6(Z/C)=1,故为当前页寻址。故为当前页寻址。 EA=(PC)HA=03Q11Q=0311Q000 011000 011 001 001001 001000 011 001 001000 011
28、001 0012008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 3-17 设相对寻址的转移指令占两个字节,第设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移一个字节是操作码,第二个字节是相对位移量,用补码表示。假设当前转移指令第一字量,用补码表示。假设当前转移指令第一字节所在的地址为节所在的地址为2000H,且,且CPU每取一个字每取一个字节便自动完成节便自动完成(PC)+1PC的操作。试问当执的操作。试问当执行行JM
29、P*+8和和JMP*-9指令(指令(*为相对寻址特为相对寻址特征)时,转移指令第二字节的内容各为多少征)时,转移指令第二字节的内容各为多少?2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 转移指令第一字节所在的地址为转移指令第一字节所在的地址为2000H,指令执行过程中自动完成指令执行过程中自动完成(PC)+22000H+2=2002H。当执行当执行JMP*+8时,转移时,转移指令第二字节的内容为指令第二字节的内容为08H,转移地址为转移地
30、址为200AH。当当执行执行JMP*-9指令时,转移指令指令时,转移指令第二字节的内容为第二字节的内容为F7H,转移地址为转移地址为1FF9H。2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 3-21 在某些计算机中,调用子程序的方法是在某些计算机中,调用子程序的方法是这样实现的:转子指令将返回地址存入子程这样实现的:转子指令将返回地址存入子程序的第一个字单元,然后从第二个字单元开序的第一个字单元,然后从第二个字单元开始执行子程序,回答下列
31、问题:始执行子程序,回答下列问题: (1)为这种方法设计一条从子程序转到主为这种方法设计一条从子程序转到主程序的返回指令。程序的返回指令。 (2)在这种情况下,怎么在主、子程序间在这种情况下,怎么在主、子程序间进行参数的传递?进行参数的传递? (3)上述方法是否可用于子程序的嵌套?上述方法是否可用于子程序的嵌套?2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 (4)上述方法是否可用于子程序的递归上述方法是否可用于子程序的递归(即某个子程序自
32、己调用自己)?(即某个子程序自己调用自己)? (5)如果改用堆栈方法,是否可实现如果改用堆栈方法,是否可实现d所所提出的问题?提出的问题?2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 (1)返回指令通常为零地址指令返回指令通常为零地址指令。返回地址保返回地址保存在堆栈中,执行返回指令时自动从堆栈中存在堆栈中,执行返回指令时自动从堆栈中弹出。而目前返回地址是保存在子程序的第弹出。而目前返回地址是保存在子程序的第一个单元中,故此时返回指令不能
33、再是零地一个单元中,故此时返回指令不能再是零地址指令了,而应当是一地址指令。如址指令了,而应当是一地址指令。如 间接寻址可找到返回地址,然后无条件间接寻址可找到返回地址,然后无条件转移到返回的位置。转移到返回的位置。子程序首地址子程序首地址OPOP2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评主程序主程序子程序子程序CALL AKK+1AK+1JMP JMP A ACALL AJMP JMP A A返回地址返回地址2008.10北京理工大学
34、计算机科学技术学院北京理工大学计算机科学技术学院计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理计算机组成原理习题讲评习题讲评 (2)在在这这种情况下,种情况下,可利用可利用寄存器寄存器或或主存单元主存单元进进行行主、子程序主、子程序间间的的参数参数传递传递。 (3)可可以以用于子程序的嵌套用于子程序的嵌套(多重转子)。因为(多重转子)。因为每个返回地址都放在调用的子程序的第一个每个返回地址都放在调用的子程序的第一个单元中。单元中。 (4)不不可可以以用于子程序的用于子程序的递归递归,因为当,因为当某个子程某个子程序自己序自己调调用自己用自己时,第一个单元的内容将被时,第一个单元的内容将被破坏。破坏。 (5)如果改用堆如果改用堆栈栈方法,可方法,可以以实现实现子程序的子程序的递归递归,因堆栈具有后进先出的功能。因堆栈具有后进先出的功能。2008.10北京理工大学计算机科学技术学院北京理工大学计算机科学技术学院