湖南大学CS-2019期末考试解析

这篇具有很好参考价值的文章主要介绍了湖南大学CS-2019期末考试解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【特别注意】

答案来源于@wolf

是我在备考时自己做的,仅供参考,若有不同的地方欢迎讨论。

【试卷评析】

有必要一做。

【试卷与答案】

湖南大学CS-2019期末考试解析

 

一. 填空题(10 分,每空 2 分)

1. 0xb1e56f07 存放在采用小端存储的机器上,地址为 0x3287 0x328a ,则 0x3288 处存
放值为 ______( 以十六进制小写格式表示例 0xff)
2. 根据操作数特点,用恰当的 MOV 类指令补全下列残缺数据传送指令 : _______ %eax,%bh
3. 已知 %eax=0X100,%ebx=0X3;
内存中指定地址的值列表如下:
地址   值
0X100 0x9c
0X104 0xf4
0X108 0xc5
0X10C 0x5a
则指令 addl 0x40,(%eax,%ebx,4) 将地址 __________ 中的值更新为 ___________
4. 假设寄存器 %ebx 的值为 0xa3391eb1, 执行以下指令后
movl %ebx,%ecx
movw $0x2311,%bx
movb $0x03,%bl
cmpl %ecx,%ebx
jae .L1
addl $0x8,%ebx
jmp .L2
.L1:
subl $0x9,%ebx
.L2:
%ebx 的值为 ______( 以十六进制格式小写表示例 0xffffffff)
【答案】
1. 0x6f
2. movb
3. 0x1c 0x9a
4. 0xa33922fa

二.(10 分)

假设一个基于 IEEE 浮点格式的 9 位浮点表示,有 1 个符号位,4 个阶码位(k=4)和 4 个尾
数位(n=4)。
1.请给出值-1.375 的二进制位表示(2 分)。
2.请简单说明规格化值、非规格化值及特殊值的判断方式与值计算方法(4 分)。
3.请写出正数中最小的非规格化数、最大的非规格化数、最小的规格化数、最大的规格化数
的二进制位表示(4 分)。

【答案】 

湖南大学CS-2019期末考试解析

三.(30 分)

以下有两段完整或者不完整的 C 程序段及相应的汇编代码(在 32 位环境下),请回答相关问题。

(1) (15 分)

考虑以下代码,其中 A B 是用 #define 声明的常数:
int array1[A][B];
int array2[B][A];
int test(int I, int j){
return array1[i][j] + array2[j][i];
}
编译上述代码得到如下汇编代码:
movl 8(%ebp), %ecx
movl 12(%ebp), %edx
leal 0( , %ecx, 4), %eax
subl %ecx, %eax
addl %edx, %eax
leal (%edx, %edx, 4), %edx
addl %ecx, %edx
movl array1( , %eax, 4), %eax
addl array2( , %edx, 4), %eax
假设 i %ebp + 8 的位置, j %ebp + 12 的位置,考虑到行优先访问策略,请根据这
段汇编代码确定 A B 的值,并给出分析过程。
【答案】 A=5,B=3。过程较为简单,略。

(2)(15 分)

下面的 C 语言代码省略了 switch 语句的主体部分。在 C 代码中,标号是不连续的,并且有
些情况还有多个标号。
int switch(int x){
int result = 0;
switch(x){
/*Some switch body here*/
}
return result;
}
GCC 编译后生成如下代码。(变量 x 开始时位于相对于寄存器 &ebp 偏移量为 8 的地方)
movl 8(%ebp), %eax
/*set up jump table access*/
addl $3, %eax
cmpl $6, %eax
ja .L2
jmp * .L8( , %eax, 4)
跳转表如下:
.L8:
.long .L3
.long .L2
.long .L4
.long .L5
.long .L6
.long .L6
.long .L7
根据上述信息回答问题(需要给出详细分析过程):
A. switch 语句体内情况标号的值是多少?
B. C 代码中哪些情况有多个标号?
【答案】 湖南大学CS-2019期末考试解析

 

四.(15 分)

一段函数调用的 C 代码如下:
#include”stdio.h”
main()
{
int arg1=718;
int arg2=415;
int diff = swap_sub(&arg1, &arg2);
printf (“diff=%d\n”, diff);
}
int swap_sub(int*xp, int*yp)
{
int x=*xp;
int y=*yp;
int z=0;
*xp=y;
*yp=x;
z=x-y;
return z;
}

要求在下面的栈帧图中(每一格 4 字节):

湖南大学CS-2019期末考试解析

 

1.将“RtnAddr”作为返回地址内容,填入栈帧中的准确位置;
2.在主函数栈帧中的正确位置,写出传递参数的准确值;
3.在子函数栈帧中的正确位置,写出子函数执行完毕后各局部变量的准确值;

 【答案】(有一点疑惑,不过感觉应该都可以)

湖南大学CS-2019期末考试解析

五.(15 分)

现有包含 main 函数的可执行程序由 GNU OBJDUMP 工具生成的反汇编代码,如下是其中
一部分:
问:
1 )此图中每一行冒号前面的部分表示什么内容?此图对应的机器代码可能属于 ELF 的哪
个节( section )?
(2)由此图可知,这里出现了哪种类型的重定位?这种类型的重定位有什么特点?
(3)重定位之后,此图哪些部分会发生变化?
  【答案】(“哪些变化”主要是fcffffff会被替换)
湖南大学CS-2019期末考试解析

 

六(20 分)

