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 位

2

posted @ 2025-12-18 11:01  哼唧昂叽  阅读(2)  评论(0)    收藏  举报