PAGE 7
ICS 2015 期中试题
第一题 单项选择题(每小题1分,共20分)
给定一个实数,会因为该实数表示成单精度浮点数而发生误差。不考虑NaN和Inf的情况,该绝对误差的最大值为:
A. 2103 B. 2104 C. 2230
参考信息:单精度浮点数阶码8位,尾数23位
以下说法错误的是:
负数加上负数结果可能为正数
正数加上正数结果可能为负数
用&和~可以表示所有的逻辑与或非操作
用&和|可以表示所有的逻辑与或非操作
在32位平台上,按C90标准以下语句中,结果为假的是:
return INT_MIN < INT_MAX;
return -2147483648 < 2147483647;
int a = -2147483648; return a < 2147483647;
return -2147483647-1 < 2147483647;
参考信息:
C90的转换顺序:int -> long -> unsigned -> unsigned long
2
关于浮点数,以下说法正确的是:
给定任意浮点数a,b和x,如果a>b成立(求值为1),则一定a+x>b+x成立
不考虑结果为NaN、Inf或运算过程发生溢出的情况,高精度浮点数一定得到比低精度浮点数更精确或相同的结果
不考虑输入为NaN、Inf的情况,高精度浮点数一定得到比低精度浮点数更精确或相同的结果
给定任意浮点数a, b和x,如果a>b不成立(求值为0),则一定a+x>b+x不成立。
已知下面的数据结构,假设在Linux/IA32下要求对齐,这个结构的总的大小是多少个字节?如果重新排列其中的字段,最少可以达到多少个字节?
struct {
char a;
double *b;
double c;
short d;
long long e;
short f;
};
A. 32, 28 B. 36, 32 C. 28, 26 D. 26, 26
下列寻址模式中,正确的是:
A. (%eax, , 4) B. (%eax, %esp, 3)
C. 123 D. $1(%ebx, %ebp, 1)
假设存储器按“大端法”存储数据对象,已知如下的C语言数据结构:union { char c[2]; int i; }; 当c的值为0x01, 0x23时,i的值为:
A. 0x0123 B. 0x2301 C. 0 D.不确定
假设某条C语言switch语句编译后产生了如下的汇编代码及跳转表:
movl 8(%ebp), %eax
subl $48, %eax
cmpl $8, %eax
ja .L2
jmp *.L7(, %eax, 4)
.L7:
.long .L3
.long .L2
.long .L2
.long .L5
.long .L4
.long .L5
.long .L6
.long .L2
.long .L3
在源程序中,下面的哪些(个)标号出现过:
A. ‘2’, ‘7’
B. 1
C. ‘3’
D. 5
x86体系结构中,下面哪个说法是正确的?
A. leal指令只能够用来计算内存地址
B. x86_64机器可以使用栈来给函数传递参数
C. 在一个函数内,改变任一寄存器的值之前必须先将其原始数据保存在栈内
D. 判断两个寄存器中值大小关系,只需要SF和ZF两个条件码
下列的指令组中,哪一组指令只改变条件码,而不改变寄存器的值?
A. CMP, SUB B. TEST, AND C. CMP, TEST D. LEAL, CMP
下面有关指令系统设计的描述正确的是:
采用CISC指令比RISC指令代码更长。
采用CISC指令比RISC指令运行时间更短
采用CISC指令比RISC指令译码电路更加复杂
采用CISC指令比RISC指令的流水线吞吐更高
一个功能模块包含组合逻辑和寄存器,组合逻辑单元的总延迟是100ps,单个寄存器的延时是20ps,该功能模块执行一次并保存执行结果,理论上能达到的最短延时和最大吞吐分别是多少?
20ns, 50GIPS
120ns,50GIPS
120ns,10GIPS
20ps,10GIPS
关于流水线技术的描述,错误的是:
流水线技术能够提高执行指令的吞吐率,但也同时增加单条指令的执行时间。
减少流水线的级数,能够减少数据冒险发生的几率。
指令间数据相关引发的数据冒险,都可以通过data forwarding来解决。
现代处理器支持一个时钟内取指、执行多条指令,会增加控制冒险的开销。
在Y86的SEQ实现中,PC(Program Counter,程序计数器)更新的