5. 在计算机体系结构中,CPU内部包括程序计数器PC、存储器数据寄存器MDR、指令寄存器IR和存储器地址寄存器MAR等。若CPU要执行的指令为:MOV R0,#100(即将数值100传送到寄存器R0中),则CPU首先要完成的操作是(10)。
(10)A.100→R0
B. 100→MDR
C. PC→MAR
D. PC→IR
参考答案:(10)D 。
解析:程序计数器指向指令寄存器地址,然后就可以执行下面的指令了
MOV R0,#100,采用的是立即数寻址方式,这条指令(包含操作数R0和#100)被汇编器编译成一条机器代码,此指令执行前被加载到指令缓冲队列里,执行时 CPU在读取此机器代码时就读取了#100,#100立即就可以被送往R0(而不用到寄存器或者内存中去取操作数),因此叫做立即数寻址,指令执行效率最高。
6. 某指令流水线由5段组成,各段所需要的时间如图2所示。连续输入10条指令时的吞吐率为 (11) 。
图 2
(11) A.0.1428/Δt
B.0.2041/Δt
C.0.2857/Δt
D.0.3333/Δt
参考答案:(11)C。
解析:从图3-2中可看出,该流水线各段所经历的时间不一样,因此,该指令流水线吞吐率的计算公式为
,式中m为流水线的段数;n为输入的指令数;Δti为第i段所需时间;Δtj为该段流水线中瓶颈段的时间。将题中已知条件代入上式,则吞吐率TP的计算结果如下所示。
7. 设有定义"enumterm{my,your=4,his,her=his+10};",则
printf("%d,%d,%d,%d ",my,your,his,her);的输出是(12)
(12) A.0,l,2,3
B.0,4,0,10
C.0,4,5,15
D.1,4,5,15
参考解答:(12) C。
解析:按枚举类型定义的规定,枚举类型team的枚举常量对应的整数分别是my=0、your=4、his=5、her=15。所以语句输出0,4,5,15。解答是C。
8.以下对枚举类型名的定义中,正确的是(13)
(13) A.enuma={one,two,three};
B.enuma{a1,a2,a3};
C. enuma={’1’,’2’,’3’};
D. enuma{"one","two","three"};
参考答案:(13) B。
解析:枚举类型定义的句法是:
enum枚举类型名{枚举类型常量1,枚举类型常量2,……};
其中枚举类型常量都是互不相同的标识符。所以定义enuma{a1,a2,a3};
是一个正确的定义。任何在枚举类型名之后接上=,或用字符常量,或用字符串常量作为枚举类型常量都是不正确的定义。解答应是B。
9. CPU执行程序时,为了从内存中读取指令,需要先将 (14) 的内容输送到地址总线上。
(14) A.指令寄存器
B.标志寄存器
C.程序计数器
D.变址寄存器
参考答案:(14)C。
解析:当CPU从内存中读取指令的时候(即在存取指令周期中),CPU首先将程序计数器(PC)的内容送到地址总线上,同时送出内存的读控制信号,将所选中的内存单元的内容读入CPU,并将其存放在指令寄存器中。
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |