青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

loop_in_codes

低調(diào)做技術(shù)__歡迎移步我的獨立博客 codemaro.com 微博 kevinlynx

基于棧的虛擬機的實現(xiàn)

上次的編譯原理練習中,生成的目標代碼是別人寫的一個基于寄存器的簡單虛擬機。這

回這個簡單的基于棧的虛擬機,純碎是為了彌補上回的練習不足。

基于寄存器(register based)的虛擬機和基于棧(stack based)的虛擬機主要的不同在于

對指令運算的中間值的保存方式。這些中間值包括各種運算的結(jié)果值,傳給各個指令的參

數(shù)等等。前者一般會設(shè)置幾個寄存器,如累加寄存器;后者則沒有寄存器,只有一個用來

保存這些值的棧。例如,這里我實現(xiàn)的SM(stack based machine)中的ADD指令:

ADD:從棧中依次彈出兩個數(shù)a和b,然后將b+a壓棧(b是左操作數(shù))。基于這樣一個方

式,SM中大部分指令都不需要操作數(shù),其操作數(shù)都直接從棧頂取。因為這個虛擬機僅僅是

用于上回設(shè)計的簡單語言的運行,即沒有函數(shù)、只有數(shù)字類型、有if和while。在這回練習中

我甚至把邏輯運算符給閹割了,只保留了大于小于之類的關(guān)系運算符。以下是該語言計算階

乘的例子:

read x;
if( x > 0 )
{
fac = 1;
while( x > 0 )
{
  fac = fac * x;
  x = x - 1;
}
write fac;
}
else
{
write 0;
}

基本上同《編譯原理與實踐》里的例子一樣,這樣省得我去琢磨語言文法。

不過,SM中還是有一個寄存器,即指令指針寄存器(pc),永遠指向?qū)⒁獔?zhí)行的指令。在實現(xiàn)中,

所有指令都被保存一個數(shù)組里,所以pc就是一個指向數(shù)組索引的整數(shù)值。

SM中有一個簡單的內(nèi)存,只用于保存程序中的全局變量(只有全局變量)。同樣,這個虛擬的

內(nèi)存也被簡單地用一個數(shù)組來實現(xiàn),所以,指令中的所有地址,都是數(shù)組索引值。

SM的代碼文件直接就是指令序列的二進制表示。在這個二進制文件中,內(nèi)容依次為:操作碼(1

字節(jié)),操作數(shù)(4字節(jié),如果有的話),操作碼,操作數(shù),。。。SM讀取這樣的文件,將這些

指令放進指令數(shù)組,然后逐條解釋執(zhí)行,直到遇到空指令。

代碼中的test是上面簡單提到的編程語言的編譯程序,該程序?qū)⒃创a編譯為SM可執(zhí)行的二進制

文件(sm后綴)。為了方便調(diào)試,SM本身可以根據(jù)命令行參數(shù)輸出二進制文件對應的反匯編代碼,

這可以方便我調(diào)試編譯程序的代碼生成是否正常工作。同時,當初為了測試SM的正確性,還寫了

個簡單的匯編程序(sasm),可以把SM的匯編代碼轉(zhuǎn)換為二進制文件。

這回我特地在文法中間插入action丟給yacc處理,在賦值語句中一切正常。但是在if中yacc依然

提示警告,看起來應該跟if中的懸掛else二義性有關(guān)系。不過通過添加空的文法符號,居然解決了。

不清楚為什么上回死活有問題,詭異了。

 

下載SM

