计算机组成原理蒋本珊第三章Word文档格式.docx
《计算机组成原理蒋本珊第三章Word文档格式.docx》由会员分享,可在线阅读,更多相关《计算机组成原理蒋本珊第三章Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
![计算机组成原理蒋本珊第三章Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/7/fe67559b-6bd1-4124-9eb3-62316766a1e7/fe67559b-6bd1-4124-9eb3-62316766a1e71.gif)
各举一例说明。
双操作数的零地址指令的操作数来自堆栈的栈顶和次栈顶。
双操作数的一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器中。
例如,前述零地址和一地址的加法指令。
3.某机为定长指令字结构,指令长度16位;
每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。
假设双操作数指令已有K种,无操作数指令已有L种,问单操作数指令最多可能有多少种?
上述三类指令各自允许的最大指令条数是多少?
4.设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出一种分配
方案,使该指令系统包含:
4条三地址指令,8条二地址指令,180条单地址指令。
5.指令格式同上题,能否构成:
三地址指令4条,单地址指令255条,零地址指令64条?
为什么?
6.指令中地址码的位数与直接访问的主存容量和最小寻址单位有什么关系?
主存容量越大,所需的地址码位数就越长。
对于一样容量来说,最小寻址单位越小,地址码的位数就越长。
7.试比拟间接寻址和存放器间址。
间接寻址方式的有效地址在主存中,操作数也在主存中;
存放器间址方式的有效地址在存放器中,操作数在主存中。
所以间接寻址比拟慢。
8.试比拟基址寻址和变址寻址。
基址寻址和变址寻址在形成有效地址时所用的算法是一样的,但是它们两者实际上是有区别的。
一般来说,变址寻址中变址存放器提供修改量〔可变的〕,而指令中提供基准值〔固定的〕;
基址寻址中基址存放器提供基准值〔固定的〕,而指令中提供位移量〔可变的〕。
这两种寻址方式应用的场合也不同,变址寻址是面向用户的,用于访问字符串、向量和数组等成批数据;
而基址寻址面向系统,主要用于逻辑地址和物理地址的变换,用以解决程序在主存中的再定位和扩大寻址空间等问题。
在某些大型机中,基址存放器只能由特权指令来管理,用户指令无权操作和修改。
9.某机字长为16位,主存容量为64K字,采用单字长单地址指令,共有50条指令。
假设有直接寻址、间接寻址、变址寻址、相对寻址四种寻址方式,试设计其指令格式。
操作码6位,寻址方式2位,地址码8位。
10.某机字长为16位,主存容量为64K字,指令格式为单字长单地址,共有64条指令。
试说明:
〔1〕假设只采用直接寻址方式,指令能访问多少主存单元?
〔2〕为扩大指令的寻址围,可采用直接/间接寻址方式,假设只增加一位直接/间接标志,指令可寻址围为多少?
指令直接寻址的围为多少?
〔3〕采用页面寻址方式,假设只增加一位Z/C〔零页/现行页〕标志,指令寻址围为多少?
指令直接寻址围为多少?
〔4〕采用〔2〕、〔3〕两种方式结合,指令的寻址围为多少?
11.设某机字长32位,CPU有32个32位的通用存放器,设计一个能容纳64种操作的单字长指令系统。
〔1〕如果是存储器间接寻址方式的存放器-存储器型指令,能直接寻址的最大主存空间是多少?
〔2〕如果采用通用存放器作为基址存放器,能直接寻址的最大主存空间又是多少?
因为计算机中共有64条指令,所以操作码占6位;
32个通用存放器,存放器编号占5位;
其余局部为地址码或标志位。
〔1〕如果是存储器间接寻址方式的存放器-存储器型指令,操作码6位,存放器编号5位,间址标志1位,地址码20位,直接寻址的最大主存空间是字。
〔2〕如果采用通用存放器作为基址存放器,,能直接寻址的最大主存空间是字。
12.某小型机字长为16位,其双操作数指令的格式如下:
其中:
OP为操作码,R为通用存放器地址。
试说明以下各种情况下能访问的最大主存区域有多少机器字?
〔1〕A为立即数。
〔2〕A为直接主存单元地址。
〔3〕A为间接地址〔非多重间址〕。
〔4〕A为变址寻址的形式地址,假定变址存放器为R1〔字长为16位〕。
〔1〕1个机器字。
〔2〕256个机器字。
〔3〕65536个机器字。
〔4〕65536个机器字。
13.计算以下4条指令的有效地址〔指令长度为16位〕。
〔1〕000000Q〔2〕100000Q〔3〕170710Q〔4〕012305Q
16.举例说明哪几种寻址方式除去取指令以外不访问存储器?
哪几种寻址方式除去取指令外只需访问一次存储器?
完成什么样的指令,包括取指令在共访问4次存储器?
除去取指令以外不访问存储器:
立即寻址,存放器寻址。
除去取指令外只需访问一次存储器:
直接寻址,存放器间接寻址,变址寻址,基址寻址,相对寻址,页面寻址。
二级间接寻址包括取指令在共访问4次存储器。
17.设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示。
假设当前转移指令第一字节所在的地址为2000H,且CPU每取一个字节便自动完成〔PC〕+1→PC的操作。
试问当执行JMP*+8和JMP*-9指令〔倡为相对寻址特征〕时,转移指令第二字节的容各为多少?
转移的目的地址各是什么?
转移指令第二字节的容分别为:
00001000〔+8〕,11110111〔-9〕
转移的目的地址分别为:
200AH,1FF9H。
20.什么叫主程序和子程序?
调用子程序时还可采用哪几种方法保存返回地址?
画图说明调用子程序的过程。
主程序就是指通常的程序,而子程序是一组可以公用的指令序列,只要知道子程序的入口地址就能调用它。
保存返回地址的方法有多种:
〔1〕用子程序的第一个字单元存放返回地址。
转子指令把返回地址存放在子程序的第一个字单元中,子程序从第二个字单元开场执行。
返回时将第一个字单元地址作为间接地址,采用间址方式返回主程序。
〔2〕用存放器存放返回地址。
转子指令先把返回地址放到某一个存放器中,再由子程序将存放器中的容转移到另一个平安的地方。
〔3〕用堆栈保存返回地址。
调用子程序的过程如图3唱8所示,此时返回地址保存在堆栈中。
21.在某些计算机中,调用子程序的方法是这样实现的:
转子指令将返回地址存入子程序的第一个字单元,然后从第二个字单元开场执行子程序,请答复以下问题:
〔1〕为这种方法设计一条从子程序转到主程序的返回指令。
〔2〕在这种情况下,怎么在主、子程序间进展参数的传递?
〔3〕上述方法是否可用于子程序的嵌套?
〔4〕上述方法是否可用于子程序的递归〔即某个子程序自己调用自己〕?
〔5〕如果改用堆栈方法,是否可实现〔4〕所提出的问题?
〔1〕返回指令通常为零地址指令。
返回地址保存在堆栈中,执行返回指令时自动从堆栈中弹出。
而目前返回地址是保存在子程序的第一个单元中,故此时返回指令不能再是零地址指令了,而应当是一地址指令。
如:
间接寻址可找到返回地址,然后无条件转移到返回的位置。
〔2〕在这种情况下,可利用存放器或主存单元进展主、子程序间的参数传递。
〔3〕可以用于子程序的嵌套〔多重转子〕。
因为每个返回地址都放在调用的子程序的第一个单元中。
〔4〕不可以用于子程序的递归,因为当某个子程序自己调用自己时,子程序第一个单元的容将被破坏。
〔5〕如果改用堆栈方法,可以实现子程序的递归,因堆栈具有后进先出的功能。