《计算机组成原理》第3章习题答案 联系客服

发布时间 : 星期日 文章《计算机组成原理》第3章习题答案更新完毕开始阅读2a5513d528ea81c758f578d7

余标志位同题14说明。

1688

若主存容量为2个存储单元,分为2个页面,每个页面有2个字。设有关寄存器的内容为

(I1)=002543Q (I2)=063215Q (PC)=004350Q 试计算下列指令的有效地址。 (1)152301Q (2)074013Q (3)161123Q (4)140011Q 解:

(1) 152301Q =1 101 010 011 000 001

因为Bit10(I2)=1,故为变址寄存器2寻址,EA=(I2)+A=063215+301=063516Q。 (2) 074013Q=0 111 100 000 001 011

因为Bit11(I1)=1,故为变址寄存器1寻址,EA=(I1)+A=002543+013=002556Q。 (3) 161123Q=1 110 001 001 010 011

因为Bit9(z/C)=1,故为当前页寻址,EA=(PC)∥A=994123Q。 (4)140011Q=1 100 000 000 001 001

因为4个标志位均为O,故为直接寻址,EA=A=000011Q。

16.举例说明哪几种寻址方式除去取指令以外不访问存储器?哪几种寻址方式除去取指令外只需访问一次存储器??完成什么样的指令,包括取指令在内共访问4次存储器?

解:

除去取指令外不访问存储器:立即寻址,寄存器寻址。

除去取指令外只需访问一次存储器:直接寻址,寄存器间接寻址,变址寻址,基址寻址,相对寻址,页面寻址。

二级间接寻址包括取指令在内共访问4次存储器。

17.设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示,假设当前转移指令第一字节所在的地址为2000H,且CPU每取一个字节便自动完成(PC)+1一PC的操作。试问当执行JMP*+8和JMP*一9指令(*为相对寻址特征)时,转移指令第二字节的内容各为多少?转移的目的地址各是什么?

解:转移指令第二字节的内容分别为:00001000(+8),11110111(一9)转移的目的地址分别为:200AH,1FF9H。 18.什么叫主程序和子程序?调用子程序时还可采用哪几种方法保存返回地址?画图说明调用子程序的过程。

解:主程序就是指通常的程序,而子程序是一组可以公用的指令序列,只要知道子程序的入口地址就能调用它。

保存返回地址的方法有多种:

(1)用子程序的第一个字单元存放返回地址。转子指令把返回地址存放在子程序的第一个字单元中,子程序从第二个字单元开始执行。返回时将第一个字单元地址作为间接地址,采用间址方式返回主程序。

(2)用寄存器存放返回地址。转子指令先把返回地址放到某一个寄存器中,再由子程序将寄存器中的内容转移到另一个安全的地方。 (3)用堆栈保存返回地址。

调用子程序的过程如下图所示,此时返回地址保存在堆栈中。

19.在某些计算机中,调用子程序的方法是这样实现的:转子指令将返回地址存入子程序的第一个字单元,然后从第二个字单元开始执行子程序,请回答下列问题: (1)为这种方法设计一条从子程序转到主程序的返回指令。 (2)在这种情况下,怎么在主、子程序间进行参数的传递? (3)上述方法是否可用于子程序的嵌套?

(4)上述方法是否可用于子程序的递归(即某个子程序自己调用自己)? (5)如果改用堆栈方法,是否可实现(4)所提出的问题?

解:(1)返回指令通常为零地址指令。返回地址保存在堆栈中,执行返回指令时自动从堆栈中弹出。而目前返回地址是保存在子程序的第一个单元中,故此时返回指令不能再是零地址指令了,而应当是一地址指令。如:

间接寻址可找到返回地址,然后无条件转移到返回的位置。

(2)在这种情况下,可利用寄存器或主存单元进行主、子程序间的参数传递。

(3)可以用于子程序的嵌套(多重转子)。因为每个返回地址都放在调用的子程序的第一个单元中。

(4)不可以用于子程序的递归,因为当某个子程序自己调用自己时,子程序第一个单元的内容将被破坏。

(5)如果改用堆栈方法,可以实现子程序的递归,因堆栈具有后进先出的功能。