簡體中文 | 繁體中文

瘋狂的程式設計師-----《瘋狂的程式設計師》55


請回答2013 VIP 情人 一胎二寶:億萬首席愛妻入骨 我為修羅你為王 重生之再開始 非常婚姻 天生為聖 校園至尊王 妖猴傳 純陽真 重生修真在都市 盛寵之侯門嫡醫 網遊之契約者 名媛之愛上億萬總裁 愛到深淵 販賣絕版花美男 金閨玉計 夢血公主:天使的分裂 籃球在我心 鄧小平改變中國
《瘋狂的程式設計師》55

七八月份,北京的天氣確實要比南方好得多。下了火車,絕影才覺得首都無非也就是這樣,想起小的時候別人問他長大了想去哪裡,便興奮地答道:想去北京,想去長城,想去天安門看升國旗。??去天安門看升國旗,那可是一代人的夢想啊。

可是慢慢地時易事移,現在這一代,又根本不屑“去天安門看國旗”,你問他們長大了想去哪裡,便興奮地答道:想去香港澳門,想去美國加拿大。以至於“去天安門看國旗”都成了一塊笑料,那《瘋狂的石頭》裡去北京領獎那個天安門前升國旗的鏡頭加上“我愛北京天安門”的背景音樂就是一個證明。

想起《瘋狂的石頭》,絕影馬上就想起Bug Yang,那小子自從看了《瘋狂的石頭》便在辦公室裡時不時的哼兩句“我愛北京天安門……”,或者一個問題思考半天還沒找到解決辦法,便拍著腦袋自言自語道:“石頭兒,我要的是石頭兒!”

那Bug Yang肯定是很想來北京的,一來到北京必定被委以重任,正是證明自己實力的大好時機,說實話在公司那DAP做著實在沒什麼意思,據說絕影都已經把他做死了,現在讓卻讓自己來給他收拾殘局;二來還可以實現他看升國旗的理想,到現場去演繹一下“我愛北京天安門”。這個絕影心裡很清楚,但絕影肯定不會讓Bug Yang跟他一起去北京,這點Bug Yang心裡也很清楚,所以二人心照不宣,誰都不說破。

張廠長比絕影早一天到北京,跟陳董一起來街他,北京正是陳董的故鄉,走的時候周總就悄悄告訴他,說啥不好都行,千萬別在陳董面前說北京不好。北京什麼都好,春天風沙沒有內蒙古大,夏天比四大火爐涼快,秋天有楓葉,冬天比吉林哈爾濱暖和。雖然絕影不太愛說客套話,但第一句還是學著美國人的腔調道:“哦,今天的天氣真好啊。”

陳董拍拍絕影的肩膀說:“小絕啊,你終於來了,這次CASE很緊迫啊,你從來沒讓我們失望過,所以這次非得你親自出馬,其它人都不行。走,咱們先吃飯,邊吃邊說。”

吃飯的地方是在火車站對面的永和大王,因為是早晨,只是一頓簡單的便飯,陳董一邊吃一邊說:“聽周總說EB那個專案死掉了,當然,這不怪你,商務上的事情還是該由我來負責,也正因為EB失敗了,所以這個CASE才尤為重要。EB上我們投入了那麼多時間經歷資金,現在弄得我們很被動,所以我們急需用這個CASE來緩解一下被動局面,當然,如果這個CASE做得好,對我們來說,意義絕對不比EB小。”

陳董一邊說一便比劃,張廠長乾脆放下碗筷全力以赴來傾聽。說實話一個軟體公司,居然專門把自己這種“入門級”菜鳥程式設計師調來搞這CASE,看來這CASE是大有貓膩。絕影剛下火車,肚子餓得不行,一邊大口大口吃包子,一邊時不時點頭嗯兩聲。

“咱們這次要做的,是對一個晶片進行逆向。北京這邊一家公司生產一種小型DR,這裡面有塊重要的控制晶片,是Motorolar的,現在這種晶片停產了,他們根本買不到,又沒有原始碼,現在是急得團團轉,沒有晶片他們還搞個屁的DR啊?我想起小絕前幾次做了些逆向工程的工作,有點經驗,所以就把這CASE接下來,先試一試吧。要是我們成功了,我跟他們談的是他們所有DR上用我們的工作站,一年下來,也至少有五六十套訂單啊。”

聽到“逆向工程”這個詞,絕影突然又不覺得餓了,馬上來了精神,飯也不想吃了,連忙說:“晶片在哪裡?看看先。”

“我這沒有晶片,不過有個48K的Bin檔案,小絕你看看能不能把他逆向出來,最後逆向成C程式碼,這樣我們就可以選擇任何一種晶片來重新開發了。”

陳董這句話是站著說話腰不疼,就憑一個Bin,要逆向一個晶片,還弄成C程式碼,談何容易,絕影馬上說:“這基本不可能。完全反彙編還有點希望,要想逆向成C程式碼,估計只能部分。”

“弄不出來也沒關係,儘量試試,總之,我們的目的是用另外一種晶片實現它的功能。我想,逆向是這裡面是一項很重要的工作。”