假定某处理器带有一个数据区容量为 128B 的数据 cache ,采用直接映射方式,块大小为
32B ,主存容量 32K 。以下 C 语言程序段运行在该处理器上,设 sizeof(int)=4 ,编译器将
变量 i, j, k, sum 都分配在通用寄存器中,因此,只要考虑数组元素的访存情况,假定数
a 从第一个主存块开始处存放。请回答下列问题:
1 )该 cache 有多少组?主存地址中的标记位、组索引和块偏移字段分别占几位?
(2)当 k=15 k=16 时,执行以下程序的过程中,数据访问不命中率分别是多少?
int i, j, k,sum;
int a[64];
for ( i = 0; i < 100; i++ ){
for ( j = 0; j < 64; j=j+k ){
sum+=a[j]; }}

 【答案】

(1)4组,分别占8,2,5

(2)100%;80.2%

湖南大学CS-2019期末考试解析文章来源地址https://www.toymoban.com/news/detail-481823.html

到了这里,关于湖南大学CS-2019期末考试解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 湖南大学python头歌实训 实验2:分支语句(一)

    第二章-Python语言基础-2.1简单计算问题的求解(理科) 第1关:数据输入与输出 编程要求 根据提示,在右侧编辑器补充代码,完成如下程序的编写。 第一题 在屏幕上输出字符串:hi, \\\"how are you\\\" ,I\\\'m fine and you 第二题 从键盘输入两个整数,计算两个数相除的商与余数 假设输入

    2024年04月13日
    浏览(32)
  • Qt 物联网系统界面开发 “ 2022湖南省大学生物联网应用创新设计竞赛技能赛 ——应用物联网的共享电动自行车 ”

    本篇源于 “ 2022 湖南省大学生物联网应用创新设计竞赛技能赛参考样题 ” ——应用物联网的共享电动自行车 针对共享电动自行车应用场景,设计实现共享电动自行车、用户、管理等相关人、物互联的物联网系统。假设系统由电动自行车、后端服务器、前端应用终端、以及电

    2024年02月11日
    浏览(31)
  • 西安石油大学期末考试C++真题解析

    1、一、类型、返回值类型 二、参数表、函数重载 2、一、实例化 二、实例化的类型或类 类是对象的蓝图,对象是类的实例化 3、const 4、一个 两个 5、一、公有继承 二、私有继承、保护继承 6、抽象类、实例化对象 7、函数模板、类模板 8、try、catch、throw 9、流插入运算符、流

    2024年02月11日
    浏览(37)
  • linux大学期末考试题库

    1、小明想在linux的tmp临时目录下新建一个名为“ruanjian”的目录,请写出新建目录的linux命令;然后进入这个“ruanjian”目录,在当前目录下新建一个空文件,名为“jiying.txt”,请写出相应命令;在当前目录下,小明想将主目录下的文件夹“hello”及其子目录和文件都复制到当前

    2024年02月08日
    浏览(31)
  • 【网络安全】大学信息安全技术 期末考试复习题

    一、单选题(一) 1、在以下人为的恶意攻击行为中,属于主动攻击的是( )A A.数据篡改及破坏 B.数据窃听 C.数据流分析 D.非法访问 2、数据完整性指的是( )C A.保护网络中各系统之间交换的数据,防止因数据被截获而造成泄密 B.提供连接实体身份的鉴别 C.防止非

    2024年02月11日
    浏览(44)
  • 《大学英语4》期末考试复习(一)听力原文+答案速记

    目录 Unit 1 Long conversation Passage 1 Unit 2 Long conversation Passage 1 Unit 3 Long conversation Passage 1 Unit 4 Long conversation Passage 1 Unit 5 Long conversation Passage 1 Unit 6 Long conversation Passage 1 Unit 7 Long conversation Passage 1 Unit 8 口诀如下: Long conversation M: I love working out! W: Ugh! You’re sweating all over the floor

    2024年02月10日
    浏览(46)
  • 山东大学软件学院计算机网络期末考试考点

    单播 :只有一个发送方和一个接收方的点到点传输。 组播 :将一个数据包发送给一组机器,即所有机器的一个子集。 广播 :将一个数据包发送给所有的目标机器。 面向连接的服务 :按照电话系统建模,服务用户首先必须建立一个连接,然后使用该连接传输数据,最后释放连接。

    2024年02月03日
    浏览(41)
  • 安庆师范大学之计科-数据结构MOOC期末考试

    5分/题,共30题  1、在长度为n的顺序表的第i个位置上插入一个元素,i的合理取值范围是( )。 A.1≤i≤n    B.任意正整数 C.i≥0 D.1≤i≤n+1  正确答案:D 2‏、已知L是带表头结点单链表的头指针,摘除首元结点的语句是( )。 A.L-next=L; B.L=L-next; C.L=L-next-next; D.L-next=L-next-nex

    2024年02月09日
    浏览(28)
  • 山东大学软件学院算法设计与分析期末考试回忆版

    2021年12月13日上午10:10-12:10 本次考试是山东大学软件学院2019级软件工程专业大三上算法期末考试 本学期的算法课上课时间为2-7周,9-14周(实际上13周就结束了),第15周考试 考试范围:除了并查集和35章近似算法不考,其他在老师PPT上的内容都是考试范围 本次算法考试一共有

    2024年02月10日
    浏览(32)
  • 西安石油大学 C++期末考试 重点知识点+题目复习(下)

    析构函数的调用顺序与对象的创建和销毁顺序相反。 对于单个对象,当对象的生命周期结束时(例如离开作用域),会调用其析构函数。因此,析构函数会在对象销毁之前被调用。 对于类的成员对象,它们的析构函数的调用顺序与它们在类中的声明顺序相反。即,在类的析

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包