xs-vm小型虛擬機(jī)
xs-vm 是一個(gè)極小型的虛擬機(jī),適用于教學(xué)。
這個(gè)項(xiàng)目的目的是執(zhí)行一個(gè)簡單的虛擬機(jī),能夠像 ARM 一樣執(zhí)行簡單的匯編代碼。我將一直讓它保持簡單(所以可能沒有操作模式,中斷處理,等等),因?yàn)樗菫榱私虒W(xué)而創(chuàng)建的。至于為什么用 Python 呢,這個(gè)項(xiàng)目優(yōu)先考慮的是開發(fā)速度而不是性能,所以 Python 最適合。
架構(gòu):
虛擬機(jī)有16個(gè)寄存器 (R0-R15)。大部分是通用的,有一些特殊的:
-
SP (R13)。堆棧指針。指到最后一個(gè)元素 push 到 堆棧(或 0XFFFFFF,如果沒有東西被 push)。
-
LR (R14)。鏈接寄存器。持有該函數(shù)調(diào)用的返回地址。
-
PC (R15)。程序計(jì)數(shù)器。持有這將在未來執(zhí)行的,存儲器中的指令地址。
函數(shù)調(diào)用時(shí),結(jié)果是存在 R0, 而 R1-R3 通常用來傳遞參數(shù)。
評論
圖片
表情
