COMET虛擬機(jī)的設(shè)計(jì)與實(shí)現(xiàn)
===============
100
5050[root@knuth /root]#
表示1+2+…+100等于5050,結(jié)果正確。
4.2 調(diào)試運(yùn)行
輸入命令:comet –d sum
===============
COMET虛擬計(jì)算機(jī)
===============
調(diào)試 (幫助輸入 help)...
輸入命令: t
指令顯示功能打開
輸入命令: p
指令計(jì)數(shù)功能打開
輸入命令: r
顯示寄存器數(shù)據(jù)
GR[0] = 0 PC = 0
GR[1] = 0 SP = fc00
GR[2] = 0 FR = 01
GR[3] = 0
輸入命令: d
顯示內(nèi)存數(shù)據(jù)
mem[0 ] = 1200
輸入命令: i
顯示內(nèi)存指令
mem[0]: JMP 5
輸入命令:g
mem[0]: JMP 5
mem[5]: ST GR0, fe00
mem[7]: PUSH fe00
mem[9]: LEA GR0, 4
mem[b]: ST GR0, fd10
mem[d]: LEA GR0, c01
mem[f]: ST GR0, fd11
mem[11]: POP GR0
3
mem[12]: LD GR0, 4
mem[14]: ST GR0, 2
……
6mem[4f]: JMP 51
mem[51]: HALT
執(zhí)行指令數(shù)目 = 71
輸入命令: q
退出調(diào)試...
其中t、p、d、r、g分別是調(diào)試命令trace、print、dMem、regs、go的縮寫;3(mem[11 ]的下一行)是用戶輸入的數(shù)據(jù),不是調(diào)試命令。6(mem[4f ]行)表示1+2+3的和為6。
COMET虛擬機(jī)內(nèi)嵌的調(diào)試器功能非常強(qiáng)大,熟練掌握后對(duì)COMET虛擬機(jī)的程序開發(fā)會(huì)有很大的幫助。調(diào)試命令細(xì)節(jié)可以通過幫助命令help獲得。
5 結(jié)語
本文給出了COMET虛擬機(jī)的硬件設(shè)計(jì)方案。該方案闡述了虛擬機(jī)各個(gè)基本部分的詳細(xì)設(shè)計(jì)思路及需要注意的問題。目前已經(jīng)實(shí)現(xiàn)了COMET虛擬機(jī)、CASL匯編器和TINY編譯器。我們將基于COMET虛擬機(jī)開發(fā)一個(gè)小型的文件系統(tǒng),使得其應(yīng)用于實(shí)際教學(xué)任務(wù)[1,4,5]。
參考文獻(xiàn)
[1] CASL匯編語言文本[M].中國計(jì)算機(jī)軟件專業(yè)技術(shù)資格和水平考試大綱
[2] 劉福江,柴樹杉. CASL匯編器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與信息技術(shù).2006,7:76-78
[3] (美)Kenneth C. Louden. 編譯原理及實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2003
[4] (澳)John Lions.萊昂氏UNIX源代碼分析[M].北京:機(jī)械工業(yè)出版社,2000
[5] (美)Bill Blunden.虛擬機(jī)的設(shè)計(jì)與實(shí)現(xiàn)——C/C++[M].北京:機(jī)械工業(yè)出版社,2003
[6] 王亞平,陳甫舟.基于Linux平臺(tái)上的BOST虛擬機(jī)的硬件設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù).2004,15:8-10
更多計(jì)算機(jī)與外設(shè)信息請(qǐng)關(guān)注:21ic計(jì)算機(jī)與外設(shè)頻道
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
評(píng)論