嵌入式FORTH虛擬計算機的實現
5.NEXT核心算法與函數
本文引用地址:http://www.104case.com/article/256992.htm
FORTH虛擬機的核心算法--NEXT,它完成了指令的控制執行過程。如借用以上描述,用形式化的方法表示為:
由于FORTH虛擬機是工作在真實計算機上,因此要實現FORTH虛擬機必須用真實計算機的代碼來實現這個核心過程,以X86匯編語言為例,其實現FORTH虛擬機核心過程的代碼為(16位地址空間):
ES:BX,SI MOV
SI,#2 ADD
ES:[BX]JMP
從代碼可以看出,它非常象一個子過程或函數的調用。在真實計算機中,函數是非常常用的一個功能,是若干指令的有序集合。
在FORTH虛擬計算機中高級字就可認為是“函數”。表3是真實計算機和FORTH虛擬計算機在函數調用中的執行過程對比。
6.結論
對于嵌入式應用來說,一個可擴展性好、可移植性好、可裁剪、實現快速,并且便于調試的嵌入式虛擬機,能給嵌入式應用的開發帶來極大的方便。基于FORTH構筑的虛擬機,引入字典表完成指令和機器代碼的對應,并用字定義來完成指令的擴展,使系統的結構具有了極大的靈活性和擴展性,僅僅通過對基本字的堆疊、組合就可完成高級字的層層定義,實現極其復雜的系統。在JLP FORTH中存儲分段使得程序指令和數據能相對獨立,有效地增強了系統的安全性。這些設計思路使得在其上構建的FORTH虛擬機具有了代碼簡單、調試方便、安全性高、擴展性強等特點,特別適合應用于嵌入式系統中。
評論