# [CS:APP](https://hackmd.io/@sysprog/CSAPP) 第 3 章重點提示和練習 ## Machine Programs - [ ] [Machine Prog: Basics](https://www.cs.cmu.edu/~213/lectures/05-machine-basics.pdf) / [video](https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=6e410255-3858-4e85-89c7-812c5845d197) * 搭配閱讀 [你所不知道的C語言: 編譯器和最佳化原理篇](https://hackmd.io/s/Hy72937Me) * 搭配閱讀 [你所不知道的C語言: 動態連結器](https://hackmd.io/s/HkK7Uf4Ml) * 搭配閱讀 [你所不知道的C語言: 連結器和執行檔資訊](https://hackmd.io/s/SysiUkgUV) * 搭配閱讀 [你所不知道的C語言: 執行階段程式庫 (CRT)](https://hackmd.io/s/Hkcr5cn97) - [ ] [Machine Prog: Control](https://www.cs.cmu.edu/~213/lectures/06-machine-control.pdf) / [video](https://scs.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=fc93c499-8fc9-4652-9a99-711058054afb) 64-bit 暫存器名稱,如 %rax, %rdi `0x104` 記憶體位址內含值 `$0123` 常數 `(%rax)` : 以暫存器內含值進行 dereference 的記憶體位址數值 `(rb, ri, s)` : 對 reg base + (reg index*s) 的位置取值 * Page `159`: switch-case 和 jump table * 搭配閱讀 [你所不知道的C語言: goto 和流程控制篇](https://hackmd.io/s/B1e2AUZeM) ###### tags: `cs:app`, `csapp`