原因分析
羅雲彬書籍主講 **Win32 API 開發**(窗口、消息、GDI、線程),**並非純匯編語言教程**。前置知識要求:
- 寄存器、標誌寄存器、寻址方式、指令集(数据传送、算术、逻辑、控制转移、字符串)。
- 段寄存器、內存模型、堆棧幀、調用約定。
- DOS/BIOS 中斷或 Windows PE 結構基礎。
推薦學習路徑
- 入門:《匯編語言:基於x86處理器》(Irvine 著,清華大學出版社),配合 MASM/VS 實驗,逐章敲代碼。
- 進階:《程序員的自我修養——鏈接、裝載與庫》(俞甲子等),理解目標文件、鏈接、動態庫、系統調用。
- 實戰:閱讀 Linux 內核啟動匯編、glibc 啟動代碼、編譯器輸出
gcc -S 分析。
- 再回頭看羅雲彬書的 Win32 API 章節,會發現「原來這些 API 參數對應的就是這些寄存器/棧佈局」。
工具鏈
- Windows:Visual Studio + MASM(項目屬性 → Build Customizations → masm)。
- Linux:NASM + GDB(
layout regs 觀察寄存器)。
打穩匯編基礎,再攻 Win32 API,不再被「看不懂指令」卡住。