組合語言
每個 CPU 處理器都有一套《二進位指令集》,這是 CPU 可以直接執行的格式,這些指令被《文字化》後,就稱為組合語言。
所以不同處理器有不同的組合語言,例如 x86, ARM, RISC-V 的組合語言就都長得很不一樣!
事實上,ARM 與 x86 都不是單一種處理器,而是一系列處理器的統稱,每一個型號的指令集和組合語言也多少都有一些不同,這是為何組合語言如此多樣的原因。
而且指令集是給機器看的,所以對應的組合語言也不太適合給人看或寫,因此不太容易學習。
但是若能懂組合語言,對電腦硬體會有更深一層的認識,而且這樣的底層知識可以幫助你撰寫出很好的《作業系統/編譯器/虛擬機》等程式,因此學習組合語言還是有一定的重要性,雖然很少人會直接去用組合語言來寫程式。
教材
- J.J.’s Blogs: x86組合語言
- 陳鍾誠的系統程式課程 – 使用 C + gcc + MSYS2 + Linux + github + x86 + RISC-V