计算机系统基础试卷_第1页
计算机系统基础试卷_第2页
计算机系统基础试卷_第3页
计算机系统基础试卷_第4页
计算机系统基础试卷_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《计算机系统基础》试卷(编号:A)注意事项:.本试卷适用于2018级软件工程专业学生使用。.本试卷共8页,满分100分,答题时间90分钟。.考试采用开卷形式。题号二三四总分得分得分评卷人一、单项选择题(在每小题给出的4个选项中,只有一项是正确的,将正确选项的字母标号填写在“单项选择题答题表”相应题号下的|空格中。本大题共10道小题,每小题1分,共10分)单项选择题答题表 题号12345n6789 10答案一 I IIIII n—mi iiii 108对应的十六进制形式是(_)。A.5CH B.63HC.6CH D.B4HC语言程序段:shortsi=-8196;unsignedshortusi=si;运行后,usi的值是(__)。A. 57339 B. 57340C. 8196 D. 34572.采用IEEE754单精度浮点数格式表示-1028的结果(十六进制)是(_)。A. 44808000H B. C4C04000HC. C4808000H D. 44C04000H.若已知inti=12345,floatf=1.2345e3,则在一个32位机器中执行下列表达式时,结果为“假”的是(__)。A.f==(float)(int)f B.f==(float)(double)fC.i==(int)(double)i D.i==(int)(float)i《计算机系统基础》试卷(编号:A)第1页共8页.假定某计算机按字节采用小端方式编址,一个float型变量x的地址为0xffffc000,x=12345678H,则在内存单元0xffffc001中存放的二进制串是(__)。A.01010110B B.0001001000110100BC.0101B D.00110100B.假设变量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,卜]补=DCH,则x+2y的机器数及相应的溢出标志OF分别是(_)。A.32H、1 B.FCH、1C.FCH、0 D.32H、0.对于IEEE754单精度浮点数加减运算,只要对阶时得到的两个阶之差的绝对值|AE|大于等于(_),就无需继续进行后续处理,此时,运算结果直接取阶大的那个数。A.25 B.128C.127 D.23.假设R[eax]=0000B160H,R[ebx]=00FF0110H,执行指令"imulw%bx”B,通用寄存器的内容变化情况为(_)。R[eax]=FFAC7600H,其余不变R[eax]=00007600H,R[dx]=FFACHR[eax]=00BC7600,其余不变R[eax]=00007600H,R[dx]=00BCH10.假定全局数组a的声明为char*a[8],a的首地址为0x80498c0,i在ECX中,现要将a[i]取到EAX相应宽度的寄存器中,则所用的汇编指令是()。mov0x80498c0(,%ecx),%ahmov(0x80498c0,%ecx),%ahmov0x80498c0(,%ecx,4),%eaxmov(0x80498c0,%ecx,4),%eax《计算机系统基础》试卷(编号:A)第2页共8页得分评卷人二、填空题(将第11〜20小题的答案填写在题目中的横线上。本大题共10道小题、每小题2分,共20分).程序P在时钟频率为2GHz的机器M1机器上需要运行10秒,在具有与M1相同的ISA上的运行时间是6秒。如果P在M2上的CPI是在M1上的CPI的1.5倍,则M2的时钟频率至少应是(5)GHz。.在采用16位补码的计算机中,十进制数-2047的机器数是(—F801 H)。.在IA32计算机中,执行C语言的printf("uv=%u\n",(unsignedshort)(-32768);语句后,将在终端显示uv=(—32768)。.在IA32中,与用补码表示的十进制数v(v<0)的位模式相同的无符号数u=(_v+232__)。.处理器中用来保存着最近执行的算术或逻辑指令的状态信息的部件称为(—条件码寄存器/标志寄存器/Flag寄存器)。.汇编语句movq%rdx%rbx的功能是(将rdx的内容传送到rbx)。.Movb(%rdi,%rcx)%al的寻址方式是(变址寻址)。.超标量计算机系统中负责接收实际程序指令并将所接受的指令转换为一组基本操作(微操作)的部件是( 指令译码逻辑/指令译码器/译码器 )。.链接器把编译器所产生的符号与具体物理内存单元联系起来的过程称为(—地址重定位/地址映射—)。.CPU中用来存放正在执行指令的部件称为(―指令寄存器)。得分评卷人[三、计算题(根据每小题的具体要求,解答第21至第24小题。本大题共4道小题,每小题10分,共40分。).(12分)假设有两台采用2的补码表示有符号整数的机器,机器1采用4位整数,机器2采用6位整数。填写下表中的空白单元格。intx=-5;unsignedux=x;?Expression4-bitdecimal4-bitbinary6-bitdecimal6-bitbinary最小补码数-8100032100000x>>1-311013111101(4(-1))>>2211102111110《计算机系统基础》试卷(编号:A)第3页共8页21.下表是5位补码加法的实际例子,填写表中空白单元格(数据采用二进制)。情况分为4种:1-正溢出,2-正确正值,3-正确负值,4-负溢出。xyx+yx+ty情况[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=1111111111110111Bunsigned型整数表示为32位,无符号位(高位补0),故机器数为0000FFF7H(4)41H(1分)‘A’的ASCII码是41H,char型表示为8位(1分)(5)BFE00000H(1分)-1.75=-1.11B=-1.11X20,阶码为0+127=01111111B,数符为1,尾数小数部分0.11,所以-1.75表示为10111111111000000000000000000000,用十六进制表示为BFE00000H(1分)23.采用IEEE754单精度浮点数,按照对阶、尾数相加、规格化、舍入、溢出判断等5个步骤计算0.875+(-33.75)的值。《计算机系统基础》试卷(编号:A)第4页共8页

(1)将0・875、-33.75转化为二进制的机器表示:(3分)x=0.875=0.111B=(1.110…0)2X2-1,y=-33.75=-100001.11B=(-l.00001110…0)X25,用IEEE754标准单精度格式表示为:[x]浮=00111111011000000...0[y]浮=11000010000001110...0用Ex、Ey分别表示[x]浮、[y]浮的阶码,Mx,My分别表示[x]浮、[y]浮的尾数,则有:Ex=01111110Mx=0l.110000000…0,Ey=10000100,My=11.000011100…0,尾数Mx,My的小数点前面的左起第1位为符号位,第2位是隐藏位“1”。(2)对阶(2分)(AE^k=Ex+[-Ey^k=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)2X25=-32.875得分评卷人四、综合题(通过分析或计算详细解答第25〜27小题。本大题共3道小题,每小题10分,共30分)《计算机系统基础》试卷(编号:A)第5页共8页.假设某个C语言函数func的原型声明如下:voidfunc(int*xptr,int*yptr,int*zptr);函数func的过程体对应的机器级代码用AT&T汇编形式表示如下:movl 10(%ebp),%eaxmovl 14(%ebp),%ebxmovl 18(%ebp),%ecxmovl (%ebx),%edxmovl (%ecx),%esimovl (%eax),%edimovl %edi,(%ebx)movl %edx,(%ecx)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分)TOC\o"1-5"\h\zyptr=tempx; (1分)zptr=tempy; (1分)xptr=tempz; (1分))《计算机系统基础》试卷(编号:A)第6页共8页

.已知函数comp的C语言代码及其过程体对应的汇编代码如图1所示,C语言的if-else语句对应的AT&T汇编代码结构如图2所示。给出每条汇编指令的注释,并说明为什么C代码只有一个if语句而汇编代码有两条条件转移指令。1voidcomp(charx,int*p)1voidcomp(charx,int*p)2(3if(p&&x<0)4*p+=x;5}1movb8(%ebp),%dl2movl12(%ebp),%eax3testl%eax,%eax4je.L15testb$0x80,%dl6je.L17addb%dl,(%eax)8.L1:图1comp的C语言代码及其过程体对应的汇编代码c=cond_expr;if(!c)c=cond_expr;if(!c)一gotofhlse」abel;then_statementgotodonefalse_label:else_statementdone:c=cond_expr;if(!c)一gototrue_label;else_statementgotodonetrue_label:then_statementdone:图2c语言的if-else语句对应的AT&T汇编代码结构汇编指令的注解:(6分)movb8(%ebp),%dl Z/R[dl]-M[R[ebp]+8],Wx送DLmovl 12(%ebp),%eax Z/R[eax]-M[R[ebp]+12],Wp送EAXtestl %eax,%eax Z/R[eax]andR[eax],判断p是否为0je.L1〃若p为0,则转.L1执行testb$0x80,%dl//R[dl]and80H,判断x的第一位是否为0je.L1//若x>=0,则转.L1执行addb%dl,(%eax) //M[R[eax]]-M[R[eax]]+R[dl],即*p+=x.L1:因为C语言if语句中的条件表达式可以对多个条件进行逻辑运算,而汇编代码中一条指令只能进行一种逻辑运算,并且在每条逻辑运算指令生成的标志都是存放在同一个EFLAGS寄存器中,所以,最好在一条逻辑指令后跟一条条件转移指令,把EFLAGS中标志用完,然后再执行另一次逻辑判断并根据条件进行转移的操作。(4分)《计算机系统基础》试卷(编号:A)第7页共8页

.图3a与图3b分别表示了一个C语言程序的两个源文件main.c与procl.c的内容。试分析回答:(1)main.c与procl.c中出现的符号哪些是强符号?哪些是弱符号?各变量的存储空间分配在ELF哪个节中?各占几个字节?(2)程序执行后的打印结果是什么?分别画出执行第7行的proc1()函数调用前、后,在地址&x和&z中存放的内容。doublex;voidproc1()doublex;voidproc1()(x=-2.5;}unsignedx=3527;shorty,z=120;voidproc1(void);voidmain()(proc1();printf("x=%u,z=%d\n",x, z)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论