CSAPP第7章家庭作业参考答案

7.6
buf 有 m.o 外部 .data
bufp0 有 swap.o 全局 .data
bufp1 有 swap.o 局部 .bss
incr 有 swap.o 局部 .text
count 有 swap.o 局部 .bss
swap 有 swap.o 全局 .text
temp 无

7.7

在bar5.c中声明x的时候使用static ,使其链接为内部链接:

/* bar5.c */
static double x;void f()
{x = -0.0;
}

7.8
A.
(a) REF(main.1) --> DEF(main.1)
(b) REF(main.2) --> DEF(main.2)
B.
(a) REF(x.1) --> 未知
(b) REF(x.2) --> 未知
C.
(a) REF(x.1) --> 错误
(b) REF(x.2) --> 错误

7.9
foo6.c中main符号是一个函数名,是强符号;bar6.c中main是一个未初始化的全局变量,是若符号。两者链接后链接器会选择强符号,也就是foo6.c中的main,这个main代表main函数的起始地址,因此会打印这个地址的数据,也就是main函数中第一条指令的机器码。

7.10
ld p.o libx.a p.o
ld p.o libx.a liby.a libx.a
ld p.o libx.a liby.a libx.a libz.a

7.11

未初始化的全局变量在可执行文件的数据段中不占用空间,但是当程序装载到内存后会占用空间。因此多出的一个字节可能是全局变量占用的。

7.12
0x4004e0+0xa=0x4004ea
0x4004ea e8 00 00 00 00 callq e
0x4004ef …
因此执行callq时rip中的值为0x4004ef
所以call的偏移=0x4004f8-0x4004ef=0x9
上面是错误的做法!!
正确的做法是,利用下面的公式

首先,重定位类型中包含PC32,因此这个重定位采用PC相对寻址。
先计算出引用所在的内存地址:
refaddr = ADDR(.text) + r.offset = 0x4004e0 + 0xa = 0x4004ea
注意,上面这个refaddr并不是call指令所在的内存地址!
实际编译后的代码段是这样的:
0x4004e9 e8 00 00 00 00 callq e
call指令机器码的第一个字节的地址为0x4004e9,而它之后的一个字节(也就是"引用"的所在点)才是0x4004ea。也就是说,上面计算出的refaddr并不是call指令的操作码所在地址,而是"操作数"所在的地址。这部分内容很难理解,也很容易出错,但是只要按照上面的公式来计算就没有问题。
然后计算偏移:
refptr = (unsigned)(ADDR(r.symbol) + r.addend - refaddr) = 0x4004f8 + (-4) - 0x4004ea = 0xa
因此第一问答案是0xa
同样的方法计算第二问:
refaddr = 0x4004d0 + 0xa = 0x4004da
refptr = 0x400500 + (-4) - 0x4004da =0x22

7.13
不会

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/48950.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】大作业-实现两台pc间交流的简单的聊天软件

参考 传送门 - 1 - csdn - 2112222222222 传送门 - 2 - bilibili - 憧憬少 传送门 - 3 - 要求 开发一个聊天程序包含客户端和服务器段编程语言不限要能在两台PC机上运行 如何实现 通过 socket 实现 两台pc之间的聊天 什么是socket Socket是应用层与TCP/IP协议族通信的中…

CSAPP家庭作业答案7 8 9章

答案仅供参考 7.12 解题思路是模仿链接器的行为:使用重定位记录来识别位置然后使用图7.9中的算法计算重新定位的绝对地址,或者简单地从图7.10中的重定位指令中提取它们。有两点需要注意的是第8行的movl指令包含两个需要重定位的引用。第5行和第8行的指令包含对buf…

asp毕业设计—— 基于asp+access的网上聊天室设计与实现(毕业论文+程序源码)——网上聊天室

基于aspaccess的网上聊天室设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于aspaccess的网上聊天室设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴&…

基于SSH开发酒店客房管理系统+论文+任务书+PPT 课程设计 毕业设计

