您好,欢迎访问三七文档
《计算机系统基础》试卷(编号:A)第1页共8页《计算机系统基础》试卷(编号:A)注意事项:1.本试卷适用于2018级软件工程专业学生使用。2.本试卷共8页,满分100分,答题时间90分钟。3.考试采用开卷形式。题号一二三四总分得分得分评卷人一、单项选择题(在每小题给出的4个选项中,只有一项是正确的,将正确选项的字母标号填写在“单项选择题答题表”相应题号下的空格中。本大题共10道小题,每小题1分,共10分)单项选择题答题表题号12345678910答案1.108对应的十六进制形式是(__)。A.5CHB.63HC.6CHD.B4H2.C语言程序段:shortsi=–8196;unsignedshortusi=si;运行后,usi的值是(__)。A.57339B.57340C.8196D.345723.采用IEEE754单精度浮点数格式表示–1028的结果(十六进制)是(__)。A.44808000HB.C4C04000HC.C4808000HD.44C04000H4.若已知inti=12345,floatf=1.2345e3,则在一个32位机器中执行下列表达式时,结果为“假”的是(__)。A.f==(float)(int)fB.f==(float)(double)fC.i==(int)(double)iD.i==(int)(float)i装订线班级:姓名:学号:《计算机系统基础》试卷(编号:A)第2页共8页5.假定某计算机按字节采用小端方式编址,一个float型变量x的地址为0xffffc000,x=12345678H,则在内存单元0xffffc001中存放的二进制串是(__)。A.01010110BB.0001001000110100BC.0101BD.00110100B6.假设变量x的位数为n(n=8),使得x的最高有效字节不变,其余各位全变为0的C语言表达式为(__)。A.((x&0xFF)(n-8))(n-8)B.((x&0xFF)(n-8))(n-8)C.(x(n-8))(n-8)D.(x(n-8))(n-8)7.若在一个8位计算机中完成x+2y的运算,假定变量x和y的机器数用补码表示为[x]补=44H,[y]补=DCH,则x+2y的机器数及相应的溢出标志OF分别是(__)。A.32H、1B.FCH、1C.FCH、0D.32H、08.对于IEEE754单精度浮点数加减运算,只要对阶时得到的两个阶之差的绝对值|ΔE|大于等于(__),就无需继续进行后续处理,此时,运算结果直接取阶大的那个数。A.25B.128C.127D.239.假设R[eax]=0000B160H,R[ebx]=00FF0110H,执行指令“imulw%bx”后,通用寄存器的内容变化情况为(__)。A.R[eax]=FFAC7600H,其余不变B.R[eax]=00007600H,R[dx]=FFACHC.R[eax]=00BC7600,其余不变D.R[eax]=00007600H,R[dx]=00BCH10.假定全局数组a的声明为char*a[8],a的首地址为0x80498c0,i在ECX中,现要将a[i]取到EAX相应宽度的寄存器中,则所用的汇编指令是()。A.mov0x80498c0(,%ecx),%ahB.mov(0x80498c0,%ecx),%ahC.mov0x80498c0(,%ecx,4),%eaxD.mov(0x80498c0,%ecx,4),%eax《计算机系统基础》试卷(编号:A)第3页共8页得分评卷人二、填空题(将第11~20小题的答案填写在题目中的横线上。本大题共10道小题、每小题2分,共20分)10.程序P在时钟频率为2GHz的机器M1机器上需要运行10秒,在具有与M1相同的ISA上的运行时间是6秒。如果P在M2上的CPI是在M1上的CPI的1.5倍,则M2的时钟频率至少应是(5)GHz。11.在采用16位补码的计算机中,十进制数-2047的机器数是(____F801_____H)。12.在IA32计算机中,执行C语言的printf(uv=%u\n,(unsignedshort)(-32768);语句后,将在终端显示uv=(___32768_____)。13.在IA32中,与用补码表示的十进制数v(v0)的位模式相同的无符号数u=(_v+232__)。14.处理器中用来保存着最近执行的算术或逻辑指令的状态信息的部件称为(___条件码寄存器/标志寄存器/Flag寄存器____)。15.汇编语句movq%rdx%rbx的功能是(_____将rdx的内容传送到rbx_____)。16.Movb(%rdi,%rcx)%al的寻址方式是(___变址寻址____)。17.超标量计算机系统中负责接收实际程序指令并将所接受的指令转换为一组基本操作(微操作)的部件是(_____指令译码逻辑/指令译码器/译码器_____)。18.链接器把编译器所产生的符号与具体物理内存单元联系起来的过程称为(___地址重定位/地址映射___)。19.CPU中用来存放正在执行指令的部件称为(____指令寄存器___________)。得分评卷人三、计算题(根据每小题的具体要求,解答第21至第24小题。本大题共4道小题,每小题10分,共40分。)20.(12分)假设有两台采用2的补码表示有符号整数的机器,机器1采用4位整数,机器2采用6位整数。填写下表中的空白单元格。intx=-5;unsignedux=x;?Expression4-bitdecimal4-bitbinary6-bitdecimal6-bitbinary最小补码数-81000-32100000x1-31101-3111101(−xˆ(−1))2-21110-2111110《计算机系统基础》试卷(编号:A)第4页共8页21.下表是5位补码加法的实际例子,填写表中空白单元格(数据采用二进制)。情况分为4种:1-正溢出,2-正确正值,3-正确负值,4-负溢出。xyx+yx+yt5情况[10100][10001][100101][00101]4[11000][11000][110000][10000]3[00010][00101][000111][00111]2[01100][00100][010000][10000]122.一个在32位计算机中运行的C语言程序中对变量设置了初值,写出它们对应的十六进制机器数,要求简要说明理由。(1)intx=-32768(2)shorty=532(3)unsignedz=65527(4)charc=’A’(5)floata=-1.75(1)FFFF8000H(1分)-215=-1000000000000000B,负数符号位为1,int型整数表示为32位,故机器数为1…11000000000000000=FFFF8000H(1分)(2)0224H(1分)532=1000010100B,正数符号位为0,short型整数表示为16位,故机器数为0000001000010100=0214H(1分)(3)0000FFF7H(1分)65527=216-1-8=1111111111110111B,unsigned型整数表示为32位,无符号位(高位补0),故机器数为0000FFF7H(4)41H(1分)‘A’的ASCII码是41H,char型表示为8位(1分)(5)BFE00000H(1分)-1.75=-1.11B=-1.11×20,阶码为0+127=01111111B,数符为1,尾数小数部分0.11,所以-1.75表示为10111111111000000000000000000000,用十六进制表示为BFE00000H(1分)23.采用IEEE754单精度浮点数,按照对阶、尾数相加、规格化、舍入、溢出判断等5个步骤计算0.875+(-33.75)的值。《计算机系统基础》试卷(编号:A)第5页共8页(1)将0.875、-33.75转化为二进制的机器表示:(3分)x=0.875=0.111B=(1.110...0)2×2-1,y=-33.75=-100001.11B=(-l.00001110...0)×25,用IEEE754标准单精度格式表示为:[x]浮=00111111011000000...0,[y]浮=11000010000001110...0用Ex、Ey分别表示[x]浮、[y]浮的阶码,Mx,My分别表示[x]浮、[y]浮的尾数,则有:Ex=01111110,Mx=0l.110000000...0,Ey=10000100,My=11.000011100...0,尾数Mx,My的小数点前面的左起第1位为符号位,第2位是隐藏位“1”。(2)对阶(2分)(ΔE)补=Ex+[-Ey]补=01111110+01111100=1111l010(mod28)=-6,故Ex向Ey对齐Ex=Ey=10000100,Mx,=00.000001110...0,即将x的尾数右移6位,符号不变,数值高位0,隐藏位右移到小数点后面,并保留最后移出的两位。(3)尾数相加(2分)Mb=Mx+My=00.000001110...00+11.000011100...0=11.000001110...000(3)规格化(1分)所得尾数已经是规格化的形式(数值部分最高位为1)。(4)舍入(1分)将结果的尾数Mb中最后两位附加位进行舍入得:11.000001110...0(5)溢出判断(1分)上述阶码计算和调整过程中,没有发生”阶码上溢”和"阶码下溢的问题最终结果为Eb=10000100,Mb=l(l).000001110...0,即:(-1.00000111)2×25=-32.875得分评卷人四、综合题(通过分析或计算详细解答第25~27小题。本大题共3道小题,每小题10分,共30分)《计算机系统基础》试卷(编号:A)第6页共8页24.假设某个C语言函数func的原型声明如下:voidfunc(int*xptr,int*yptr,int*zptr);函数func的过程体对应的机器级代码用AT&T汇编形式表示如下:(1)movl10(%ebp),%eax(2)movl14(%ebp),%ebx(3)movl18(%ebp),%ecx(4)movl(%ebx),%edx(5)movl(%ecx),%esi(6)movl(%eax),%edi(7)movl%edi,(%ebx)(8)movl%edx,(%ecx)(9)movl%esi,(%eax)解答下列问题:(1)在过程体开始时三个入口参数对应实参所存放的存储单元地址是什么?(提示:当前栈帧底部由帧指针寄存器EBP指示)(2)根据上述机器级代码写出函数func的C语言代码。(1)xptr对应实参所存放的存储单元地址:R[ebp]+10;(1分)yptrr对应实参所存放的存储单元地址:R[ebp]+14;(1分)zptr对应实参所存放的存储单元地址:R[ebp]+18。(1分)(2)函数func的C语言代码如下:voidfunc(int*xptr,int*yptr,int*zptr)(1分){inttempx=*xptr;(1分)inttempy=*yptr;(1分)inttempz=*zptr;(1分)*yptr=tempx;(1分)*zptr=tempy;(1分)*xptr=tempz;(1分)}《计算机系统基础》试卷(编号:A)第7页共8页25.已知函数comp的C语言代码及其过程体对应的汇编代码如图1所示,C语言的if-else语句对应的AT&T汇编代码结构如图2所示。给出每条汇编指令的注释,并说明为什么C代码只有一个if语句而汇编代码有两条条件转移指令。图1comp的C语言代码及其过程体对应的汇编代码图2C语言的if-else语句对应的AT&T汇编代码结构汇编指令的注解:(6分)movb8(%ebp),%dl//R[dl]←M[R[ebp]+8],将x送DLmovl12(%ebp),%eax//R[e
本文标题:计算机系统基础试卷
链接地址:https://www.777doc.com/doc-5208605 .html