CS:APP Lab 3 解题报告 - 64位
CSAPP 的 Lab 3 在第三版之前都是所谓的 Buffer Lab,而 CSAPP 第三版的配套 Lab 3 则是 Attack Lab。因为我们学校新开的计算机系统基础课可能要以此为实验,故再来重新感受一番。该 Lab 的实验流程与 Buffer Lab 基本相同,我们直接开始。本次实验笔者使用的环境为 Ubuntu 18.04。
CS:APP Lab 4 解题报告
CSAPP 的第四章《处理器体系结构》大多讲述的是 CPU 的实现,比较偏硬件。大约也是这个原因,很多高校在选用此教材讲述计算机系统导论课程时会直接跳过这一章。与之配套的 Lab 4,Architecture Lab 则更是无人问津。我趁着考完期中的空闲时间,花了近一天时间啃了下第四章,并顺便做了个下这个 Architecture Lab。
Architecture Lab 的主要目标是修改一个 Y86-64
汇编程序写就的函数 ncopy
以及我们使用的流水线 CPU 的 HCL 代码,使之在我们的 Y86-64
处理器上的效率尽量高(CPE(Clocks Per Element) 尽量小)。在这个任务之前,有两个小的任务来帮助我们熟悉相关的操作。
Linklab 解题报告
该 Lab 的附加材料会在文后提供下载。
Linklab 的主要作用就是帮助我们理解 ELF 文件格式的链接等操作,顺便复习一下之前学习的汇编知识。此次实验给我们提供了一个 main.o 以及五个phasex.o 文件。我们在每一阶段需要做的就是把 main.o 以及 phasex.o 文件链接起来,然后完成要求的输出。
CS:APP Lab 2 解题报告
CS:APP 的 Lab 2,也就是所谓的二进制炸弹,是一个很有趣的实验,相比 Lab 1 的单纯烧脑,Lab 2 更多的是根据反汇编获得的指令来推测推测程序的行为,最终给出符合要求的答案。本文中笔者使用的环境为 Ubuntu 17.10 Artful Aardvark。