程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 匯編語言 >> 匯編語言的藝術-觀念正誤(三)

匯編語言的藝術-觀念正誤(三)

編輯:匯編語言

第二節 組合語言

一、結構基礎

物質文明之有今天的成就,是因為人類掌握了物質的基本結構。物質的種類無窮,但是卻都由基本元素交互組成,只要根據一定的法則,就能得到一定的結果。
電腦技術雖然日新月異,應用軟件的變化也無止無盡,而其基本因子卻非常有限。各種微處理器的組合語言,正是電腦軟體的基礎結構,任何要通過軟件以完成的動作,都是經由組合語言的指令群,逐步執行的。
因為電腦結構復雜,各種任務分工極精,即使是一位資深的高級程式師,終其生也不過局限在若干固定的程式中鑽研,很難以宏觀的立場認知全貌。再加上市場需求的壓力,局外人莫名其奧妙,局中人又忙得不可開交,所以還沒有任何人能作出全盤的評估。
組合語言首先成為被誤解的犧牲者,包括應用它的系統工程師在內,都一致認為它「難學難用」,(中文也是一種組合形式的應用,其所組合者是人的概念。無獨有偶,人們在不求甚解之余,都視之為畏途。)事實上大謬不然,現在是科學掛帥,而科學的精義就在於系統的分類和應用。問題是我們能不能歸納出一些學習、應用的法則,將組合的過程化繁為簡,以符合各種應用范疇。

二、個人體驗

我個人對此感受極為深切,我原是個十足的外行,1978年第一次接觸電腦,曾以不到兩周的時間,就學會電腦操作,並應用「培基語言」設計完成“倉颉輸入”程式。當時我認為培基語言易學易用,是電腦上最好的工具。
後來,我開始用培基語言設計“倉颉向量組字”程式,每秒可生成兩個字,當時與我合作的宏基公司建議我采用組合語言,他們說組字程式速度要快,培基語言不能勝任。如改用組合語言,效率可提高十倍,由此開始了我與組合語言的不解之緣。1979年9月我們正式推出了由國人自行設計、具有完整的電腦功能、可運用數萬中文字的“天龍中文電腦”。
宏基公司動用了三位資深工程師,采用 Z80 MCZ系統,以六個月的時間完成了向量組字及系統程式,記憶空間占60KB,處理速度每秒約組成30字。
這是我首次發現到組合語言的威力,深究之下,才理解到電腦的全部工作原理。簡單說來,組合語言就是組合電腦所有功能的控制指令,利用它,就可以直接控制電腦。
其他高階語言,只是讓人省事,用一些格式化的手續,把人的想法化為過程的指令,這種情形就相當於為了遷就開車的人,建了密如蛛網的高速公路。本來走路只要幾分鐘就可到達的地方,以車代步的結果,反而需要耗費半個小時。
1980年,我決定自己動手,又重新設計了一套字數較多,字形較美觀的組字程式。只用了三個月的時間,結果不僅記憶空間縮小了三分之一,速度也快了十倍,達到每秒 300字。這個產品,就是1蘋果機上用的「漢卡」。
1983年,再經分析,我發現以往寫的程式很不精簡,技術也不成熟。我堅信中文字形在電腦上的應用,將是中國文化存亡興衰的根本因素,不僅值得投注自己的時間及精力,且也有此必要。所以我又拋掉了一切,重頭設計,加入更多的變化參數,並根據人的辨識原理,設計成第三代至第五代等多種字形產生器。每一代之間,速度都明顯地提高,功能也不斷加強。在這樣一再重覆的摸索中,嘗試了各種可行的途徑,充份認識了組合語言的特性及長處。
由於組合語言靈活無比的特性,我發現它就如同畫家的畫筆一般,只為了牟利,可以用它畫成各種廉價速成的商品;一旦投入自己的理想與心智,畫筆就不再只是一枝筆,而成為人心與外界的界面,畫出的作品立時升華成為藝術,進入一個更高的境界!
1985年,我再次重新設計規劃,采用人的智能原則,把人寫字、認字的觀念化為資料結構,程式只是用來闡釋資料、控制電腦的界面。該字庫的字形可做到無級次放大縮小,字體、字型皆能任意變化 (每字可以產生數億種變形) 。而且除了現今各種字典已收的六萬余字外,還可以組成完全符合中文規則的新字六百萬個,足敷未來新時代新觀念的發揮應用。
不僅如此,組字速度又提高了,每秒可以組成 30*30的字形兩千個!當然現在用的是15mhz 80286 ,比以往的4.75 mhz的z80 已經快了近六倍。但是,改良後的新程式,其功能的增加,處理過程的繁雜性已遠非當年可比。
這些成果,用了很多特殊的資料結構技巧,不可能經由高階語言來完成。既然用組合語言所制作的程式能一再大幅度地改進,這就說明了組合語言的彈性極大,效率相去千裡。如不痛下苦功鑽研,程式寫完,能執行就算了事,又怎能領悟其中奧妙?
所以,我並不認為組合語言祗是一種程式語言而已,它是一種創造藝術品的工具,它能賦與無知無覺的電子機器一種「生命」,由無知進而有知,由有知而生智慧。通過對組合語言的研究探索,我整理出一些規律,寫成這本書,以便於理解及應用。但是,要真正將組合語言發展成為藝術,尚有待青年朋友們繼續努力,在這個資訊時代,開拓出一片嶄新的天地。
無意義的音符能編成美妙的音樂,無規律的色彩可幻化為缤紛的世界,為什麼電腦的機器指令,不能架構出資訊的理性天地?
這就是藝術,作為藝術家,就必須奉獻出自己的心血,以真、善、美為最高境界。
要達到這種目的,就要認真的作好准備動作,再一步一步地追求下去。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved