随笔分类 - 深入理解计算机系统
摘要:https://github.com/lawliet9712/csapp-3e
阅读全文
摘要:1. 程序优化等级 假设有源文件 p1.c 和 p2.c,使用 gcc -Og -o p p1.c p2.c 编译生成代码,-Og 会告诉编译器使用符合原始 C 代码整体结构的机器代码优化等级。(PS: -O0 所得到的汇编代码实用价值极小,几乎没有什么用处,建议使用 -Og 或者 -O1(有的较早
阅读全文
摘要:1. 从源文件到可执行程序的过程 这里以最简单的例子 helloworld 为例,新建一个 hello.c 的源文件,添加如下代码 #include "stdio.h" int main() { printf("hello world \n"); return 0; } 使用 gcc -o hell
阅读全文
摘要:1. 信息的存储 大多数计算机使用 8 位的块,或者字节,作为最小的寻址内存单位,而非访问内存中单独的位,机器级程序将内存视为一个非常大的字节数组,称为 虚拟内存 ,内存的每个字节都用一个唯一的数字标识,称为它的 地址 。以 C 语言的指针为例,指针使用时指向某一个存储块的首字节的 虚拟地址 ,C
阅读全文
摘要:从20世纪70年代末到80年代末,Digital Equipment的VAX计算机是一种非常流行的机型。它没有布尔运算AND和OR指令,只有bis(位设置)和bic(位清除)这两种指令。两种指令的输入都是一个数据字x和一个掩码字m。它们生成一个结果z,z是由根据掩码m的位来修改x的位得到的。使用bi
阅读全文