兩人談到這裡,一向不愛發言的張廠長這次卻插嘴道:“我想還有個辦法,絕影剛才說的是從邏輯上逆向,我想從功能上逆向,一快晶片,無非就是輸入和輸出,我想只要把所有輸入對應的輸出測出來,我們完全可以自己寫程式用另外的晶片實現同樣的功能。”

“這也不可能。”絕影馬上打斷他,“一快晶片有多少輸入引腳?就算十六個,那也是65536種輸入,以有限的精力,根本不可能全部測出的,而且輸入的資料都是經過一定的演算法來處理,還沒見過誰笨到寫65536個case語句,再有,關鍵是時序,如果他的晶片裡有延時怎麼辦?怎麼測,測得精確嗎?”

張廠長望望絕影,都不說話了,現在就他們三個,在他們中,絕影在技術上就是權威,而且他不假思索,一二三說都頭頭是道有理有據,他說了不可能,就不可能。

陳董卻說:“小絕啊,這你就太武斷了。坦率地說,硬體方面,你的確比不過小張,這也是為什麼這次讓他來和你一起做這個CASE的原因,他的意見,還是很有參考價值的。”

絕影很不服氣,還想說什麼,可是陳董並不給他機會,一錘定音道:“就這樣,你們倆各自都有自己的方案,就各自用各自的方案先去試試,先做一做再說。”

所以說彙編就是好。這麼個Bin檔案拿給BOSS Liu,就算他C++牛上天又如何?對他來說還不是就一堆二進位制。但用匯編的人看法就不一樣,在學校裡學微機原理時就學了,彙編分兩種,人工彙編和機器彙編,所謂人工彙編,顧名思義就是人工把彙編程式碼翻譯成機器程式碼。你現在什麼巨集彙編器C++最佳化編譯器都耍都有模有樣又怎麼樣?要是沒有彙編器編譯器你還能有用武之地?

