/csapp-learning

Computer Systems A Programmer's Perspective

MIT LicenseMIT

csapp-learning

Computer Systems A Programmer's Perspective

深入理解计算机系统 学习笔记

准备

  1. 资料

  2. WSL 01 -- 安装 Ubuntu

  3. WSL 02 -- Ubuntu 中安装 GUI 应用

  4. WSL 03 -- 访问文件目录

  5. WSL 04 -- gcc

  6. WSL 05 -- VS Code

  7. WSL 06 -- gdb

第三章 程序的机器级表示 笔记

  1. 内存

  2. 内存的布局

  3. 寄存器

  4. 指令集 1 - 操作数格式

  5. 指令集 2 - mov

  6. 指令集 3 - leaq

  7. 指令集 4 - 一元操作

  8. 指令集 5 - 二元操作

  9. 指令集 6 - push / pop

  10. 运行时栈 1 - 准备

  11. 运行时栈 2 - 分配内存和参数传递

  12. 运行时栈 3 - 转移控制 call

  13. 运行时栈 4 - 被保存的寄存器

  14. 运行时栈 5 - 返回值和 ret

  15. 栈帧的布局

  16. 递归

  17. 条件码

第三章 程序的机器级表示 笔记 公众号版本

  1. 前言 - 学习笔记

  2. 从程序的角度看,内存是什么?

  3. 内存的布局

  4. 寄存器

  5. 指令 1 - MOV

  6. 指令 2 - LEA

  7. 指令 3 - 算术和逻辑

  8. 指令 4 - PUSH 和 POP

  9. 指令 5 - CALL 和 RET

  10. 程序运行时的栈

  11. 栈帧的布局

  12. 条件码寄存器

  13. 条件分支

  14. 循环

  15. 递归

  16. 从底层逻辑开始