# [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`