所以每當BOSS Liu吹噓他C++什麼虛基類類模板這樣東西的時候,絕影都只說一句話:“《少林足球》看過麼?‘天下武功出少林沒聽過嗎你?’這是放之四海階準的道理啊:(更新最快http://wap.16k.cn)天下語言出彙編沒聽說過嗎你?”

然後陳董走過來,關節地問:“你們兩還需要什麼嗎?儘管說。”

這時候張廠長滔滔不絕地說:“我需要電壓表電流表,示波器,電阻之類的一些基本電子元件和一塊PC板。”好像要東西越多越能體現出他的專業。

絕影卻平淡地說:“我只需要一本《Development Guides》,當然,這個我會自己從網上下載。”好像要的東西越少月能體現出他的效率。

在絕影心中,你拿一大堆先進裝備把人質救出來算個啥,不就是一個人質嗎?還搞得像老美一樣得飛機大炮坦克衛星加特種部隊,俺就是要發揚勤儉節約的精神,就一把AWP一槍把綁匪斃了完事。啥是效率,這就是效率啊,納稅人的錢不是拿來讓你拍電影的,公司的錢不是拿來讓你體驗新產品的。

下載到《Development Guides》,絕影一頭埋在對Bin的反彙編中,也許是軟體做得多了,他一直認為張廠長弄不出啥大成果出來,上次也就是弄了個遙控器出來,不過意義不大,除了他們本地那家醫院,公司連一套都沒賣出去過,到後來,周總把這事都忘了,有一次燕兒從工具箱深處挖出這麼一個遙控器來,周總居然拿在手裡翻來覆去得大量,還一邊說:“這是啥時候買的東西?”越是這樣,張廠長也越是想弄出大成果來證明他。

其實對照《Development Guides》上的指令集,完全可以把Bin反彙編出來,奈何這工作進展實在很緩慢,弄了一個上午,才翻譯出一百來行程式碼,還不到二十分之一,而且還時時擔心那一點反彙編錯了,哪怕只錯一點點,影響到後面程式碼的定位,後面所有的工作基本就白做了。照這個進度,要把這個CASE搞完,只怕只有在北京過年了。

雖然在很多時候懶人都被人鄙視,但不得不承認,懶人的確為我們的社會做了不少貢獻,沒有人懶得走路,就沒有人發明汽車,沒有人懶得爬樓梯,就沒有人發明電梯,沒有人懶得去做人工彙編,也就不會有人發明彙編器。

這一次,要不是絕影懶得去做人工反彙編,他也不會考慮做個反彙編器。不過他在決定做這個反彙編器的時候,心裡還是很沒底,以前還是菜鳥的時候,就聽哪位牛人說:“如果你做出了反彙編器,就嘗試做個彙編器,如果你成果做出來彙編器,就可以嘗試做個編譯器。”說實話從學寫程式到現在,開發編譯器這東西,儘管絕影很感興趣,但從來都不敢碰,考軟體設計師那編譯原理都索性全部放棄,為什麼?編譯器,那實在不是牛人就能做的東西,那是大牛才能做的!

沒底歸沒底,仔細想想,其實這反彙編器也不是那麼困難,自己手工反彙編了半天,那反彙編的流程基本已經摸得清清楚楚,在加上這晶片也設計得簡單,還是定長指令集,這真是Motorola公司莫大的恩惠啊。用最笨的辦法把每條指令的機器碼、運算元型別、指令加資料的長度、助記符弄成個結構體,再建一個表,把所有指令都收進去,到時候查表不就行了。

花了一天時間,當這個反彙編器誕生的時候,絕影始終還是不相信自己:難道我離大牛的距離又進了一步了?

馬克思說得好,資本家總是不能滿足的,今天他賺了100%的利潤,不要以為他就知足了,他仍然會想:明天我怎麼才能賺到200%的利潤呢?絕影滿以為這反彙編器一秒鐘之內便能完成手工三四天才能完成的工作,已經是整個CASE裡巨大的里程碑,值得自己好好驕傲一陣子。陳董卻拍拍絕影的肩說:“小絕啊,真是從來沒讓我們失望過。現在任務還很緊啊,你看看,抓點緊,試試把那彙編程式碼翻譯成C程式碼吧。”

絕影聽了就想吐血,早知如此,還不如就人工翻譯,說不定花個三四天功夫,陳董還會讓他休息一兩天。

雖然明知自己中了資本家的計謀,但絕影還是不知悔改,也許程式設計師都是這樣。這不是因為這個CASE做好了,又能有多少多少獎金,或者一下從技術經理升職成總經理。正如做反彙編器一樣,反編譯對絕影來說一樣也是件很有意思的事情,因為他沒做過,什麼事情沒有做,就不知道有多難,也不知道這裡面會遇到什麼樣的困難,更不知道如何才能解決這些困難。

所以現在的很多年輕人,總以為讀書破了萬卷,下筆寫起程式來就真的如有神助,於是參考書技術資料管他有用沒用能下載的掛上BT全天24小時下載,一次就下載個十幾G的,比MSDN還大,不能下的就書店圖書館網上書店全都搬回家,不管能不能看懂或者有沒有時間看,總之,哪怕放在那裡看看封面,也覺得離牛人的距離又進了一步。

有的或者又像Bug Yang一樣認為有個牛人能帶帶自己,就如《鹿鼎記》中的韋小寶一樣:“你趕緊傳授我絕世武功吧,我好去臥底。”可是《鹿鼎記》中陳進南不是也說了麼:“我看絕世武功的祕籍,用了三年,練功,用了三十年。”

反編譯的工作比想像中要困難許多,幾條組合語言組織起來得翻譯成得體的C語言,能翻譯英文書的人英文都應該算了得了,但是翻譯起英文著作來都還是牛頭不對馬嘴,更別指望這個世界有自動英文翻譯器,有,那Google線上翻譯,效果實在不敢恭維,就如別人笑你英文菜,說道:“你那英語,簡直是Google線上翻譯。”

這些絕影自己都沒弄透徹,更別指望三五天時間裡弄出個反編譯器出來。

就在他騎虎難下的時候,張廠長突然大聲宣佈:“出成果了!”

絕影回頭一望,他的表情,和Bug Yang完成任務時一模一樣。

附記:

到今天,地震剛剛過去一週,但它帶來的影響遠遠超過了想像。逝者已經逝去,生者為他們默哀,但生者也還在受著折磨。

這一週來,最大的心願就是能好好洗個澡,能在**伸直了腳睡一覺,但偶爾冒死回去一下房子又時不時地搖一搖,嚇得人提心吊膽。本來下定決心,昨天就回家去住,但剛1點多,又來了次大的餘震,房子轟轟地響。趕緊又躲進廁所,叫百萬進來,百萬還全然不知。今天就再也不敢回家了。

今天在報紙上知道,昨天的那場餘震,讓江油又失去了13條生命。

一週過去了,露宿的人反而越來越多,明明有自己的房子,卻要露宿街頭,這裡面有多少苦衷啊。

最近今天,朋友們聚在一起,都在講這次地震,講自己的親人朋友,講北川平武。很多人都說,以後在綿陽,恐怕不會有北川這個縣了。這次我沒有去北川,但據去過的朋友形容,相當慘烈,整個地直接沉下去,然後兩邊山倒下來把它蓋上,就像包餃子一樣。

女朋友作為支援者去了一次安縣,回來就一直哭,說那裡好恐怖:房子都倒得差不多了,路上還時不時有人等待救助,也時不時地擺放著一具具屍體。

安置到綿陽的災民也越來越多,據說超過了50萬。這幾天很多人都是哭著去幾個安置點尋找自己的親戚朋友,又哭著從裡面出來。

街上時常有警車和救護車經過,現在大部分救護車都是外地的,看了很感動。還有網上看到的捐款什麼的,有些人在討論,誰捐得多誰捐得少。其實捐多少都不重要,因為很多損失,根本是沒法用錢來衡量的。所以力所能及,能捐多少就捐多少吧,重要的是,希望你能捐出一份心,這個才是災區人民最需要的。

說實話,剛經歷地震的時候,很害怕地震,但是一週過去,我覺得流言比地震更可怕。

推薦小說