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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 PAGE 5页(共NUMPAGES 8页) 考试中心填写: 年 月 日 年 月 日 考试用 课程名称:计算机组成与结构B(2016春);试卷编号:A;考试时间:120分钟 姓名: 姓名: 学号: 专业班级: 题号 一 二 三 四 五 六 七 八 九 十 总分 应得分 10 40 20 30 100 实得分 评卷人 评分: 一、单项选择题(每小题2分,共10分) 1、关于IA-32与x86-64的不同,以下说法正确的是 ( )。 (a) x86-64不可能遭受缓冲区溢出攻击 (b) IA-32具有调用者保存及被调用者保存寄存器使用惯例,x86-64没有此惯例 (c) 在x84-64机器中,任何针对32位操作数的指令都是非法的 (d) 以上都不是 2、在64位系统中,子程序RETQ指令执行前% rsp寄存器的值为0x7fffff0000,请问在执行RETQ之后% rsp的值为 ( )。 (a) 0x7fffff0008 (b) 0x7fffff0004 (c) 0x7fffff0000 (d) 0x7ffffefff8 3、以下表述中哪个最符合X86汇编指令TEST ( )。 (a) 同SUB指令完全一样 (b) 类似于SUB指令,但不保留结果(仅设置标志位) (c) 同AND指令完全一样 (d) 类似于AND指令,但不保留结果(仅设置标志位) 4、在IEEE浮点格式中,如果分配更多位数给指数部分,将会导致 ( )。 (a) 可表示的数值个数减少,但能表达更大的数 (b) 可表示的数值个数不变,但具有更多的小数位数 (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编译后,汇编代码如下: lolwut: pushl %ebp movl %esp, %ebp subl $16, %esp movl $0, -8(%ebp) movl $0, -4(%ebp) jmp .L2 .L6: movl -4(%ebp), %eax addl 8(%ebp), %eax movzbl (%eax), %eax cmpb $47, %al jle .L3 movl -4(%ebp), %eax addl 8(%ebp), %eax movzbl (%eax), %eax cmpb $57, %al jle .L4 .L3: movl $-1, %eax jmp .L5 .L4: movl -8(%ebp), %edx movl %edx, %eax sall $2, %eax addl %edx, %eax addl %eax, %eax movl %eax, %edx movl -4(%ebp), %eax addl 8(%ebp), %eax movzbl (%eax), %eax movsbl %al,%eax leal (%edx,%eax), %eax subl $48, %eax movl %eax, -8(%ebp) addl $1, -4(%ebp) .L2: movl -4(%ebp), %eax addl 8(%ebp), %eax movzbl (%eax), %eax testb %al, %al jne .L6 movl -8(%ebp), %eax .L5: leave ret 请将上面这段缺失的C代码填写完整(8分)。 在进入函数时执行了两条指令 pushl %ebp movl %esp, %ebp 在退出时的leave指令等价于: m

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档