ICS 期末复习卷 2
一
1
main.c 和 eval.c 先经过预处理器,将 common.h 的内容放到对应的 .c 文件中,并进行宏展开,得到预处理后的 main.i 和 eval.i 文件;然后分别经过编译器生成编译文件 main.s 和 eval.s 文件;然后进行汇编生成 main.o 和 eval.o 的可重定位目标文件;最后通过链接器将两者链接形成可执行目标文件。
2
需要对应 c 代码读一下汇编代码,先跳过
3
4
5
6
sum 位于 .bss 节,读写数据段
data 位于 .bss 节,读写数据段
eval 位于 .text 节,只读数据段
d 不存在节和段,位于运行时的栈中
7
引用的虚拟地址,目标符号名,重定位类型
0x804c848, sum, 非 PC
0x804c23c, sum[N-1]
0x805023c, data[N-1][M-1]
0x8049030, printf
二
虚拟地址 32 位,前 20 位是虚页号,后 12 位是同一页中的。访问了 0x
三
1
块大小 32B 占有 5 位,数据区大小 16KB 则有 16*1024/32=512 个块,占有 9 位,剩下 32-5-9=18 位。
因此地址划分为 18 位 tag,9 位块索引,5 位块偏移。
cache 的总容量为有效位+tag位+数据位,总共 (1+18+328)512=256512+19512=140800 位

浙公网安备 33010602011771号