(整理) Made Own Instruction And CPU Emulator

此系列教學是已退休的資深軟體工程師的教學影片, 從自己設計指令集開始, 設計組譯器(處理組合語言的), 到設計CPU模擬器. 這方面領域知識博大精深, 自己也只能略懂5%並把程式執行起來做研究觀察, 還無法覺得自己了解了, 只好繼續努力, 以下做此系列分享.

解決問題

有個具體而微的學習脈絡了解指令集/CPU/組合語言

小提醒

具備一點作業系統及編譯器的基礎知識會比較好理解

環境(如果OS不支援, 可以使用VM)

  1. Python

教學三部曲

1. Design Your Own CPU Instruction Set

在這部影片裡, Gary手把手設計指令集的步驟, 用很簡單且可操作的方式解釋並呈現出來, 至此我們已經有自己設計的指令集, 會需要一個組譯器

2. How Does A CPU Work? - Assembly Language

這部影片是組合語言的教學

3. Write Your Own Emulator for Your Own CPU

這部影片解釋組譯器設計, CPU模擬器設計, 沒有完整的手把手寫code(畢竟是介紹影片)

Repos

Gary本人的Repo

我整理過可以直接跑得Repo

補充

一個超棒的1.5H的NASM教學:x86 NASM Assembly Crash Course

後記

轉職工程師之前, 自己就有個目標是想要精通電腦, 直到當上工程師之後, 發現幾乎是天方夜譚. 但以前教授教過逐個擊破的方法(我沒畢業的資工仔), 所以我在閒暇時間, 自學作業系統/處理器. 歸功於Gary的知識統整以及Python的簡潔, 可以用相對簡單的方式, 理解吸收複雜深奧的CPU/組合語言/模擬器等等知識, 雖然都還只是基礎, 但是感謝此教材可以讓我抓著重點學習, 還需要更多的努力及研究, 幫自己加油!