組合語言改變了 20 世紀歷史。我們這代程式設計師幸運地擁有鍵盤、滑鼠、高階語言與 IDE,而前輩們需以機器碼編程、共享巨型機。組合語言雖非「快速原型」語言,但它是最接近機器核心、效能上限最高的選擇之一。
| 優點 | 缺點 | |||
|---|---|---|---|---|
| 速度極快 (較高階語言快數倍~千倍) | 程式碼量大,開發/維護成本高 | |||
| 直接控制硬體 (暫存器、I/O、中斷、快取) | 強依賴處理器架構,不可移植 (x86 ≠ ARM ≠ MIPS) | |||
| 目標碼精簡,佔用記憶體少 | 除錯困難,無例外處理/型別檢查等安全網 | |||
| 常與高階語言混合編程 (內嵌組語/獨立模組) | 學習曲線陡峭,精通需 2-3 年業餘時間 |
| 平台 | 組譯器 | 連結器 | 除錯器 | IDE |
|---|---|---|---|---|
| Windows | MASM/UASM/NASM | link.exe/lld | WinDbg/x64dbg/Visual Studio | RadASM/Visual Studio + AsmDude |
| Linux | NASM/GAS/FASM | ld/lld | GDB/EDB | VS Code + asm-lsp |
| macOS | NASM/GAS | ld | LLDB | VS Code |