posted on 2010-04-15 19:56 Kevin Lynx 閱讀(7816) 評論(0)  編輯 收藏 引用 所屬分類: 編譯原理

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲美女视频在线免费观看| 鲁大师影院一区二区三区| 欧美日韩亚洲不卡| 久久人人爽人人| 久久九九免费| 免费国产一区二区| 欧美网站大全在线观看| 欧美三级在线视频| 国产日韩欧美制服另类| 激情久久综合| 99精品国产高清一区二区 | 国产精品户外野外| 国产精品免费一区二区三区在线观看 | 国产欧美一区二区三区久久人妖| 国产视频亚洲| 亚洲激情视频| 亚洲欧美一区在线| 欧美不卡三区| 亚洲视屏一区| 久久中文字幕一区二区三区| 欧美日韩性视频在线| 狠狠v欧美v日韩v亚洲ⅴ| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 亚洲一区二区三区四区五区午夜| 欧美一区二区三区在| 欧美韩日一区| 国内精品久久久久伊人av| 99日韩精品| 欧美不卡高清| 久久精品日韩| 国产午夜精品美女视频明星a级 | 亚洲一区二区三区免费观看 | 在线观看的日韩av| 亚洲女人天堂成人av在线| 免费久久99精品国产自| 亚洲欧美美女| 久久网站免费| 另类人畜视频在线| 亚洲亚洲精品在线观看 | 亚洲尤物影院| 亚洲伦理在线| 欧美激情女人20p| 亚洲福利小视频| 免费成人高清在线视频| 久久国产精品99久久久久久老狼| 国产精品久久久久久久久久久久久久| 亚洲欧洲一区二区在线播放| 久久久噜噜噜久久中文字免| 亚洲免费网站| 国产精品一区久久| 午夜久久黄色| 亚洲欧美国产视频| 国产精品一区在线观看| 亚洲一区二区三区久久| 亚洲精品久久久久中文字幕欢迎你 | 亚洲一区二区三区视频| 亚洲美女黄色片| 欧美日韩国产在线播放网站| 亚洲毛片在线免费观看| 最新高清无码专区| 欧美日韩午夜剧场| 亚洲欧美日本另类| 亚洲一区免费网站| 国产欧美日韩中文字幕在线| 欧美诱惑福利视频| 久久精品在线| 亚洲激情欧美| 艳妇臀荡乳欲伦亚洲一区| 国产精品高潮粉嫩av| 欧美一区国产二区| 久久蜜臀精品av| 亚洲美女啪啪| 亚洲一区二区四区| 国产在线不卡视频| 欧美国产视频一区二区| 欧美激情一区二区三级高清视频| 亚洲社区在线观看| 欧美亚洲日本网站| 亚洲国产综合视频在线观看| 日韩亚洲欧美成人| 国产伊人精品| 日韩视频在线观看| 国产免费亚洲高清| 欧美激情一区二区三区| 国产精品久久国产三级国电话系列| 欧美在线视频全部完| 久久亚洲精品网站| 亚洲一区激情| 久久综合五月天婷婷伊人| 亚洲午夜激情网页| 久久久久久噜噜噜久久久精品| 日韩视频免费观看| 欧美中在线观看| 亚洲人成网站777色婷婷| 巨胸喷奶水www久久久免费动漫| 亚洲欧美日韩国产综合| 一区二区三区四区蜜桃| 国产一区二区日韩精品| 欧美电影免费观看高清| 国产精品扒开腿爽爽爽视频| 久久久久久久久久久久久久一区 | 久久成人av少妇免费| 国产欧美日本在线| 欧美不卡视频一区发布| 国产精品久久久久久久久| 久久久久久久久久久一区| 欧美精品三级在线观看| 久久乐国产精品| 国产精品久久久久久久久婷婷 | 亚洲区免费影片| 国产美女精品免费电影| 亚洲欧洲日本在线| 在线观看国产日韩| 亚洲欧美韩国| 午夜电影亚洲| 欧美色大人视频| 亚洲黄色在线| 亚洲黄色尤物视频| 久久久久久九九九九| 久久se精品一区精品二区| 国产精品福利影院| 99在线|亚洲一区二区| 亚洲伦理在线免费看| 免费在线看一区| 欧美大片国产精品| 亚洲国产精品精华液网站| 久久精品天堂| 久久天天躁狠狠躁夜夜爽蜜月| 欧美性大战久久久久久久蜜臀| 亚洲激情不卡| 日韩视频在线观看免费| 欧美成人黑人xx视频免费观看| 美女精品在线| 亚洲国产成人在线视频| 久久免费视频一区| 久久亚洲国产精品日日av夜夜| 国产麻豆精品在线观看| 亚洲丝袜av一区| 欧美一级黄色网| 国产亚洲精品一区二555| 午夜伦欧美伦电影理论片| 久久不见久久见免费视频1| 国产欧美日韩91| 久久久女女女女999久久| 欧美韩日精品| av成人手机在线| 欧美亚洲第一区| 亚洲美女免费视频| 日韩视频在线观看一区二区| 一区二区三区.www| 欧美色图五月天| 亚洲无线视频| 久久久久久久久久久久久9999| 激情综合网址| 欧美精品在线一区二区三区| 99国产精品自拍| 欧美在线免费看| 亚洲国产成人精品女人久久久 | 欧美亚洲第一区| 欧美一区二区在线视频| 你懂的视频一区二区| 一本高清dvd不卡在线观看| 国产精品久久久一区麻豆最新章节| 亚洲综合欧美日韩| 欧美黄色精品| 亚洲欧美日韩精品综合在线观看| 国产区日韩欧美| 欧美高清不卡| 性欧美大战久久久久久久免费观看 | 欧美一区二区三区精品电影| 麻豆精品在线观看| 亚洲午夜激情免费视频| 国产综合欧美在线看| 欧美连裤袜在线视频| 欧美一区二区三区在线观看视频| 亚洲国产视频直播| 久久久久国产精品一区| 一本色道久久综合狠狠躁篇怎么玩| 国产麻豆91精品| 欧美巨乳在线观看| 久久伊人亚洲| 亚洲一区精品电影| 亚洲人体1000| 欧美国产国产综合| 久久视频一区二区| 欧美在线免费视屏| 亚洲一区二区视频| 日韩视频第一页| 在线不卡欧美| 狠狠色狠色综合曰曰| 国产精品视频免费观看www| 欧美激情精品久久久久久久变态| 欧美中文字幕第一页| 亚洲网站在线看| 日韩天天综合| 亚洲乱码国产乱码精品精98午夜| 麻豆亚洲精品| 久久免费视频在线| 久久精品成人一区二区三区| 午夜精品久久久99热福利|