CSAPP 第三版 第七章 家庭作业and so on

CSAPP 第三版 第七章 家庭作业
自己做的 仅供参考 可能出现错误

注: 7.7 mark一下

7.6

符号 swap.o.symtab条目? 符号类型 定义符号的模块
buf 外部 m.o .data
bufp0 全局 swap.o .data
bufp1 局部 swap.o .bss
swap 全局 swap.o .text
temp —— —— ——
incr 局部 swap.o .text
count 局部 swap.o .bss

7.7

void f() {
	double x = -0.0;
}

7.8

(a)  REF(main.1) -> DEF(main.2)
	 REF(main.2) -> DEF(main.2)
(b)  REF(x.1) -> DEF(未知)
	 REF(x.2) -> DEF(未知)
(c)  REF(x.1) -> DEF(错误)
	 REF(x.2) -> DEF(错误)

7.9

p2中的第四行的main是弱符号,链接后的引用是foo6.c中的函数main
main的第一个字节就是0x55(pushq %rbp),所以能打印出0x55
P.S.:在我的机器上是0x55啊???

7.10

A.  gcc p.o libx.a
B.  gcc p.o libx.a liby.a libx.a
C.  gcc p.o libx.a liby.a libx.a libz.a

7.11

.bss节(未初始化的全局和静态C变量,以及初始化为0的全局和静态C变量)原来在目标文件中不占内存,但可执行文件中是需要分配内存的

7.12

A.  0x4004f8 - 4 - (0x4004e0 + 0xa) = 0xa
B.  0x400500 - 4 - (0x4004d0 + 0xa) = 0x22

7.13

A.  1579  471

在这里插入图片描述

B.  不同,-g是编译选项

在这里插入图片描述

C.  

在这里插入图片描述

你可能感兴趣的:(CSAPP,作业)