2017年南开第三届计算机系统能力峰会资料教学课件计算机组成与结构2016春期末考试卷a

上传人:E**** 文档编号:100315491 上传时间:2019-09-23 格式:DOCX 页数:8 大小:31.46KB
返回 下载 相关 举报
2017年南开第三届计算机系统能力峰会资料教学课件计算机组成与结构2016春期末考试卷a_第1页
第1页 / 共8页
2017年南开第三届计算机系统能力峰会资料教学课件计算机组成与结构2016春期末考试卷a_第2页
第2页 / 共8页
2017年南开第三届计算机系统能力峰会资料教学课件计算机组成与结构2016春期末考试卷a_第3页
第3页 / 共8页
2017年南开第三届计算机系统能力峰会资料教学课件计算机组成与结构2016春期末考试卷a_第4页
第4页 / 共8页
2017年南开第三届计算机系统能力峰会资料教学课件计算机组成与结构2016春期末考试卷a_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《2017年南开第三届计算机系统能力峰会资料教学课件计算机组成与结构2016春期末考试卷a》由会员分享,可在线阅读,更多相关《2017年南开第三届计算机系统能力峰会资料教学课件计算机组成与结构2016春期末考试卷a(8页珍藏版)》请在金锄头文库上搜索。

1、考试中心填写:年 月 日考试用湖南大学课程考试试卷课程名称:计算机组成与结构B(2016春);试卷编号:A;考试时间:120分钟姓名: 学号: 专业班级:题号一二三四五六七八九十总分应得分10402030100实得分评卷人评分:一、单项选择题(每小题2分,共10分)1、关于IA-32与x86-64的不同,以下说法正确的是 ( )。(a) x86-64不可能遭受缓冲区溢出攻击(b) IA-32具有调用者保存及被调用者保存寄存器使用惯例,x86-64没有此惯例(c) 在x84-64机器中,任何针对32位操作数的指令都是非法的(d) 以上都不是2、在64位系统中,子程序RETQ指令执行前% rsp寄

2、存器的值为0x7fffff0000,请问在执行RETQ之后% rsp的值为 ( )。(a) 0x7fffff0008(b) 0x7fffff0004(c) 0x7fffff0000(d) 0x7ffffefff83、以下表述中哪个最符合X86汇编指令TEST ( )。(a) 同SUB指令完全一样(b) 类似于SUB指令,但不保留结果(仅设置标志位)(c) 同AND指令完全一样(d) 类似于AND指令,但不保留结果(仅设置标志位)4、在IEEE浮点格式中,如果分配更多位数给指数部分,将会导致 ( )。(a) 可表示的数值个数减少,但能表达更大的数(b) 可表示的数值个数不变,但具有更多的小数位数

3、(c) 表数范围增大,但表数精度降低(d) 先前可表达的一些数可能会被舍入为无穷大5、32位补码表示的最小整数值是 ( )。(a) -232(b) -232 + 1(c) -231(d) -231 +1二、(40分)以下有三段完整或者不完整的C程序段,题目给出了它们对应的汇编代码,请利用你掌握的C语言和汇编语言知识,采用逆向工程的思维,回答下面的问题。(1) 某程序的C代码及其汇编代码如下:(14分)int lolwut (char *s) int i, n;n = 0;for(i = ; ; i+)if ( )return -1;n = ;return ;gcc编译后,汇编代码如下:lolw

4、ut:pushl%ebpmovl%esp, %ebpsubl$16, %espmovl$0, -8(%ebp)movl$0, -4(%ebp)jmp.L2.L6:movl-4(%ebp), %eaxaddl8(%ebp), %eaxmovzbl(%eax), %eaxcmpb$47, %aljle.L3movl-4(%ebp), %eaxaddl8(%ebp), %eaxmovzbl(%eax), %eaxcmpb$57, %aljle.L4.L3:movl$-1, %eaxjmp.L5.L4:movl-8(%ebp), %edxmovl%edx, %eaxsall$2, %eaxaddl%e

5、dx, %eaxaddl%eax, %eaxmovl%eax, %edxmovl-4(%ebp), %eaxaddl8(%ebp), %eaxmovzbl(%eax), %eaxmovsbl%al,%eaxleal(%edx,%eax), %eaxsubl$48, %eaxmovl%eax, -8(%ebp)addl$1, -4(%ebp).L2:movl-4(%ebp), %eaxaddl8(%ebp), %eaxmovzbl(%eax), %eaxtestb%al, %aljne.L6movl-8(%ebp), %eax.L5:leaveret 请将上面这段缺失的C代码填写完整(8分)。

6、在进入函数时执行了两条指令pushl%ebpmovl%esp, %ebp在退出时的leave指令等价于:movl%ebp, %esppopl%ebp请解释这些指令的意义。(6分)(2) 有如下C语言程序,请在空格处填充适当的整数,使程序运行后仅输出“I am a HNUer”字符串。(18分)#include void foo()int a,*p;p=(int*)(int)&a+ );*p+= ;int main()int i=e;int j=p;foo();printf(不能被打印的内容n);i+=2;j+= ;printf(I am a HNU);printf(%c,i);printf(%

7、cn,j);return 0;在用objdump查看对应的目标文件时,main函数块的内容如下: 08048472 : 8048472:55 push %ebp 8048473:89 e5 mov %esp,%ebp 8048475:83 e4 f0 and $0xfffffff0,%esp 8048478:83 ec 20 sub $0x20,%esp 804847b:c7 44 24 1c 65 00 00 movl $0x65,0x1c(%esp) 8048482:00 8048483:c7 44 24 18 70 00 00 movl $0x70,0x18(%esp) 804848a:

8、00 804848b:e8 c4 ff ff ff call 8048454 8048490:c7 04 24 a0 85 04 08 movl $0x80485a0,(%esp) 8048497:e8 e8 fe ff ff call 8048384 804849c:83 44 24 1c 02 addl $0x2,0x1c(%esp) 80484a1:83 44 24 18 ? addl $0x?,0x18(%esp) /?代表一个数字 80484a6:b8 b9 85 04 08 mov $0x80485b9,%eax 80484ab:89 04 24 mov %eax,(%esp) 8

9、0484ae:e8 c1 fe ff ff call 8048374 80484b3:8b 44 24 1c mov 0x1c(%esp),%eax 80484b7:89 04 24 mov %eax,(%esp) 80484ba:e8 95 fe ff ff call 8048354 80484bf:b8 c4 85 04 08 mov $0x80485c4,%eax 80484c4:8b 54 24 18 mov 0x18(%esp),%edx 80484c8:89 54 24 04 mov %edx,0x4(%esp) 80484cc:89 04 24 mov %eax,(%esp) 8

10、0484cf:e8 a0 fe ff ff call 8048374 80484d4:b8 00 00 00 00 mov $0x0,%eax 80484d9:c9 leave 80484da:c3 ret请根据以上内容作答:处应填整数_(2分),因为_。(4分)处应填整数_(2分),因为_。(4分)处应填整数_(2分),因为_。(4分)(3) 考虑下面数组访问的C程序:#include stdio.h#define H ? /定义常数H#define J ? /定义常数Jint array1HJ; int array2JH; void f (int x, int y) array1xy = x+1;array2yx=y-1;int main( )return 0;经过gcc汇编后,得到的函数f汇编代码如下:f:pushl%ebpmovl%esp, %ebpp

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号