基于SSH开发酒店客房管理系统论文任务书PPT(大作业/毕业设计) 开发环境: Windows操作系统 开发工具:MyeclipseJdkTomcatMysql数据库 运行效果图: 基于SSH开发酒店客房管理系统论文任务书PPT(大作业/毕业设计&#xff0…

基于Android的相关毕业设计和论文

基于Android的相关毕业设计和论文 今年整理了一下关于基于android的相关毕业设计的信息,这里和大家分享一下,总共分为5大模块: 一、基于android的毕业设计题目整理,供大家学习参考 基于Android的消防网格化管理系统设计 基于An…

一大波嵌入式毕业设计选题推荐(配套源码、文档、开发板)

可以在本文的末尾免费领取,以下所有项目配套的文档及源码~ 嵌入式毕业设计选题推荐一:智能猫眼 项目功能介绍: 1. 人脸识别:基于百度专业的深度学习算法和海量数据训练可进行人脸识别,轻松知晓访客身份; 2. 智能报警&a…

毕业设计——基于Qt的酒店在线管理系统客户端开发与设计

Qt版百度网盘链接:https://pan.baidu.com/s/122951Yta-rXSBNafS3ndlg 提取码:r2qq C#版链接:https://blog.csdn.net/qq_40945965/article/details/90229681 另一篇博文:基于Qt的酒店管理系统(毕业设计) 基…

日赚1.7亿!华为发布2020年度财报!附华为十大5G应用场景

今日,华为发布2020年年度报告。 公告显示:销售收入8,914亿元人民币,同比增长3.8%,净利润646亿元人民币,同比增长3.2%。 按一年365天来算,华为平均日赚1.7亿人民币! 华为今日还公布了关于公司轮值…

3·8 妇女节特别策划 | 对话开源社里的“半边天”:多彩的她们,有别样的力量~...

三八妇女节 Womens Day < 2023/03/08 > 01 职场女性 陈阳 开源社理事长、微软云计算机与人工智能事业部首席产品经理 一句话介绍自己&#xff1a; 开源社区中的二进制女性 向上滑动阅览采访 Q1&#xff1a;能介绍一下自己目前正在做的职业或者项目嘛&#xff1f; 白天在…

出门问问冲刺IPO:年营收5亿 要做港股AIGC第一股

雷递网 雷建平 5月31日 AI公司出门问问&#xff08;Mobvoi Inc.&#xff09;日前递交招股书&#xff0c;准备在港交所上市。 当前&#xff0c;港股市场缺少AIGC概念&#xff0c;一旦上市&#xff0c;出门问问将成为港股AIGC第一股。 亚洲起步最早 年营收5亿 出门问问是一家以生…

数学奥赛VS信息奥赛 | 为孩子选择更好地升学之路!

随着社会的不断发展&#xff0c;在孩子成长学习中&#xff0c;家长越来越注重孩子的全面发展。从小学就开始为孩子规划竞赛学习&#xff0c;也是很多家长的选择&#xff0c;因为在学习的同时&#xff0c;也可以为以后高考自主招生提前做准备。 但是现在各种类目的竞赛&#xf…

小学奥数思维训练(一)

三年级 4 班组织去秋游&#xff0c;同学们自愿报名。该班一共有 40 名学生&#xff0c;其中 28 名同学报名参加&#xff0c;结果秋游当天去了 36 人&#xff0c;那么肯定有些学生变卦了&#xff08;报名了但是没来&#xff0c;或者没报名却来了&#xff09;&#xff0c;变卦的学…

一个基于ChatGPT的超级读书工具-司马阅(SmartRead)

这时候我强烈推荐一个基于ChatGPT的超级读书工具-司马阅(SmartRead)&#xff0c;它是颠覆我们读书学习方式的一种工具&#xff0c;帮你提取书中重要的知识点&#xff0c;可以以对话聊天的形式按照你的脉络读完它 。可以大大的提升学习工作效率。 先把工具网址放这儿&#xff1…

课程表插件Timetables

课程插件在vue项目中使用 项目中用到之前是用element-table做的,但要求课程一样的要合并单元格,于是啊找了这个插件,分享一下 参考地址: https://github.com/Hzy0913/Timetable 安装: npm install timetables 或者从上面github地址里面下载 Timetables.min.js 参数: 代码 …

Android 课程表

ClassScheduleView 横屏-课程表 预览 资源 名字资源AARclass_schedule_view.aarGiteeClassScheduleViewGitHubClassScheduleView Maven 1.build.grade | setting.grade repositories {...maven { url https://jitpack.io } }2./app/build.grade dependencies {implement…

HTML实现课表(表格运用)

题目要求&#xff1a; 根据表格知识完成下列效果图&#xff1a; 任务提示&#xff1a; 使用 <caption><caption>&#xff0c; <thead></thead> <tbody><tbody> <tfoot></tfoot> 等标签完成。 ps&#xff1a; 其中“课程表”为…

Web:学生课程表表格/用户注册表单

一.学生课程表 1.课程表模样 2.课程表html代码块 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewpo…

当年谷歌为什么退出中国?

《时代》周刊中&#xff0c;百度公司创始人兼CEO李彦宏成为封面人物&#xff0c;成为中国互联网登《时代》的第一人。 而专访中的一段话&#xff0c;却让一段往事再次成为了舆论热议的焦点。专访中&#xff0c;李彦宏表示&#xff0c;谷歌当年退出中国是因为迫于百度给予的市场…

如何处理亿级图片排重(精准排重,相似排重)

图片相似度对比 1、需求 假如有一个图片池&#xff0c;存有1亿图片。给一张目标图片&#xff0c;在图片池中做匹配。 判断一张图片是否在图片池中出现过。&#xff08;完全一样&#xff09;判断有没有相似的出现过。比如两张图相似度90&#xff0c;两张图片是在描述一件事情。 …

pgAdmin的数据导入之CSV

在向数据库批量导入数据时&#xff0c;可以参考此过程 1、对于现有的Excel文件&#xff0c;首先应另存为 .csv文件&#xff0c;记住分割符(逗号分割)&#xff0c;在后边导入用到。 2、用记事本打开保存后的csv文件&#xff0c;以utf-8格式另存为文件。不执行此编码格式&#xf…