我們的系統程式老師,在學期初給了我們一個「x86 組譯器」專題,讓我們回來做。
組譯器做了一半(照我的人月粗估,大約 5%~10% 吧...),deadline 就到了,沒的玩啦!反正我是班上進度最快的,很多人什麼都沒寫就去 demo 了... 有可以執行的 code base 的只有兩個人,我朝 ELF Binary Format 走,它朝 parser 跟 assembler 走。(說不定我們兩個人合作,剛好可以弄出完整的東西...)
總之,花了我四天不眠不休 trace ELF Specification 跟 AMD64 Architecture Programmer's Manual,寫出了半個有點可以跑的東西(其實還稍微差一點)。
如果有人想看的話,以下是報告跟程式碼(需要 x86-64 平台):
這個作業告一段落以後,找到了一個讓我玩了很久還在玩的 flash game -「Mother Load」。目前挖到五千多呎,碰到瓦斯就爆掉了。
這個遊戲的玩法是,慢慢往下挖... 然後挖礦回來賣錢、升級船。要注意的是,若燃料(Fuel)用完或殼(Hull)壞掉船就會爆炸。挖到 3000 呎以後要小心岩漿,挖到五千呎以後可能會挖到瓦斯,記得多帶點備用燃料跟修護包,身上準備個傳送器也會比較安全。船挖太多礦石可能會太重飛不起來,要小心。
就這樣啦!