絕影很不服氣,還想說什么,可是陳董并不給他機(jī)會(huì),一錘定音道:“就這樣,你們倆各自都有自己的方案,就各自用各自的方案先去試試,先做一做再說!
所以說匯編就是好。這么個(gè)Bin文件拿給BOSS Liu,就算他C++牛上天又如何?對(duì)他來說還不是就一堆二進(jìn)制。但用匯編的人看法就不一樣,在學(xué)校里學(xué)微機(jī)原理時(shí)就學(xué)了,匯編分兩種,人工匯編和機(jī)器匯編,所謂人工匯編,顧名思義就是人工把匯編代碼翻譯成機(jī)器代碼。你現(xiàn)在什么宏匯編器C++優(yōu)化編譯器都耍都有模有樣又怎么樣?要是沒有匯編器編譯器你還能有用武之地?
所以每當(dāng)BOSS Liu吹噓他C++什么虛基類類模板這樣?xùn)|西的時(shí)候,絕影都只說一句話:“《少林足球》看過么?‘天下武功出少林沒聽過嗎你?’這是放之四海階準(zhǔn)的道理。禾煜抡Z言出匯編沒聽說過嗎你?”
然后陳董走過來,關(guān)節(jié)地問:“你們兩還需要什么嗎?盡管說!
這時(shí)候張廠長(zhǎng)滔滔不絕地說:“我需要電壓表電流表,示波器,電阻之類的一些基本電子元件和一塊PC板!焙孟褚獤|西越多越能體現(xiàn)出他的專業(yè)。 絕影卻平淡地說:“我只需要一本《Development Guides》,當(dāng)然,這個(gè)我會(huì)自己從網(wǎng)上下載。”好像要的東西越少月能體現(xiàn)出他的效率。
在絕影心中,你拿一大堆先進(jìn)裝備把人質(zhì)救出來算個(gè)啥,不就是一個(gè)人質(zhì)嗎?還搞得像老美一樣得飛機(jī)大炮坦克衛(wèi)星加特種部隊(duì),俺就是要發(fā)揚(yáng)勤儉節(jié)約的精神,就一把AWP一槍把綁匪斃了完事。啥是效率,這就是效率啊,納稅人的錢不是拿來讓你拍電影的,公司的錢不是拿來讓你體驗(yàn)新產(chǎn)品的。
下載到《Development Guides》,絕影一頭埋在對(duì)Bin的反匯編中,也許是軟件做得多了,他一直認(rèn)為張廠長(zhǎng)弄不出啥大成果出來,上次也就是弄了個(gè)遙控器出來,不過意義不大,除了他們本地那家醫(yī)院,公司連一套都沒賣出去過,到后來,周總把這事都忘了,有一次燕兒從工具箱深處挖出這么一個(gè)遙控器來,周總居然拿在手里翻來覆去得大量,還一邊說:“這是啥時(shí)候買的東西?”越是這樣,張廠長(zhǎng)也越是想弄出大成果來證明他。
其實(shí)對(duì)照《Development Guides》上的指令集,完全可以把Bin反匯編出來,奈何這工作進(jìn)展實(shí)在很緩慢,弄了一個(gè)上午,才翻譯出一百來行代碼,還不到二十分之一,而且還時(shí)時(shí)擔(dān)心那一點(diǎn)反匯編錯(cuò)了,哪怕只錯(cuò)一點(diǎn)點(diǎn),影響到后面代碼的定位,后面所有的工作基本就白做了。照這個(gè)進(jìn)度,要把這個(gè)CASE搞完,只怕只有在北京過年了。
雖然在很多時(shí)候懶人都被人鄙視,但不得不承認(rèn),懶人的確為我們的社會(huì)做了不少貢獻(xiàn),沒有人懶得走路,就沒有人發(fā)明汽車,沒有人懶得爬樓梯,就沒有人發(fā)明電梯,沒有人懶得去做人工匯編,也就不會(huì)有人發(fā)明匯編器。
這一次,要不是絕影懶得去做人工反匯編,他也不會(huì)考慮做個(gè)反匯編器。不過他在決定做這個(gè)反匯編器的時(shí)候,心里還是很沒底,以前還是菜鳥的時(shí)候,就聽哪位牛人說:“如果你做出了反匯編器,就嘗試做個(gè)匯編器,如果你成果做出來匯編器,就可以嘗試做個(gè)編譯器!闭f實(shí)話從學(xué)寫程序到現(xiàn)在,開發(fā)編譯器這東西,盡管絕影很感興趣,但從來都不敢碰,考軟件設(shè)計(jì)師那編譯原理都索性全部放棄,為什么?編譯器,那實(shí)在不是牛人就能做的東西,那是大牛才能做的!
沒底歸沒底,仔細(xì)想想,其實(shí)這反匯編器也不是那么困難,自己手工反匯編了半天,那反匯編的流程基本已經(jīng)摸得清清楚楚,在加上這芯片也設(shè)計(jì)得簡(jiǎn)單,還是定長(zhǎng)指令集,這真是Motorola公司莫大的恩惠啊。用最笨的辦法把每條指令的機(jī)器碼、操作數(shù)類型、指令加數(shù)據(jù)的長(zhǎng)度、助記符弄成個(gè)結(jié)構(gòu)體,再建一個(gè)表,把所有指令都收進(jìn)去,到時(shí)候查表不就行了。
花了一天時(shí)間,當(dāng)這個(gè)反匯編器誕生的時(shí)候,絕影始終還是不相信自己:難道我離大牛的距離又進(jìn)了一步了?
馬克思說得好,資本家總是不能滿足的,今天他賺了100%的利潤(rùn),不要以為他就知足了,他仍然會(huì)想:明天我怎么才能賺到200%的利潤(rùn)呢?絕影滿以為這反匯編器一秒鐘之內(nèi)便能完成手工三四天才能完成的工作,已經(jīng)是整個(gè)CASE里巨大的里程碑,值得自己好好驕傲一陣子。陳董卻拍拍絕影的肩說:“小絕啊,真是從來沒讓我們失望過,F(xiàn)在任務(wù)還很緊啊,你看看,抓點(diǎn)緊,試試把那匯編代碼翻譯成C代碼吧!
絕影聽了就想吐血,早知如此,還不如就人工翻譯,說不定花個(gè)三四天功夫,陳董還會(huì)讓他休息一兩天。
雖然明知自己中了資本家的計(jì)謀,但絕影還是不知悔改,也許程序員都是這樣。這不是因?yàn)檫@個(gè)CASE做好了,又能有多少多少獎(jiǎng)金,或者一下從技術(shù)經(jīng)理升職成總經(jīng)理。正如做反匯編器一樣,反編譯對(duì)絕影來說一樣也是件很有意思的事情,因?yàn)樗麤]做過,什么事情沒有做,就不知道有多難,也不知道這里面會(huì)遇到什么樣的困難,更不知道如何才能解決這些困難。
所以現(xiàn)在的很多年輕人,總以為讀書破了萬卷,下筆寫起程序來就真的如有神助,于是參考書技術(shù)資料管他有用沒用能下載的掛上BT全天24小時(shí)下載,一次就下載個(gè)十幾G的,比MSDN還大,不能下的就書店圖書館網(wǎng)上書店全都搬回家,不管能不能看懂或者有沒有時(shí)間看,總之,哪怕放在那里看看封面,也覺得離牛人的距離又進(jìn)了一步。
有的或者又像Bug Yang一樣認(rèn)為有個(gè)牛人能帶帶自己,就如《鹿鼎記》中的韋小寶一樣:“你趕緊傳授我絕世武功吧,我好去臥底!笨墒恰堵苟τ洝分嘘愡M(jìn)南不是也說了么:“我看絕世武功的秘籍,用了三年,練功,用了三十年!
反編譯的工作比想像中要困難許多,幾條匯編語言組織起來得翻譯成得體的C語言,能翻譯英文書的人英文都應(yīng)該算了得了,但是翻譯起英文著作來都還是牛頭不對(duì)馬嘴,更別指望這個(gè)世界有自動(dòng)英文翻譯器,有,那Google在線翻譯,效果實(shí)在不敢恭維,就如別人笑你英文菜,說道:“你那英語,簡(jiǎn)直是Google在線翻譯!
這些絕影自己都沒弄透徹,更別指望三五天時(shí)間里弄出個(gè)反編譯器出來。
就在他騎虎難下的時(shí)候,張廠長(zhǎng)突然大聲宣布:“出成果了!”
絕影回頭一望,他的表情,和Bug Yang完成任務(wù)時(shí)一模一樣。
下文:瘋狂的程序員 第五十六回
本文鏈接:http://m.95time.cn/column/member/2008/6191.asp
出處:瘋狂的程序員
責(zé)任編輯:bluehearts
上一頁(yè) 瘋狂的程序員 第五十五回 [1] 下一頁(yè)
◎進(jìn)入論壇休閑灌水版塊參加討論
|