计算机学科专业基础综合组成原理-指令系统(一)
(总分:154.00,做题时间:90分钟)
一、单项选择题(总题数:40,分数:80.00)
1.下列描述中 ____ 是正确的。
(分数:2.00)
A.加法指令的执行周期一定要访存
B.加法指令的执行周期一定不访存
C.指令的地址码给出存储器地址的加法指令,在执行周期一定访存√
D.指令的地址码给出存储器地址的加法指令,在执行周期不一定访存
解析:指令的地址码部分是操作数的地址,而地址码给出存储器地址,表示加法指令在执行周期中取出操作数要从存储器中得到,所以一定会访问存储器。
2.基址寻址方式中,操作数的有效地址是 ____ 。
(分数:2.00)
A.基址寄存器内容加上形式地址(位移量) √
B.程序计数器内容加上形式地址
C.变址寄存器内容加上形式地址
D.寄存器内容加上形式地址
解析:根据基址寻址方式的定义,操作数的有效地址是基址寄存器的内容加上形式地址(位移量)。
3.与本指令的地址有关的寻址方式是 ____ 。
(分数:2.00)
A.立即寻址
B.寄存器寻址
C.相对寻址√
D.直接寻址
解析:题中四种寻址方式只有相对寻址需要用程序计数器的内容,也就是本指令的地址,所以答案选C。
4.子程序调用指令执行时,要把当前程序计数器(PC)的内容存到 ____ 。
(分数:2.00)
A.通用寄存器
B.堆栈√
C.指令寄存器
D.数据缓冲器
解析:子程序调用指令执行时,为了在子程序结束后正确返回到主程序中,所以要把当前PC的内容放入堆栈保存起来。
5.存储器按字节编址,在向上生成(地址码减小方向)堆栈中,若约定为实顶栈(即堆栈指针随时指向实有数据的堆顶),设SP=1428H,AX为16位累加寄存器,则执行一条指令PUSH AX后,SP内容为 ____ 。
(分数:2.00)
A.1427
B.142A
C.1430
D.1426 √
解析:据题意,应该先使(SP)-1,再写入数据,而AX为16位寄存器,占用2个堆栈单元,所以SP的内容减1两次。
6.间接寻址第一次访问内存所得到的是操作数的有效地址,该地址经系统总线的 ____ 传送到CPU。
(分数:2.00)
A.数据总线√
B.地址总线
C.控制总线
D.用户程序
解析:由于是访问存储器得到的内容.所以是存储单元存放的数据,应该由数据总线传送给CPU。CPU经寻址方式判断后,再通过地址总线送给存储器,为读取操作数做准备。
7.在向上生成(地址码减小方向)堆栈中,若约定为实顶栈(即堆栈指针随时指向实有数据的堆顶),则正确的弹出数据操作为 ____ 。
(分数:2.00)
A.先使(SP)+1,再读出数据
B.先读出数据,再使(SP)+1 √
C.先使(SP)-1,再读出数据
D.先读出数据,再使(SP)-1
解析:由于是向上生产型堆栈,即朝SP减小的地址存入数据的,并且为实顶栈,所以读出时,应该先读出数据,再使SP加1。
8.相对寻址方式中,若取出指令后立即将PC的内容加1(或加增量),则指令所提供的相对地址实质上是一种 ____ 。
(分数:2.00)
A.立即数
B.内存地址
C.以本条指令在内存中首地址为基准位置的偏移量
D.以下一条指令在内存中首地址为基准位置的偏移量√
解析:相对寻址由程序计数器Pc提供基准地址。而取出指令后立即将PC的内容加1(或加增量),使之变成了下条指令的地址,所以,是以下一条指令在内存中首地址为基准位置的偏移量。
9.程序状态字PSW中一般设有全O结果标志Z,负结果标志N,进位标志C,溢出标志V等等。设ZN(:V 的二进制顺序如下,则 ____ 将使“正转”指令转移成功。
(分数:2.00)
A.1100
B.0010 √
C.1000
D.0101
解析:选项A和D中,负结果标志N=1,表示是一个负数,与要求不符,排除。选项C的全0结果标志Z=1,表示可以等于0,而O既不是正数,也不是负数,不应该进行“正转”,所以也不对。
10.在多道程序设计中,最重要的寻址方式是 ____ 。
(分数:2.00)
A.相对寻址√
B.间接寻址
C.立即寻址
D.按内容寻址
解析:相对寻址编制程序时,不须指定绝对地址,只需确定程序内部的相对距离,从而可以使用浮动地址,给程序的重定位带来了方便.能实现多道程序。
11.从以下有关RISC的描述中,选择正确的描述 ____ 。
(分数:2.00)
A.支持的寻址方式更多
B.大部分指令在一个机器周期内完成√
C.通用寄存器的数量少
D.指令字长不固定
解析:RISC指令系统相对于CISC指令系统并没有产生出更多的寻址方式。RISC指令是使用较多的指令条数去实现复杂的指令功能,绝大部分的指令是在一个机器周期完成的,而且通用寄存器数量较多,可以提高指令的执行速度,使指令简单、有效。RISC中的字长固定,可以降低指令的烦琐程度。
12.在指令格式中,采用扩展操作码设计方案的目的是 ____ 。
(分数:2.00)
A.减少指令字长度
B.增加指令字长度
C.保持指令字长度不变而增加指令操作的数量√
D.保持指令字长度不变而增加寻址空间
解析:扩展操作码的重要规则是赋予使用频率高的指令短的操作码,目的是为了保持指令字长度不变而增加指令操作的数量,从而降低指令的平均长度,提高编码效率。
13.以下 ____ 寻址方式用来支持浮动程序设计
(分数:2.00)
A.相对寻址
B.变址寻址
C.寄存器间接寻址
D.基址寻址√
解析:通过基址寻址方式,可以实现程序的浮动,也就是可装入存储器中的任何位置。基址寻址使有效地址按基址寄存器的内容实现有规律的变化,而不会改变指令本身。
14.RISC思想主要基于的是 ____ 。
(分数:2.00)
A.减少指令的平均执行周期数
B.减少指令的复杂程度√
C.减少硬件的复杂程度
D.便于编译器编写
解析:RISC是在CISC技术的基础上发展起来的,人们通过对CISC指令系统的统计表明,最常用的是一些比较简单的指令.仅占指令总数的20%,但在程序中出现的频率却占80%。所以RISC思想主要基于减少指令的复杂程度,通过简化指令使计算机的结构更加简单合理,从而提高处理速度。
15.指令优化编码方法,就编码的效率来讲,最好的方法是 ____ 。
(分数:2.00)
A.固定长度编码
B.扩展编码法
C.huffman编码法√
D.以上编码都不是
解析:哈夫曼huffman编码的编码原则是:对使用频度(指在程序中出现的频率)较高的指令,分配较短的操作码字段;对使用频度较低的指令,分配较长的操作码字段。所以,它能使信息的冗余量最小,编码效率最高.是最好的方法。
16.以程序计数器(PC)作为基础地址的寻址方式是 ____ 。
(分数:2.00)
A.寄存器间接寻址
B.相对寻址√
C.基址寻址
D.变址寻址
解析:相对寻址的有效地址EA是程序计数器PC的内容与指令中的形式地址相加而成,常用于转移指令,其最大的特点是转移地址可以不固定,随PC值的变化而变化,使得程序不论在主存中的哪段位置,都可正确运行.而其它三种寻址方式都没有用到PC。
17.下列叙述中,属于RISC特征的有 ____ 。
(分数:2.00)
A.丰富的寻址方式
B.使用微程序控制器
C.多种指令格式
D.只有LOAD/STORE指令访问存储器√
解析:RISC精简指令集计算机的特征有:简单而统一格式的指令译码;大部分指令可以单周期执行;只有LOAD/STORE可以访问存储器;简单的寻址方式;采用延迟转移技术;较多的寄存器;对称的指令格式等。
18.随着计算机技术的不断发展和对指令系统的合理性研究,精简指令系统RISC逐步取代CISC的重要位置。下面所述不是CISC主要缺点的是 ____ 。
(分数:2.00)
A.20%与80%规律
B.VLSI技术的不断发展引起的一系列问题
C.软硬件功能分配的问题√
D.由于指令众多带来的编程困难
解析:通过对大量的程序统计得出20%与80%规律,指在整个指令系统中,约有20%的指令使用频率较高,占据了处理机80%的处理时间,反过来,80%的指令只占据处理机20%的时间.这是CISC的缺点,VLSI超大规模集成电路的技术发展与CISC的理念也造成冲突,答案D指令众多也是CISC的主要缺点,也正是20%与80%规律的原因所在。
19.在下面描述的RISC机器基本概念中正确的表述是 ____ 。
(分数:2.00)
A.RISC机器不一定是流水CPU
B.RISC机器一定是流水CPU √
C.RIISC机器有复杂的指令系统
D.CPU配备很少的通用寄存器
解析:RISC CPU的三个基本要素是:(1)一个有限的简单指令集;(2)CPU配备大量的通用寄存器;(3)强调指令流水线的优化。注意,RISC机器一定是流水CPU,但流水CPU不一定是RISC机器。如奔腾CPU是流水CPU,但奔腾机是CISC机器。
20.指令周期是指 ____ 。
(分数:2.00)
A.CPU从主存取出一条指令的时间
B.CPU执行一条指令的时间
C.CPU从主存取出一条指令加上CPU执行这条指令的时间√
D.时钟周期时间
解析:指令周期定义为CPU从主存取出一条指令加上CPU执行这条指令的时间。时钟周期是系统主时钟信号持续一个周期的时间。
21.取指令操作( )。
(分数:2.00)
A.受到上一条指令的操作码控制√
B.受到当前指令的操作码控制
C.受到下一条指令的操作码控制
D.是控制器固有的功能,不需要在操作码控制下进行
解析:只有完成上一条指令,PC才能自加,指向下一条指令。
22.二地址指令中,操作数的物理位置不可安排在 ____ 。
(分数:2.00)
A.栈顶和次栈顶√
B.两个主存单元
C.一个主存单元和一个寄存器
D.两个寄存器
解析:操作数的物理位置可归结为三种类型:访问内存的指令格式,称这类指令为存储器一存储器(SS)型指令;访问寄存器的指令格式,称这类指令为寄存器一寄存器(RR)型指令;第三种类型为寄存器一存储器(RS)型指令,所以答案选A。
23.设指令中的地址码为A.变址寄存器为X.程序计数器为PC,则变址寻址方式的操作数地址为 ____ 。(分数:2.00)
A.(PC)+A
B.(A)+(X)
C.(A+X)
D.A+(X) √
解析:变址寻址的指令将规定的变址寄存器的内容加上指令中给出的偏移量,就可得出操作数的有效地址。
24.以下说法错误的是 ____ 。
(分数:2.00)
A.指令系统是一台机器硬件都能执行的指令全体
B.任何程序运行前都要先转化为机器语言程序
C.指令系统只和软件设计有关,而与硬件设计无关√
D.指令系统在某种意义上,反映一台机器硬件的功能
解析:一台计算机的指令系统反映了计算机的全部功能。设计功能齐全、通用性强、具有丰富指令的指令系统,必须要复杂的硬件结构来支持。
25.某指令系统指令长8位,每一地址码长3位.用扩展操作码技术。若指令系统有2条二地址指令、10条零地址指令,则最多可有 ____ 条一地址指令。
(分数:2.00)
A.20
B.14 √
C.10
D.6
解析:用扩展操作码技术,具有2条二地址指令、10条零地址指令,所以还有(2 2-2)×2 3×2 3-10=118种编码未用,则一地址指令可以设计:118/8取整,即14条。
26.一个计算机系统采用32位单字长指令,地址码为12位,如果定义了250条二地址指令,那么还可以有____ 条单地址指令。
(分数:2.00)
A.4K
B.8K
C.16K
D.24K √
解析:用扩展操作码技术,有250条二地址指令,则还剩6条用于扩展,可设计出单地址指令6×2 12单地址指令,结果为24K。
27.在按字节编址的计算机中,一条指令长16位,当前指令地址为3000,在读取这条指令后,PC的值为( )。(分数:2.00)
A.3000
B.3001
C.3002 √
D.3016
解析:按字节编址的计算机.指令长16位,则占用2个字节,读取这条指令后,PC值为3000+2=3002。
28.某计算机字长32位,其存储容量是1MB。若按字编址,它的寻址范围是 ____ 。
(分数:2.00)
A.0~1M
B.0~512K
C.0~256K √
D.0~256KB
解析:按字编址,字长=32位=4B,则存储容量为1MB,即1MB/4=256K字,则寻址范围为0~256K。
29.采用变址寻址可扩大寻址范围,则 ____ 。
(分数:2.00)
A.变址寄存器内容由用户确定,且在程序执行过程中不可变
B.变址寄存器内容由操作系统确定,且在程序执行过程中不可变
C.变址寄存器内容由用户确定,且在程序执行过程中可变√
D.变址寄存器内容由操作系统确定,且在程序执行过程中可变
解析:变址寻址方式中,把CPU中某个变址寄存器的内容与偏移量D相加来形成操作数有效地址,在于实现程序块的规律性变化,变址寄存器内容由用户确定,且在执行过程中是可变的。
30.指令系统中采用不同寻址方式的目的是 ____ 。
(分数:2.00)
A.实现存储程序和程序控制
B.缩短指令长度,扩大寻址空间,提高编程灵活性√
C.可以直接访问外存
D.提供扩展操作码的可能性并降低指令译码难度
解析:指令系统中采用不同寻址方式的目的缩短指令长度,扩大寻址空间,提高编程灵活性,这也是指令系统中设置有多种寻址方式的出发点。
31.对一个区域的成批数据采用循环逐个进行处理时,常采用的寻址方式是 ____ 。
(分数:2.00)
A.变址寻址√
B.基址寻址
C.间接寻址
D.相对寻址
解析:变址寻址的特点是立足于面向用户,将形式地址作为基准地址,可以覆盖整个存储空间。而变址寄存器的内容是修改值,又称为变址值,是访问单元与首地址单元的距离,位数可以少些,只需覆盖操作对象所在的区域即可。所以变址寻址可以访问一个区域的字符串、数组、表格等成批数据。基址寻址立足于面向系统,用来解决程序在实际主存中的重定位问题以及在有限字长指令中扩大寻址空间等。间接寻址虽然也能用于循环程序中对成批的数据进行处理,但编制的程序不如变址寻址简单、易读和常用。
32.指令中给出的寄存器的内容是操作数的地址,此种方式称为 ____ 寻址方式。
(分数:2.00)
A.立即
B.寄存器
C.直接
D.寄存器间接√
解析:根据寄存器间接寻址方式的定义,操作数的地址存放于寄存器中,指令执行时.根据指令码给出的寄存器号找到相应的寄存器,再用寄存器的内容为地址访问存储器,存储器的内容即是操作数。
33.在下面几种寻址方式中, ____ 方式取操作数最快。
(分数:2.00)
A.直接寻址
B.寄存器寻址√
C.相对寻址
D.变址寻址
解析:寄存器寻址的特点是:操作数直接存放与寄存器中,而寄存器位于CPU内部,访问速度是最快的。
34.单地址指令中为了完成两个数的算术运算,除地址码指明一个操作数外,另一个采用( )方式。
(分数:2.00)
A.立即寻址
B.隐含寻址√
C.间接寻址
D.基址寻址
解析:隐含寻址是在指令中不明显地给出而是隐含着操作数地址的指令格式,在单地址指令中要完成两个操作数的运算,则必定有一个是隐含寻址。
35.以下说法正确的是 ____ 。
(分数:2.00)
A.寻址方式是:指令如何给出操作数或操作数地址的方式
B.所以指令的寻址方式都相同
C.所以的指令都有操作码和地址码
D.指令的功能与寻址方式无关√
解析:所谓寻址方式就是处理器根据指令中给出的地址码来寻找操作数所在地址的方法。并不是所有指令都有操作码和地址码,隐含寻址方式就没有地址码。指令的功能与寻址方式有关,因为寻址方式不同,指令的操作对象不同,从而功能也就不同。
36.直接寻址、间接寻址、立即寻址3种寻址方式指令的执行速度,由快至慢的排序是 ____ 。
(分数:2.00)
A.直接、立即、间接
B.直接、间接、立即
C.立即、直接、间接√
D.立即、间接、直接
解析:立即寻址的特点是:指令的地址码就是操作数,取出指令的同时也就取出了操作数,所以执行周期不用再访存,速度最快。直接寻址的特点是:指令的地址码直接给出了操作数地址,所以执行时必须根据地址访问存储器,才能取出操作数。间接寻址的特点是:指令的地址码是操作数地址所在的存储单元的地址。执行时首先根据地址码找到存放操作数地址的存储单元,再根据存储单元的内容访问存储器,才能取出操作数,所以需要二次访存,速度最慢。
37.变址寻址和基址寻址的有效地址形成方式类似,但 ____ 。
(分数:2.00)
A.变址寄存器的内容在程序执行过程中不能改变
B.基址寄存器的内容在程序执行过程中可以改变
C.在程序执行过程中,变址寄存器的内容不能改变而基址寄存器的内容可以改变
D.在程序执行过程中.基址寄存器的内容不能改变而变址寄存器的内容可以改变√
解析:只要把握住变址寻址的特点是立足于面向用户,而基址寻址立足于面向系统,所以在程序执行过程中,基址寄存器的内容不能改变而变址寄存器的内容可以改变。
38.下列不属于程序控制指令的是 ____ 。
(分数:2.00)
A.无条件转移指令
B.条件转移指令
C.中断隐指令√
D.循环指令
解析:中断隐指令没有操作码,它并非真正的指令,更不是程序控制指令。
39.运算性指令的寻址与转移性指令的寻址不同点在于 ____ 。
(分数:2.00)
A.前者取操作数,后者决定程序转移地址√
B.后者取操作数,前者决定程序转移地址
C.前者是短指令,后者是长指令
D.前者是长指令,后者是短指令
解析:寻址可分为指令寻址和数据寻址。寻找下一个将要执行的指令地址称为指令寻址,寻找操作数的地址,从而能取出操作数的寻址称为数据寻址。运算性指令的寻址是数据寻址,转移性指令的寻址是指令寻址。
40.指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现 ____ 。
(分数:2.00)
A.堆栈寻址
B.程序的条件转移
C.程序的无条件转移
D.程序的条件转移或无条件转移√
解析:顺序寻址是指可通过程序计数器PC加增量,自动形成下一条指令的地址;跳跃寻址则需要通过程序转移类指令来实现。程序转移类指令又包括两大类:条件转移或无条件转移指令。
二、综合应用题(总题数:9,分数:74.00)
41.某机器指令字长为18位,具有二地址、一地址和零地址三种指令格式,每个操作数地址码为6位,当操作码长度可变时,最多可安排多少条二地址指令?在此基础上,一地址指令最多可安排多少条?然后还能安排多少条零地址指令?若使二地址指令条数达到最少,则最多可安排多少条一地址指令?
(分数:10.00)
__________________________________________________________________________________________ 正确答案:()
解析:采用扩展操作码技术,使操作码的长度随地址数的减少而增加,由于指令字长18位,其中6位为基本操作码字段,剩下12位为两个6位的地址字段,所以最多可安排2 6 -1条二地址指令,在此基础上,一地址指令最多可安排2 6一1条,最后还能安排26条零地址指令。
若要使二地址指令条数达到最少,则安排1条二地址指令,剩下的2 6 -1种用于扩展,同理,零地址指令为1条时,二地址指令最多,所以最多可安排(2 6 -1)×2 6 -1条一地址指令。
42.某机字长为16位,采用定长指令格式,指令长度为16位,包含32条双地址指令、64条单地址指令和4条无操作数指令;每个地址字段占5位,请给出该机指令系统的操作码设计方案。
(分数:10.00)
__________________________________________________________________________________________ 正确答案:()
解析:据题意,可采用扩展操作码技术设计指令,已知指令字长16位,每个地址字段5位,基本操作码字段为:16~5×2=6位。6位操作码共有64种编码可能,令其中的000000~011111用于二地址指令,可设计出32条。其余的编码中,任选两种和一个地址码字段组合,可设计出64条一地址指令,其中的一种操作码设计方案如下所示:
100000 00000~100000 11111共32条
100001 00000~100001 11111共32条
最后,4条无操作数指令可为:100010 00000 00000~100010 00000 00011
43.某机字长为16位,数据总线也为16位,内存容量64KB,包含8个16位通用寄存器R0~R7。指令系统基本要求是:
◇128条双操作指令,且其中必有一操作数是寄存器直接寻址。
◇另一操作数的寻址方式有4种:立即寻址,寄存器直接寻址,寄存器间接寻址,变址寻址。立即数和变址寻址时的位移量为16位。
◇指令长度应满足16的倍数,且要求尽量短。
(1)列出通常在指令系统格式设计过程中应该考虑的主要因素。
(2)给出该机指令系统的设计方案(提示:画出指令格式图,说明指令各字段的位数和含义)。
(分数:10.00)
__________________________________________________________________________________________ 正确答案:()
解析:(1)指令格式集中体现了指令系统的功能,因此,在确定指令格式时,必须从以下几个方面综合考虑:i.操作类型:包括指令数以及操作的难易程度;
ii.数据类型:确定哪些数据类型可以参与操作;
iii.指令格式:包括指令字长、操作码位数、地址码位数、地址个数、寻址方式类型,以及指令字长和操作码位数是否可变等;
iv.寻址方式:包括指令和操作数具体有哪些寻址方式;
v.寄存器个数:寄存器的多少直接影响指令的执行时间。
(2)据题意,128条双操作数指令,则操作码取7位,其中必有一操作数是寄存器寻址,故取3位作为寄存器编号,另外一个操作数由寻址方式决定。由四种寻址方式可知,寻址特征位应取2位,对于变址寻址和立即数寻址,应该扩展一个字存放16位的位移量,所以采用双字长的指令码。该指令系统的设计方案如下所示:
标志。
44.LOAD(取数)指令的功能是将取出的数据装入累加器AC。存储器和寄存器R1的内容如下图所示。假设现执行指令LOAD 800或LOAD R1,用立即寻址、直接寻址、间接寻址、变址寻址、寄存器寻址、寄存器间接寻址六种不同的寻址方式,分别写出在各种寻址方式下装入AC的值是多少(假定R1也可作为变址寄存器)?
(分数:10.00)
__________________________________________________________________________________________
正确答案:()
解析:立即寻址方式:操作数在指令字内,形式地址A就是操作数本身,AC=800;
直接寻址方式:形式地址A为操作数的有效地址EA,即EA=A,AC=(800)=900;
间接寻址方式:形式地址指出操作数有效地址所在的存储单元地址,即EA=(A)=900,AC=(900)=1000;
变址寻址方式:有效地址为形式地址与变址寄存器IX的内容相加之和,即EA—A+(IX)=800+800=1600,
AC=(1600)=700:
寄存器寻址方式:指令字的地址段给出了寄存器R i的编号,EA=R i,操作数在Ri所指的寄存器内,AC=(R i )=800;
寄存器间接寻址方式:R i的内容不是操作数,而是操作数所在的存储单元地址,即EA=(R i ),AC=900。
45.某机器字长为16位,主存按字节编址,转移指令采用相对寻址,由两个字节组成,第一个字节为操作
码字段,第二字节为相对位移量字段。假定取指令时,每取一个字节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是 ____ 。
(分数:2.00)
A.2006H
B.2007H
C.2008H √
D.2009H
解析:本题目主要考查了指令寻址方式中的相对寻址。转移指令由两字节组成,所在主存地址为2000H,
并每取一个字节PC加1,所以寻址时PC的值等于2000H+2=2002H,又相对位移量内容是06H,所以转移后的目标地址是2002H+06H=2008H。
46.下列关于RISC的叙述中,错误的是 ____ 。
(分数:2.00)
A.RISC普遍采用微程序控制器√
B.RISC大多指令在一个时钟周期内完成
C.RISC的内部通用寄存器数量相对CISC多
D.RISC的指令数、寻址方式和指令格式种类相对CISC少
解析:本题目主要考查了RISC精简指令集计算机的特点。RISC的控制器多采用硬布线方式,以期更快的
执行速度,而CISC控制器绝大多数为微程序控制器,所以答案A不对。
47.设相对寻址的转移指令占三个字节,第一个字节是操作码,第二个字节是相对位移量(补码表示)的低8位,第三个字节是相对位移量(补码表示)的高8位。每当CPU从存储器取一个字节时,便自动完成(PC)+1→Pc。
(1)若PC当前值为256(十进制),要求转移到290(十进制),则转移指令第二、三字节的机器代码是什么(十六进制)?
(2)若PC当前值为128(十进制),要求转移到110(十进制),则转移指令第二、三字节的机器代码又是什么(十六进制)?
(分数:10.00)
__________________________________________________________________________________________ 正确答案:()
解析:(1)据题意,每当CPU取出一个字节时,PC自动加1,故PC当前值为256,取出该指令后PC值为259,要求转移到290,即相对寻址的转移地址偏移量=290-259=31,转换成补码为001FH。指令的第二个字节为相对位移量的低8位,第三个字节为高8位,故第二个字节是1FH,第三个字节为O()H。
(2)PC当前值为128,取指之后PC为131,要求转移到110,则地址偏移量一110—131=-21,转换为补码是FFDFH。指令的第二个字节为DFH,第三个字节为FFH。
48.假定在设计机器的指令系统时,对条件转移指令的设计有以下两种不同的选择:
(1)CPU A采用一条比较指令来设置相应的条件码,然后测试条件码进行转移。
(2)CPU B在转移指令中包含比较过程。
在两种CPU中,条件转移指令需要2个时钟周期,而其他的指令只需1个时钟周期。又假设在CPU A上,要执行的指令中只有20%是条件转移指令,由于每条条件指令都需要一条比较指令,因此,比较指令也占用20%。由于CPU A在转移时不需要比较,因此假设它的时钟周期时间比CPU B快1.25倍。问:
(1)哪一个CPU更快?
(2)如果CPU A的时钟周期时间仅仅比CPU B快1.1倍,哪个CPU更快?
(分数:10.00)
__________________________________________________________________________________________ 正确答案:()
解析:(1)占用2个时钟周期的条件转移指令占总数的20%,剩下的指令占用一个时钟周期。
所以
CPIA=0.2×2+0.8×1=1.2
若将程序执行过程中所处理的指令数记为IC,则总CPUA时间
TC PUA =IC A×CPI A×时钟周期A =IC A×1.2×时钟周期A
根据假设有
时钟周期B=1.25×时钟周期A
在CPU B中没有独立的比较指令,所以CPU B的程序量为CPU A的80%,转移指令的比例为
20%÷80%=25%
这些转移指令占用2个时钟周期,而其余的75%指令只占用1个时钟周期,因此有
CPI B=0.25×2+0.75×1=1.25
由于CPU B中没有比较指令,所以IC B=0.8×IC A
则总CPU B时间
TC PUB =IC B×CPI B×时钟周期B
=0.8×IC A×1.25×1.25×时钟周期A =IC A×1.25×时钟周期A
所以,尽管CPUB的执行指令条数较少,但因为CPU A有着更短的时钟周期,所以比CPU B快。
(2)如果CPU A的时钟周期时间仅仅比CPU B快1.1倍,则:
时钟周期B=1.1×时钟周期A
则总CPU B时间
TCPuB=IC B×CPI B×时钟周期B
=0.8×IC A×1.25×1.1×时钟周期A=IC A×1.1×时钟周期A
因此,CPU B由于执行更少的指令条数,比CPU A运行更快。
49.在某些计算机中,调用子程序的方法是这样实现的:转子指令将返回地址存入子程序的第一个字单元,然后从第二个字单元开始执行子程序,请回答下列问题:
1.为这种方法设计一条从子程序转到主程序的返回指令。
2.在这种情况下,怎么在主、子程序间进行参数的传递?
3.上述方法是否可用于子程序的嵌套?
4.上述方法是否可用于子程序的递归(即某个子程序自己调用自己)?
5.如果改为用堆栈方法,是否可实现(4)所提出的问题?
(分数:10.00)
__________________________________________________________________________________________ 正确答案:()
解析:(1)返回指令常称为零地址指令,返回地址保存在堆栈中,执行返回指令时自动从堆栈中弹出。而目前返回地址是保存在子程序第一个单元中,所以此时返回指令不能再是零地址指令了,而应当是一地址指令。可如下设计:
(2)在这种情况下,可利用寄存器或主存单元进行主、子程序之间的参数传递。
(3)可以用于子程序的嵌套(多重子程序),因为每个返回地址都存放在调用的子程序的第一个单元中。
(4)不可以用于子程序的递归,因为当某个子程序自己调用自己时,子程序的第一个单元的内容将被破坏。
(5)如果改为堆栈方法.可以实现子程序的递归,因为堆栈具有先进后出的功能。