ESP32-C3 的 CPU 就是 RISC-V 核心。
用三個方式展示 RISC-V
RISC-V 規格規定 CPU 裡要有幾個特殊暫存器(CSR),記錄晶片本身的資訊。程式用 RISC-V 專用指令 csrr 把它們讀出來:

程式裡有一段自己寫的組合語言迴圈,用到 lw、add、addi、bnez 和 M 擴充的 mul。再用 CPU 的計數器量它跑了多少個時脈週期:
手寫的反而比較慢。反組譯一看就知道原因:編譯器的迴圈只要 4 條指令(拿位址跟結束位址比),我寫的要 5 條(另外遞減一個計數器)。這剛好是很好的教學例子:現在的編譯器通常比隨手寫的組語還聰明。
把編譯好的程式反組譯,組語被組譯器自動壓成 2 bytes 的短指令,例如 lw 變成 4310。一般指令要 4 bytes,例如 csrr 是 7e2029f3。這就是 misa 裡那個「C」的實際效果:程式碼變小,可以省 flash 空間。
螢幕上會看到
螢幕每 4 秒換一頁:
