匯編語言的藝術(shù)(組合語言的藝術(shù))_第1頁
匯編語言的藝術(shù)(組合語言的藝術(shù))_第2頁
匯編語言的藝術(shù)(組合語言的藝術(shù))_第3頁
匯編語言的藝術(shù)(組合語言的藝術(shù))_第4頁
匯編語言的藝術(shù)(組合語言的藝術(shù))_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、匯編語言的藝術(shù)(組合語言的藝術(shù))-觀念正誤第一節(jié)電腦 一、前言 匯編語言的藝術(shù)(組合語言的藝術(shù))-基本認(rèn)識(shí)(2)電腦的到來,被喻為人類文化的第三波革命,由于它具有強(qiáng)大的資訊機(jī)能和彈性,正好彌補(bǔ)了人類記憶不足、反應(yīng)遲鈍、厭于重覆和受限于時(shí)空的缺點(diǎn)。遂在當(dāng)今世事繁雜、變化多端的動(dòng)態(tài)社會(huì)中,成為人類日常工作中有力的幫手。 它之不同于人類其他的發(fā)明,是以機(jī)件的硬體結(jié)構(gòu),去執(zhí)行可以隨設(shè)計(jì)理念而改變的軟體。這一來,機(jī)器便具有了靈活應(yīng)用的彈性,只要有適合的軟體,它就會(huì)忠實(shí)不渝地去處理各種繁瑣的任務(wù)。 在初,它的速度及容量很低,但已有足夠的魅力,吸引了無數(shù)狂熱的有心人士,為它盡智竭力,不斷地改良更新。僅僅不過

2、十余年,它已脫胎換骨,蔚為龍象。 這是一個(gè)嶄新的天地,凡是思路廣、創(chuàng)意新,能將各種抽象觀念整理成為有秩序、有條理的人,都能利用電腦的特種語言,發(fā)展成為實(shí)用而成功的軟件。隨著軟件大量的應(yīng)用,工作績(jī)效顯著增進(jìn)。終于,它的地位奠定了,整個(gè)人類社會(huì)的變化加速發(fā)展,對(duì)它的依賴也逐日加深。 在這種形勢(shì)下,我們要想充份掌握電腦的發(fā)展方向,就必須澈底瞭解電腦的本質(zhì),再進(jìn)一步分析探討可行的、最理想的途徑。由于它還在發(fā)展階段,一定存在著許多缺陷,也正因?yàn)樗⒉粔蛲昝溃愿枰覀冇眯牧θ补唷?二、正名 任何一個(gè)行業(yè),其專業(yè)術(shù)語的正確性、優(yōu)雅性,代表了從事該業(yè)人士的文化水準(zhǔn)?;蛟S有人認(rèn)為文化水準(zhǔn)不重要,那么還有

3、什么更重要呢?信、雅、達(dá)不是一種裝飾,術(shù)語是供學(xué)習(xí)、溝通及表達(dá)之用。因此,文化水準(zhǔn)在另一個(gè)角度來說,相當(dāng)于該行業(yè)從業(yè)人員所具有的常識(shí)及智力水平。 有人稱電腦為電子計(jì)算機(jī),就其源起而言,Computer確是這種定義,因?yàn)楫?dāng)時(shí)的電腦,僅僅具備計(jì)算能力。但是微電腦(MicroComputer)問世后,其計(jì)算能力已由小型計(jì)算器(Calculator)所取代,其主要功能反而是邏輯推理、圖形及影象處理等。 當(dāng)今是一個(gè)演進(jìn)淘汰極為劇烈的時(shí)代,舉凡新生事物,由產(chǎn)生到消失,由稚弱到茁壯,無不歷歷在目。原名計(jì)算機(jī),現(xiàn)在已證明是當(dāng)時(shí)觀念的不足,我們應(yīng)該將錯(cuò)就錯(cuò)嗎?而且,趨勢(shì)所及,它必將朝向人工智能發(fā)展,成為道地的電

4、子腦。所以,我們認(rèn)為應(yīng)該及時(shí)更正,名之為電腦。 此外,將AssemblyLanguage譯為匯編語言,這是理解的錯(cuò)誤,因?yàn)榻^大多數(shù)的程式都需要匯編,而Assemble的本意正是組合。名不正,理解就會(huì)發(fā)生偏差,對(duì)功能的實(shí)際應(yīng)用就難以發(fā)揮。 最不可原諒的錯(cuò)誤是因?yàn)閲?guó)人好吃成性,硬把在現(xiàn)代科技界假借使用的MENU清單、目錄,全部直譯為菜單!我國(guó)文字原有的優(yōu)越性蕩然無存矣,我無法想像當(dāng)智慧電腦天天面對(duì)菜單時(shí),要從何理解! 有把Program程式當(dāng)作程序,這也是對(duì)文字概念認(rèn)識(shí)不夠所致,程式是一種具有程序的式子,而程序只是行事先后的過程及順序,讀者不可不知。 又硬體、軟體分指固定及可變的物理性質(zhì),硬件、軟

5、件則為某一具體的物件;套件、軟件包是可以出售的商品;硬、軟盤指附屬機(jī)器上之設(shè)備;軟盤是可取用的磁盤。 還有CALL被譯為訪問,似乎太擬人化了,它本來就是調(diào)用特定子程式,名正言順,何不調(diào)用?Run被譯為跑,則過于寫實(shí)。這些譯名不禁令我想到,在十多年前,1臺(tái)灣曾有人將Backspace翻譯為后悔,結(jié)果貽笑大方,傳為趣事。 其他此類疏誤尚多,我認(rèn)為電腦界必須謙虛一些,邀請(qǐng)文學(xué)界專家學(xué)者,或博采眾見,以免被譏為不學(xué)無術(shù)。 實(shí)際上,由于概念的應(yīng)用日趨精密,文字本身也在不停地調(diào)整變化。以莊子逍遙游為例,在漢朝時(shí)作消搖游。后來,改成以?為部首,代表動(dòng)作及行為的狀態(tài)的逍遙游,顯然比消搖游更為妥貼,于是沿用迄今

6、。 連哲學(xué)上都如此,為什么當(dāng)今的高科技就做不到呢? 三、應(yīng)用 電腦發(fā)展的初期,不論硬體、軟體,都出于個(gè)人的意向,其功能完全根據(jù)發(fā)展者自我的認(rèn)知而定。 現(xiàn)在,電腦軟、硬體的技術(shù)迅速成長(zhǎng),社會(huì)上對(duì)它的要求越來越高,尤其是軟件的復(fù)雜程度,已非任何一個(gè)個(gè)人能夠掌握。于是,個(gè)人英雄主義消逝了,集體合作、功能強(qiáng)大的各種軟件紛紛出籠,電腦的應(yīng)用普及到社會(huì)上各行各業(yè)。 人的愿望是永遠(yuǎn)無法滿足的,隨著技術(shù)的日新月異,使用者開始期待著一種萬能軟件,能一舉解決他們所有的需求。然而,電腦雖然是一種商品,其涉及的技術(shù)層次甚高,只有少數(shù)專家洞悉其中奧秘。在理論上,只要把所有已知的功能,溶匯在一個(gè)套件中,就叫做整合軟件,再

7、不斷改進(jìn),必然可以符合人的需求。 這種整合軟件,對(duì)西方的功利社會(huì)而言,只是可望而不可及的理想。他們制作軟件純?yōu)榱四怖?,成本越低,上市越早越好。既然他們才是掌握技術(shù)的專家,而要達(dá)到斂財(cái)?shù)哪康?,?dāng)然不想勞神費(fèi)力,去為使用者考慮。 設(shè)計(jì)軟件的工具,稱為程式語言,其種類甚多,最早用的是機(jī)器碼,后來為了程式師使用方便,特在機(jī)器碼與編程者之間建立了一個(gè)界面,此界面所用的字匯及語法,便是組合語言。 由于技術(shù)發(fā)展之初,各種觀念及認(rèn)識(shí)尚不完整,一般程式師都嫌組合語言太瑣碎,難學(xué)難用。故而又發(fā)展出一些比較容易應(yīng)用的高階語言。這種高階語言制作的程式,在執(zhí)行時(shí)不僅速度慢,又極占空間,使得容量有限的微電腦,常常被這種高

8、級(jí)程式占滿。 雖然硬體逐年改進(jìn),而軟體工作卻也不斷增加,如果采用高階語言來制作,水漲船高之余,整合的理想仍舊遙遙無期。電腦界一直有種謬論,咸認(rèn)記憶體的容量越來越大,所以程式空間并不重要。這是最不負(fù)責(zé)任的態(tài)度!記憶體的增加,正宜用來強(qiáng)化電腦的功能,怎能無故揮霍浪費(fèi)? 組合語言則沒有這種問題,在嚴(yán)謹(jǐn)?shù)闹谱鞣绞较?,不僅其程式空間小,執(zhí)行效率高,且制作容易。這一次,我們僅用了百余個(gè)人月,170KB的程式,完成了有視窗、文書、試算表、資料庫、繪圖、排版及通訊等功能的整合軟件。 更進(jìn)一步,我們把這個(gè)整合軟件的各個(gè)模組,繼續(xù)發(fā)展成為“整合系統(tǒng)模組”,提供給各系統(tǒng)、軟體公司,作第二次開發(fā)之用。由于利用現(xiàn)成模組

9、可以節(jié)省程式制作的時(shí)間,藉著大量應(yīng)用軟件的開發(fā),以提升電腦的功能。 當(dāng)然,各種電腦語言都有其優(yōu)劣點(diǎn),完全看設(shè)計(jì)者的理念及目的而定。原則上,其執(zhí)行速度、占用的系統(tǒng)空間、在各個(gè)不同機(jī)種上的通用性、待處理資料的性質(zhì)以及使用該語言需要的工作量等,都是必須詳加考慮的因素。 如果我們把眼光放在未來電腦的趨勢(shì)上,人工智能必將是唯一的方向。要想微電腦具有人的智能,由于對(duì)空間速度的要求,只有借助組合語言始有可能。至于目前一些人工智能專用語言,則都是過渡時(shí)期的垃圾,毫無價(jià)值! 不論從事任何工作,必須具有敏銳的眼光和判斷力,等到人人都看到了,再行動(dòng)手,則只有拚命追趕的份。組合語言正是一個(gè)嶄新的領(lǐng)域,先把觀念建立了,

10、再下功夫鉆研技術(shù),將無往而不利。四、美國(guó)市場(chǎng)的程式語言應(yīng)用 我手頭唯一的資料,是美國(guó)COMPUTER雜志在1983年五月刊載于第65頁的文章,討論當(dāng)時(shí)的362種軟件發(fā)展工具,存貯在一個(gè)相關(guān)性資料庫中,并且對(duì)該資料庫中工具的利用情況,一一分析。 文中列舉了34種程式語言,以及其他各種應(yīng)用工具,茲將程式語言部份,抄錄如后。 程式語言數(shù)量程式語言數(shù)量 FORTRAN110COBOL41 JOVIAL15StructuredFORTRAN10 Assembly8Basic5 CICS4ObjectCodeInput4 PL/13IFTRAN3 SRTRAN3PASCAL3 StructuredCOBO

11、L3ADA3 Compass2RATFOR2 LISP2C2 DMATRAN2MemoryDump2 BAL1SMAL/801 PCL1SCOBOL1 APL1HAL/S1 CHILL1ALGOL1 SNOBOL1JCVS1 CSL1MODULA1 MEFIA1CMS-21 經(jīng)過了七年的市場(chǎng)選擇,已是目前最主要的系統(tǒng)工具,PASCAL則取代了COBOL成為商業(yè)軟件的發(fā)展工具。BASIC仍為學(xué)生及業(yè)余玩家的伴侶;只有組合語言,大約仍停留在原有的水準(zhǔn)上。除了少數(shù)的系統(tǒng)程式,如IBMBIOS(BasicInputOutputServices基本中斷服務(wù)程式)以及DOS(DiskOperatingSy

12、stem磁盤作業(yè)系統(tǒng))等外,使用者不多。 這種現(xiàn)象導(dǎo)致了國(guó)人極大的偏見,咸認(rèn)為美國(guó)觀念、技術(shù)遙遙領(lǐng)先,他們對(duì)軟件發(fā)展工具的選擇,必然有獨(dú)到的眼光。學(xué)校教學(xué),系統(tǒng)公司應(yīng)用,莫不亦步亦趨、拾人牙慧。 美國(guó)是以商業(yè)為導(dǎo)向,利用逐年更新設(shè)備的手段,以加速產(chǎn)品的改進(jìn)。所以,他們重視硬體的效率,以及程式寫作的成本,但對(duì)程式語言本身的特性,并未受到應(yīng)有的重視。 不容諱言,目前我們?cè)谲涹w上,處于相當(dāng)落后的地位。如果在這個(gè)關(guān)鍵的時(shí)刻,我們還看不清事實(shí)的真相,妄想東施效顰,其后果未卜可知。 我認(rèn)為,只有采用組合語言,大力開發(fā)各種應(yīng)用程式,將最低檔微電腦的性能提升到極致。這樣,我們才能發(fā)揮人多勢(shì)眾的優(yōu)點(diǎn),提升高科技

13、水準(zhǔn)。 五、各種語言的性能比較 為了具體瞭解各種常用電腦語言間性能之優(yōu)劣,我們選用了五種為測(cè)試對(duì)象,下表即為測(cè)試所得之各種統(tǒng)計(jì)數(shù)據(jù)。表中以一為基數(shù),效率高者,其數(shù)值相對(duì)增加。 在附錄一、二中,我們將各種測(cè)試的原程式、所采用的技巧、以及考慮的細(xì)節(jié),分別列舉,并一一說明。主要的目標(biāo)是為了認(rèn)識(shí)程式寫作的技術(shù),和追求效率的手段。 我們測(cè)試的指標(biāo)有二,一是針對(duì)各種程式語言本身的適用范圍;一是程式語言之間的差異。根據(jù)對(duì)時(shí)、空效率的分析,我們發(fā)現(xiàn),程式語言之間,有著極大的差異。就是使用同一語言,程式寫作的技巧,也顯著地有所不同。至于程式語言的適用范疇,則因取材有限,未能得出可靠的結(jié)論。 我們選了兩個(gè)題目,一

14、是點(diǎn)陣圖形處理,將一個(gè)24X24點(diǎn)陣字形,左右、上下各放大一倍,以得到48X48的字形。這種點(diǎn)陣處理,有很多高階語言難以勝任,所以只好在常用的語言中,選了五種。另一是排序,一般語言都能處理,只是效率相去甚遠(yuǎn)。 語言類別執(zhí)行速度占用空間制作時(shí)間通用機(jī)種應(yīng)用限制 assembly1.01.02.1限于機(jī)種無限 圖 turboc7.23.21.4不限無限 形 pascal6.88.11.4不限工商應(yīng)用 處 fortran8.06.91.0不限科學(xué)計(jì)算 理 basic720.08.11.0不限有限 assembly1.01.010.0限于機(jī)種無限 排 c3.03.01.5不限無限 序 pascal6.

15、06.02.0不限一般應(yīng)用 處 fortran8.07.53.0不限科學(xué)計(jì)算 理 basic10.08.01.0不限有限 由于個(gè)人寫作能力,以及程式不同的特性,這種比較并無絕對(duì)的價(jià)值。不論從什么角度看,組合語言效能最佳,但制作時(shí)間較長(zhǎng),且限于機(jī)種,是其不利之處。據(jù)統(tǒng)計(jì),語言近年來有取代組合語言的趨勢(shì),尤其在系統(tǒng)設(shè)計(jì)上,由于硬體速度的改進(jìn),組合語言的邊際效益已日漸減少。 然而,從附錄的程式測(cè)試中可以看出,只有組合語言的寫作變化多、彈性大,能夠精雕細(xì)琢,將程式的效率發(fā)揮得淋漓盡致。純以技術(shù)的立場(chǎng)、以及成本的分析來看,真正有實(shí)用、推廣的價(jià)值的軟件,其初期的開發(fā)費(fèi)用及時(shí)間等成本根本微不足道。 硬體之速

16、度及記憶空間每增進(jìn)一倍,其產(chǎn)品之售價(jià)亦上漲一倍,故組合語言仍有其絕對(duì)的優(yōu)勢(shì)。至于通用性問題,以目前發(fā)展的趨勢(shì)來看,機(jī)種日漸統(tǒng)一,故絲毫不足為慮。 還有一點(diǎn)也常被忽視的,是程式的積累價(jià)值。效率不高、功能不強(qiáng)的程式,很容易就被揚(yáng)棄掉。反之,則可以不斷地重覆利用,甚至累積起來,成為日后軟件繼續(xù)發(fā)展的基石。像這樣,程式的制作效率將會(huì)隨著累積的程度而直線增加。當(dāng)然,沒有長(zhǎng)遠(yuǎn)的眼光和妥善的規(guī)劃,是難以竟功的。 要發(fā)揮組合語言真正的效益,必須先澈底認(rèn)識(shí)其特性及機(jī)能,并應(yīng)用各種技巧,整理出一套法則,以便推廣應(yīng)用。這樣雖然辛苦,但是,以未來社會(huì)對(duì)電腦的需求量,不論成本、效益,也不論硬體發(fā)展到什么程度,唯有組合語

17、言才能使軟體更上一層樓。第二節(jié)組合語言 一、結(jié)構(gòu)基礎(chǔ) 物質(zhì)文明之有今天的成就,是因?yàn)槿祟愓莆樟宋镔|(zhì)的基本結(jié)構(gòu)。物質(zhì)的種類無窮,但是卻都由基本元素交互組成,只要根據(jù)一定的法則,就能得到一定的結(jié)果。 電腦技術(shù)雖然日新月異,應(yīng)用軟件的變化也無止無盡,而其基本因子卻非常有限。各種微處理器的組合語言,正是電腦軟體的基礎(chǔ)結(jié)構(gòu),任何要通過軟件以完成的動(dòng)作,都是經(jīng)由組合語言的指令群,逐步執(zhí)行的。 因?yàn)殡娔X結(jié)構(gòu)復(fù)雜,各種任務(wù)分工極精,即使是一位資深的高級(jí)程式師,終其生也不過局限在若干固定的程式中鉆研,很難以宏觀的立場(chǎng)認(rèn)知全貌。再加上市場(chǎng)需求的壓力,局外人莫名其奧妙,局中人又忙得不可開交,所以還沒有任何人能作出全

18、盤的評(píng)估。 組合語言首先成為被誤解的犧牲者,包括應(yīng)用它的系統(tǒng)工程師在內(nèi),都一致認(rèn)為它難學(xué)難用,(中文也是一種組合形式的應(yīng)用,其所組合者是人的概念。無獨(dú)有偶,人們?cè)诓磺笊踅庵?,都視之為畏途。)事?shí)上大謬不然,現(xiàn)在是科學(xué)掛帥,而科學(xué)的精義就在于系統(tǒng)的分類和應(yīng)用。問題是我們能不能歸納出一些學(xué)習(xí)、應(yīng)用的法則,將組合的過程化繁為簡(jiǎn),以符合各種應(yīng)用范疇。 二、個(gè)人體驗(yàn) 我個(gè)人對(duì)此感受極為深切,我原是個(gè)十足的外行,1978年第一次接觸電腦,曾以不到兩周的時(shí)間,就學(xué)會(huì)電腦操作,并應(yīng)用培基語言設(shè)計(jì)完成“倉頡輸入”程式。當(dāng)時(shí)我認(rèn)為培基語言易學(xué)易用,是電腦上最好的工具。 后來,我開始用培基語言設(shè)計(jì)“倉頡向量組字”

19、程式,每秒可生成兩個(gè)字,當(dāng)時(shí)與我合作的宏基公司建議我采用組合語言,他們說組字程式速度要快,培基語言不能勝任。如改用組合語言,效率可提高十倍,由此開始了我與組合語言的不解之緣。1979年月我們正式推出了由國(guó)人自行設(shè)計(jì)、具有完整的電腦功能、可運(yùn)用數(shù)萬中文字的“天龍中文電腦”。 宏基公司動(dòng)用了三位資深工程師,采用Z80MCZ系統(tǒng),以六個(gè)月的時(shí)間完成了向量組字及系統(tǒng)程式,記憶空間占60KB,處理速度每秒約組成30字。 這是我首次發(fā)現(xiàn)到組合語言的威力,深究之下,才理解到電腦的全部工作原理。簡(jiǎn)單說來,組合語言就是組合電腦所有功能的控制指令,利用它,就可以直接控制電腦。 其他高階語言,只是讓人省事,用一些格

20、式化的手續(xù),把人的想法化為過程的指令,這種情形就相當(dāng)于為了遷就開車的人,建了密如蛛網(wǎng)的高速公路。本來走路只要幾分鐘就可到達(dá)的地方,以車代步的結(jié)果,反而需要耗費(fèi)半個(gè)小時(shí)。 1980年,我決定自己動(dòng)手,又重新設(shè)計(jì)了一套字?jǐn)?shù)較多,字形較美觀的組字程式。只用了三個(gè)月的時(shí)間,結(jié)果不僅記憶空間縮小了三分之一,速度也快了十倍,達(dá)到每秒300字。這個(gè)產(chǎn)品,就是1蘋果機(jī)上用的漢卡。 1983年,再經(jīng)分析,我發(fā)現(xiàn)以往寫的程式很不精簡(jiǎn),技術(shù)也不成熟。我堅(jiān)信中文字形在電腦上的應(yīng)用,將是中國(guó)文化存亡興衰的根本因素,不僅值得投注自己的時(shí)間及精力,且也有此必要。所以我又拋掉了一切,重頭設(shè)計(jì),加入更多的變化參數(shù),并根據(jù)人的辨

21、識(shí)原理,設(shè)計(jì)成第三代至第五代等多種字形產(chǎn)生器。每一代之間,速度都明顯地提高,功能也不斷加強(qiáng)。在這樣一再重覆的摸索中,嘗試了各種可行的途徑,充份認(rèn)識(shí)了組合語言的特性及長(zhǎng)處。 由于組合語言靈活無比的特性,我發(fā)現(xiàn)它就如同畫家的畫筆一般,只為了牟利,可以用它畫成各種廉價(jià)速成的商品;一旦投入自己的理想與心智,畫筆就不再只是一枝筆,而成為人心與外界的界面,畫出的作品立時(shí)升華成為藝術(shù),進(jìn)入一個(gè)更高的境界! 1985年,我再次重新設(shè)計(jì)規(guī)劃,采用人的智能原則,把人寫字、認(rèn)字的觀念化為資料結(jié)構(gòu),程式只是用來闡釋資料、控制電腦的界面。該字庫的字形可做到無級(jí)次放大縮小,字體、字型皆能任意變化(每字可以產(chǎn)生數(shù)億種變形)

22、。而且除了現(xiàn)今各種字典已收的六萬余字外,還可以組成完全符合中文規(guī)則的新字六百萬個(gè),足敷未來新時(shí)代新觀念的發(fā)揮應(yīng)用。 不僅如此,組字速度又提高了,每秒可以組成30*30的字形兩千個(gè)!當(dāng)然現(xiàn)在用的是15mhz80286,比以往的4.75mhz的z80已經(jīng)快了近六倍。但是,改良后的新程式,其功能的增加,處理過程的繁雜性已遠(yuǎn)非當(dāng)年可比。 這些成果,用了很多特殊的資料結(jié)構(gòu)技巧,不可能經(jīng)由高階語言來完成。既然用組合語言所制作的程式能一再大幅度地改進(jìn),這就說明了組合語言的彈性極大,效率相去千里。如不痛下苦功鉆研,程式寫完,能執(zhí)行就算了事,又怎能領(lǐng)悟其中奧妙? 所以,我并不認(rèn)為組合語言祗是一種程式語言而已,它

23、是一種創(chuàng)造藝術(shù)品的工具,它能賦與無知無覺的電子機(jī)器一種生命,由無知進(jìn)而有知,由有知而生智慧。通過對(duì)組合語言的研究探索,我整理出一些規(guī)律,寫成這本書,以便于理解及應(yīng)用。但是,要真正將組合語言發(fā)展成為藝術(shù),尚有待青年朋友們繼續(xù)努力,在這個(gè)資訊時(shí)代,開拓出一片嶄新的天地。 無意義的音符能編成美妙的音樂,無規(guī)律的色彩可幻化為繽紛的世界,為什么電腦的機(jī)器指令,不能架構(gòu)出資訊的理性天地? 這就是藝術(shù),作為藝術(shù)家,就必須奉獻(xiàn)出自己的心血,以真、善、美為最高境界。 要達(dá)到這種目的,就要認(rèn)真的作好準(zhǔn)備動(dòng)作,再一步一步地追求下去。、利人與利己 任何一種商業(yè)產(chǎn)品,當(dāng)然是以利益為先,利己后而利人。如果是藝術(shù)品創(chuàng)造,則

24、剛剛相反,唯有能忽視己利,瀝血泣心地探索,虔誠狂熱地奉獻(xiàn),才會(huì)迸發(fā)出人性的光輝,創(chuàng)造不朽的杰作。 藝術(shù)家之偉大,在于此,人性之可貴,在于此。 對(duì)組合程式語言,有人視為商品,將寫作技巧當(dāng)作專利,輕不示人。相信這也是迄今尚無一本像樣的參考書籍之根本原因,我買了不少這類書,但書中除了指令介紹以及編程、偵錯(cuò)的手續(xù)外,完全沒有技巧的說明,好像懂得指令就可以把程式寫好一般。當(dāng)我自己下了不少功夫,得到了一些心得,再回過頭來看那些參考書,才發(fā)現(xiàn)連作者本人所舉的例子,都是平鋪直敘,毫無技巧可言。 (更正,在序言中我曾提到有本最近出版的“禪組合語言”,是唯一的例外,希望讀者不要錯(cuò)過。) 多年來,我一直想寫本有關(guān)組

25、合語言寫作技巧的書,可惜都得不到機(jī)會(huì)。這次,為了實(shí)現(xiàn)整合系統(tǒng)革命性的計(jì)劃,所有招收的工程師,一概從頭訓(xùn)練。由于沒有可用的教材,只好自己動(dòng)手,于是初步有了講義,再經(jīng)修改,便成此書。 我認(rèn)為,既然組合語言是種藝術(shù),我們不僅不應(yīng)該藏私自珍,而且要相互探討,交流切磋,以期發(fā)揚(yáng)光大。 不過,技術(shù)本身與利用該技術(shù)所創(chuàng)造的產(chǎn)品卻不能混為一談,產(chǎn)品是藉以謀生的工具,能夠生存,大家才有研究發(fā)展的機(jī)會(huì),也才能把成果貢獻(xiàn)給社會(huì)。如果國(guó)人不尊重別人的產(chǎn)品權(quán)利,只是互相抄襲盜用,或能受惠于一時(shí),但影響所及,人人貪圖現(xiàn)成,不事發(fā)展,則觀念停頓,技術(shù)落伍,其后果不堪設(shè)想。 第三節(jié)效率定律 一、效率的定義 在宇宙中,大至物種

26、的演進(jìn)、變化,小至個(gè)人的工作、運(yùn)動(dòng)等,都嚴(yán)格地遵守效率法則。 效率的定義是: F=E/t,即特定的能量在特定的時(shí)、空中所作的功。 由上式F=Et可知,特定的能量在特定的時(shí)空中所作的功,是一恒定值,既為恒定值,表示不可能有任何浪費(fèi)。當(dāng)能量不變時(shí),時(shí)、空的延長(zhǎng)往往會(huì)導(dǎo)致功率的不足,從另一個(gè)角度看,可以說是能量不夠,效率低。 對(duì)電腦而言,如果寫作程式的功率能接近此一恒定值,而又具有長(zhǎng)遠(yuǎn)的使用價(jià)值,則我們可以假定,這種程式的效率最高。 由人類文明的演進(jìn),可以看出,因?yàn)榧夹g(shù)日漸專業(yè)化,工作的難度不僅沒有減低,反而更加復(fù)雜。這種藉著職業(yè)專家的投入,以節(jié)省一般應(yīng)用者寶貴時(shí)間的方法,事實(shí)上可以說就是效率的追求

27、。 因?yàn)槿说纳鼉H存在于有限的時(shí)間,所以其價(jià)值極高。每一個(gè)電腦程式,其最終目的都是為了服務(wù)大多數(shù)的使用者,制作程式者僅僅是少數(shù)人,其制作時(shí)間的長(zhǎng)短,永遠(yuǎn)無法與大多數(shù)的使用者,在操作中所耗費(fèi)的時(shí)間相提并論。 此外,以寫作程式為職業(yè)的人,一生中所需寫作的程式,也一定有相當(dāng)?shù)臄?shù)量。如果能重復(fù)應(yīng)用寫過的程式,將更縮短其寫作時(shí)間。無論從哪一個(gè)角度,若要追求效率,組合語言應(yīng)是唯一的選擇。 作為電腦的從業(yè)者,在職業(yè)良知上,理應(yīng)稟著服務(wù)人類、追求效率為最高準(zhǔn)則。 二、電腦的效率性 電腦的發(fā)明,是人類追求效率最具代表性的成就。 目前電腦的機(jī)能尚局限在資料處理以及自動(dòng)控制上,人們利用電腦,所期望得到的效率不外乎下

28、述六點(diǎn)。 1,節(jié)省工作時(shí)間及工作成本。 2,取代繁瑣、重覆性高或具有危險(xiǎn)性的作業(yè)。 3,追求精密無誤的資料、訊息。 4,貯存或運(yùn)算大量的數(shù)據(jù)或資料。 5,遠(yuǎn)距離的通訊或遙控作業(yè)。 6,自動(dòng)化工業(yè)生產(chǎn)或一般性服務(wù)。 然而,電腦發(fā)展方興未艾,上述數(shù)點(diǎn)難以表達(dá)于萬一。因此,我們有必要將人類所期望的效率整理歸類,以作為分析判斷的依據(jù)。 三、四大效率定律 茲以人類社會(huì)中,有關(guān)作業(yè)過程、生產(chǎn)成本及應(yīng)用價(jià)值等三方面,分別假設(shè)定律如下: 定律一: 在作業(yè)過程上,能以最少步驟產(chǎn)生最大功率者,效率最高。 定律二: 在生產(chǎn)成本上,時(shí)、空間及原料最節(jié)省者,其效率最高。 定律三: 在應(yīng)用價(jià)值上,功能及成果能一再累積者,

29、其效率最高。 定律四: 最佳的效率,是最符合實(shí)際需求的最大邊際效應(yīng)。 電腦的應(yīng)用,純粹是為了追求工作效率,據(jù)此,硬體、軟體的設(shè)計(jì),都應(yīng)嚴(yán)格遵守效率定律??墒鞘聦?shí)卻不然,由于電腦發(fā)展迄今,一直是賣方市場(chǎng),美其名為高科技,內(nèi)行人高利、高酬,外行人則唯恐后人,亦步亦趨。 電腦界為了謀取近利,在軟件設(shè)計(jì)的過程上,常采用最缺乏工作效率的高階語言。但是由于高階語言易于制作,生產(chǎn)成本低,只是苦了無知無覺的買者,為了追求效率往往要花費(fèi)更多的代價(jià),購買更昂貴的、更新型的硬體,以滿足其效率的需要。 有人說高階語言制作的程式還有一個(gè)組合語言無法比擬的優(yōu)點(diǎn),就是很容易轉(zhuǎn)移到其他的機(jī)種上。事實(shí)上,目前微電腦市場(chǎng)僅存兩種

30、機(jī)型:一為IBMPC系列及其兼容機(jī),另一為MACINTACH,而這兩者所有的軟件,不論采用哪一種語言,都無法輕易地轉(zhuǎn)移! 一般說來,任何一種新的微電腦上市,其執(zhí)行速度及記憶容量每增加一倍,其價(jià)格亦成正比上升。是不是有必要非改進(jìn)硬體,才能達(dá)到效率的要求呢?如果我們能澈底瞭解程式語言的特性,當(dāng)會(huì)明確地認(rèn)知怎樣才具最大邊際效益。 這也是進(jìn)化的基本法則之一,當(dāng)電腦技術(shù)成熟之時(shí),真正的效率才會(huì)受到重視。同理,在電腦應(yīng)用效率達(dá)到最高點(diǎn)時(shí),也就是電腦技術(shù)成熟的時(shí)機(jī)。我們?nèi)绻苷莆者@個(gè)原則,自不難看到長(zhǎng)遠(yuǎn)的發(fā)展趨勢(shì),洞燭機(jī)先。 四、組合語言之效率 根據(jù)定律一,組合語言之效率是不容置疑的,因?yàn)榻M合語言相當(dāng)于電腦

31、運(yùn)行的機(jī)器命令,能直接產(chǎn)生功率。 生產(chǎn)成本有多種意義,在此我們僅討論其中兩點(diǎn):一是生產(chǎn)過程所需的時(shí)間,一是產(chǎn)品的直接成本。 組合語言能以最小的空間,發(fā)揮最大的功能。顯然,在等效的功能下,其成品所占空間最小,成本最低。但是對(duì)生產(chǎn)過程所需時(shí)間而言,組合語言就處于相當(dāng)不利的地位。除非能有一種方法,可以改進(jìn)組合語言制作的效率。 這正是本書的主要目的:介紹一種方法,以提高組合語言之制作效率。 我們的目標(biāo)不僅在提高數(shù)倍的制作效率,并且還要證明,用一種特殊的手段,能將組合語言設(shè)計(jì)的模組,如同砌磚一般,建造出資訊的金字塔來。這樣不僅能滿足定律三,而且完全符合定律四的要求。 最重要的,是這種效率的達(dá)成,在于利用

32、人的智力。我認(rèn)為在宇宙進(jìn)化的過程中,到目前為止,人智就是最高效率的結(jié)晶。任何人若要追求效率,應(yīng)自己先下手,與其坐待硬體的改進(jìn),不如充實(shí)程式寫作的方法及技巧,至少,這些都操縱在自己的手里。五、模組的效率 模組并不是一個(gè)新觀念,在人類文明發(fā)展史上,人一直致力于瞭解自己身處的宇宙。這種瞭解,實(shí)際上就是模組應(yīng)用的觀念,將宇宙大環(huán)境,分解成為人所能認(rèn)知的小環(huán)境,進(jìn)而將小環(huán)境再分解成為個(gè)人的經(jīng)驗(yàn)素材。 這樣一層層地分解下去,便有了概念、知識(shí)。換句話說,概念及知識(shí),就是一個(gè)個(gè)代表人類對(duì)客觀認(rèn)知的模組。 基于模組的特性,人才能靈活地加以應(yīng)用,因而產(chǎn)生了人類文明。同理,當(dāng)電腦的軟件,也演化為模組方式,進(jìn)一步大量

33、推廣運(yùn)用時(shí),電腦文明的時(shí)代,即將到來。 模組的效率是結(jié)構(gòu)性效率的最高表現(xiàn),在我們處身的宇宙中,無處沒有結(jié)構(gòu),無一不受到結(jié)構(gòu)的支配。有關(guān)模組規(guī)劃、制作和應(yīng)用,將在第四章第三節(jié)、模組觀念中詳加討論。 第四節(jié)程式價(jià)值 一、程式的種類 因?yàn)槟康牟煌?,一般說來,程式可以分為以下四種。 1,應(yīng)用程式: 凡專門提供給用戶,作某種特殊應(yīng)用的軟件,皆稱為用程式。通稱套裝軟件(ApplicationPackage),即成套包裝的軟件。 2,系統(tǒng)程式: 即為系統(tǒng)所提供的通用程式,包括在DOS環(huán)境下運(yùn)行的命令(Command)及基本中斷程式等。這些程式都是支援系統(tǒng)硬體,供用戶應(yīng)用的工具。 3,介面程式: 介面意為介于

34、多個(gè)面之間,凡電腦各系統(tǒng)、硬體與軟體、軟體與軟體之間,皆可稱之為介面。 對(duì)程式師而言,寫作程式需要程式語言的發(fā)展環(huán)境,所謂的介面程式,即為此類發(fā)展環(huán)境所必需者。 此外諸如網(wǎng)絡(luò)及通訊等,也可以稱為介面程式。 4,控制程式: 利用程式控制機(jī)器運(yùn)作者,此類程式完全依賴硬體獨(dú)特的機(jī)能,專業(yè)性極強(qiáng)。 二、價(jià)值觀念 不論什么程式,都應(yīng)該以正確、精簡(jiǎn)、效率為基本原則。但在目前,除了系統(tǒng)程式比較重視精簡(jiǎn)及效率外,其他的程式多半只重視正確性而已。 人們往往以為只有硬體才具有價(jià)值,其實(shí)大謬不然。硬體的變化有限,軟體則永無止境;硬體的價(jià)值容易衡量,軟體卻祗有行家才能判斷其良窳。在商業(yè)利益掛帥的今天,所謂的行家,經(jīng)常

35、就是既得利益者。消費(fèi)大眾是盲目的,也是無辜的,行家為了自身的利益,很少愿意道破其中原委。 此外還有另一層原因,硬體生產(chǎn)需要技術(shù)、材料、資金及設(shè)備環(huán)境,而軟件則人人都可以隨手盜用。對(duì)一個(gè)從事軟件設(shè)計(jì)的程式師,盡管有心將工作做得盡善盡美,但一想到其嘔心瀝血發(fā)展出來的精品,很可能剎時(shí)之間就被不尊重軟件價(jià)值的消費(fèi)者偷抄盜賣,哪里還有興致去精雕細(xì)琢? 如果我們能先將軟體的價(jià)值觀建立起來,且人人尊重軟體應(yīng)有的價(jià)值,如此真正受惠的,將是廣大的消費(fèi)大眾。否則,這樣惡性循環(huán)下去,電腦只能靠硬體的改進(jìn),來達(dá)到效率的追求,軟體不過是一種速食性的消費(fèi)品,永遠(yuǎn)沒有價(jià)值。 以金額來看,硬體的市場(chǎng)邊際價(jià)值遠(yuǎn)不如軟體為高。因

36、為硬體的生產(chǎn)成本高,用戶每購買一臺(tái),就滿足了基本需求。故此必須經(jīng)常推陳出新,以資獲利。當(dāng)然,市場(chǎng)也有其平衡的法則,高利之下,競(jìng)爭(zhēng)者多,過時(shí)的、效率低的硬體又因恐遭市場(chǎng)淘汰而大幅度的降價(jià)。 從過去的經(jīng)驗(yàn)中可以推出,硬體效率的改進(jìn),大約每年一次,而軟體則完全建立在其價(jià)值觀之上。如果值得,設(shè)計(jì)者愿意投入,軟體可以在很短的周期中,或因觀念的突破,或因工具的特性,功能及效率立即提高了十百倍!問題在于,連從事程式設(shè)計(jì)的程式師,對(duì)軟體的認(rèn)識(shí)都不夠充分,所制作的軟件尚無法滿足使用者的需求,充其量只是速成品罷。故不論是程式師或使用者,對(duì)軟件的價(jià)值觀都難以建立。 上述的工具是指組合語言,而觀念則是將組合語言視作藝

37、術(shù)。當(dāng)然,這些只是理想,基于人性,理想永遠(yuǎn)祇屬于少數(shù)人??墒?,少數(shù)人的理想經(jīng)常會(huì)推動(dòng)時(shí)代,為多數(shù)人謀取福利。 三、創(chuàng)造價(jià)值 資訊時(shí)代方興未艾,可以預(yù)期到只要有人類存在,電腦將是不可或缺的伴侶,永遠(yuǎn)伴著人類不斷朝向超高效率的境地邁進(jìn)。且不論硬體技術(shù)如何改進(jìn)、變化,應(yīng)用軟體才是電腦生命的靈魂。一個(gè)有價(jià)值的軟件,在千錘百煉之下,經(jīng)過人智的洗禮,其意義絕不是物質(zhì)報(bào)酬可以比擬的。 再換一個(gè)角度來看,電腦的硬體技術(shù)日新月異,體積日趨輕巧。雖然記憶量也在不斷增加,但是軟件卻剛剛相反,由于對(duì)高階語言的依賴,程式占用系統(tǒng)的空間越來越大,以致于抵消了硬體演進(jìn)所創(chuàng)造的價(jià)值。 當(dāng)然這都是軟件工程師的責(zé)任,如果從事軟件

38、開發(fā)者,不立時(shí)覺悟,電腦將不過是金玉其表,敗絮其內(nèi)。同理,從事軟件開發(fā)者,如果僅顧眼前的方便、急功近利,能抄就抄,能偷就偷,長(zhǎng)此以往,電腦永遠(yuǎn)不能形成氣候。 因此,鉆研軟體的制作技術(shù),創(chuàng)造軟件的實(shí)用價(jià)值,才是資訊時(shí)代的主導(dǎo)方向。從這個(gè)角度上來看,組合語言所具備的效率優(yōu)勢(shì),遠(yuǎn)較高階語言容易制作的優(yōu)點(diǎn)更有意義。 對(duì)程式師而言,僅把程式當(dāng)作一種工作,而不追求效率價(jià)值,則其技術(shù)及境界將止于此,其成就亦可想而知。唯有殫精竭慮,不斷追求完美的人,無論觀念和技術(shù)都將逐步提升,則在未來的資訊時(shí)代中,將會(huì)占有一席之地。 四、追求價(jià)值 那么,究竟應(yīng)該如何去追求最高的價(jià)值呢?我們不妨從幾個(gè)不同的角度來分析。 1,程

39、式價(jià)值的定義: 前面說過,組合語言是一種藝術(shù)工具,用組合語言所寫的程式則是藝術(shù)品。而藝術(shù)品的價(jià)值是很難加以衡量??墒牵淌接质且环N工具,對(duì)工具而言,它是客觀存在,必然具有客觀的價(jià)值。 因此,我們可以站在客觀的立場(chǎng),將用組合語言所制作的程式、以及其應(yīng)有的價(jià)值,分門別類予以定義。在此我們不考慮其他程式語言所制作的軟件,并不表示這些價(jià)值定義不適用,而是認(rèn)為這種比較不公平。因?yàn)橐韵碌亩x,都是根據(jù)組合語言的特性而考慮的。 1-1成本價(jià)值目標(biāo)目標(biāo)成本 成本價(jià)值是一種人人都知其然而不知其所以然的觀念,是指以某一固定成本,在目標(biāo)與兩者之間,根據(jù)效率定義,何者價(jià)值高,即為其成本之代價(jià)。 在現(xiàn)實(shí)世界里,人所從事

40、的工作,有抽象的精神或心理代價(jià),也有金錢或物質(zhì)代價(jià),甚至兩者兼而有之。不論如何,也不論成本為何,其價(jià)值高者,經(jīng)常是人所追求的目標(biāo)。在這種基礎(chǔ)上投入的成本,其價(jià)值的高低,將視人所追求的目標(biāo)而定。 由于理想很有可能只是某種特殊的目標(biāo)或影響,其利益經(jīng)常遠(yuǎn)大于經(jīng)濟(jì)上的獲利。因此,要提高成本價(jià)值,絕非僅僅降低成本而已,而是如何提高其影響力。 再若經(jīng)濟(jì)上的獲利高于理想,以現(xiàn)實(shí)的角度而來看,人不可能輕易放棄利益,而去追求價(jià)值不足的理想。 在這種理論下,人的發(fā)展方向,是從事理想的追尋抑或物質(zhì)利益的滿足,端視理想與獲利兩者,對(duì)個(gè)人的成本價(jià)值而定。同理,人工作的方式及對(duì)工作的要求,亦因成本價(jià)值而有所取舍。 采用組

41、合語言制作程式,就是明顯的成本價(jià)值觀念。因?yàn)榻M合語言的效率高,追求效率的實(shí)現(xiàn)就是一種理想,為此,投下時(shí)間及各種難以估計(jì)的成本,對(duì)那些有能力牟利者說來,當(dāng)然是不值得??墒窃诓恢⒍挛餅楹握撸死硐氲淖非?,還待何為? 以上面的公式來看,降低成本仍可提高其價(jià)值,獲利的增加亦然,這是必然的,即所謂的附加價(jià)值。關(guān)鍵在于如果理想的價(jià)值低于獲利,自然而然,其目標(biāo)將轉(zhuǎn)移為獲利。反之,為了牟利,也可能在發(fā)現(xiàn)了理想價(jià)值后而改途轉(zhuǎn)向。 附帶的產(chǎn)生了一個(gè)話題,若矢志追求理想的人又想兼顧金錢利益,一旦金錢利益的成本價(jià)值超過了理想時(shí),根據(jù)前述理論,此人隨時(shí)可能變節(jié)。至少,在我個(gè)人的見聞中,還沒有例外的。1-2功能價(jià)值

42、絕對(duì)價(jià)值采用后效益未采用前效益 相對(duì)價(jià)值各軟件間絕對(duì)價(jià)值比 任何軟件,如果沒有實(shí)用的功能,就不可能有真正的價(jià)值。至于軟件的功能價(jià)值如何測(cè)定,多多少少要看使用者的主觀條件而定。 在這里,我們提出一個(gè)簡(jiǎn)單的方法,先要知道在采用軟件的前后,是否真具有效益?這種效益,是絕對(duì)的,沒有大、小的比較。 然而,如果一個(gè)軟件沒有效益,就不可能成為商品。所以,任何軟件的功能價(jià)值,應(yīng)該是比較性的,在類似軟件中,取其絕對(duì)價(jià)值之比值即可。 1-3效率價(jià)值程式功能價(jià)值占用空間執(zhí)行時(shí)間 效率是可以精確衡量的,只要得到前述的功能價(jià)值,其它諸如程式占用的系統(tǒng)空間、執(zhí)行所需要的時(shí)間等參數(shù),都可以透過測(cè)試得到。 當(dāng)程式的功能價(jià)值極

43、高時(shí),相對(duì)的看來,其空間及速度的影響不大,但這種程式迄今尚未誕生。尤其是目前電腦硬體的機(jī)能還在啟蒙階段,一般說來,現(xiàn)有的軟件占有的空間太大,而且速度太慢,故效率不高。正當(dāng)這個(gè)關(guān)頭,軟件所扮演的角色,可以說是舉足輕重,效率自然不能忽視了。 由于軟件界還沒有注意到這一點(diǎn),有識(shí)之士可以想見,只要能掌握住效率價(jià)值,就可以出人頭地。 1-4累進(jìn)價(jià)值效率價(jià)值使用頻率軟件生命期 硬體是消耗品,用到一定的時(shí)限后,就失去了再利用的價(jià)值。而軟體則永遠(yuǎn)沒有損耗,除非應(yīng)用觀念的改變,其實(shí)用的價(jià)值如常。 不僅如此,應(yīng)用觀念雖然會(huì)改變,只要軟件是由模組結(jié)合而成,其中的共用模組永遠(yuǎn)不變。略作適當(dāng)?shù)男薷?,或再增加功能后,又?/p>

44、貌一新。 這種共用模組就具有累進(jìn)價(jià)值,也就是說,用模組方式制作的軟件,只要分割適當(dāng),就應(yīng)具有累進(jìn)價(jià)值。凡是有累進(jìn)價(jià)值的程式,其邊際效益最高。因此品質(zhì)的要求也相對(duì)加高。如上面公式所表示的,累進(jìn)價(jià)值等于該程式本身的效率,以及在不斷累積使用下頻率和生命期的乘積。只有基于組合語言的高效率,才可能產(chǎn)生這種價(jià)值。 在資訊時(shí)代,程式師必須認(rèn)識(shí)軟件的重要性及其所具有的價(jià)值,才能充份發(fā)揮。 2,程式師應(yīng)有的態(tài)度: 自動(dòng)自發(fā),謙虛學(xué)習(xí),掌握重點(diǎn),認(rèn)真負(fù)責(zé),追求完美 寫程式完全是腦力活動(dòng),除非是行家,程式師是否真是在工作,別人很難從外表上看出來。同時(shí),如果程式師不是自動(dòng)自發(fā),對(duì)工作無熱忱,甚至心存歧見,則不可能把程

45、式寫好。 自動(dòng)自發(fā)是指發(fā)自內(nèi)心的原動(dòng)力,且不論是基于名、利、個(gè)人成就感或是好奇、賭氣、逞強(qiáng),只要有了這種動(dòng)力,問題沒解決,就會(huì)形成懸疑,不斷地縈繞腦際,難以休息,直到解決為止。 但是,人的智力相去甚遠(yuǎn),經(jīng)驗(yàn)亦各自不同。姑不論個(gè)人的才智,在解決問題時(shí),集思廣益,虛懷若谷,必然是最有效、最正確的態(tài)度。 問題在于,越是執(zhí)著、好強(qiáng),或者自卑自傲的人,其自我觀念越重。遇事即采慣性行事,而且堅(jiān)持不變,這種人不可能謙虛,更無法學(xué)習(xí)。 就像藝術(shù)家一樣,不參考他人的作品,不學(xué)習(xí)新的技巧及觀念,固步自封,則難成大師。如果程式師不能謙虛學(xué)習(xí),不隨著時(shí)代的變化成長(zhǎng),創(chuàng)作出來的程式,其價(jià)值可想而知的。 天下英才比比皆是

46、,然而出類拔萃的人卻不多。究其因,在學(xué)習(xí)、思考時(shí),當(dāng)是原則重于細(xì)節(jié),然而在執(zhí)行的過程中,卻是細(xì)節(jié)重于原則。此外,事物變化的組合無窮無盡,主事者必須能針對(duì)目標(biāo),隨時(shí)根據(jù)實(shí)際狀況,逐步處理。 在各種狀況中,如若程式師不能掌握當(dāng)前的重點(diǎn),則凡事皆如有千頭萬緒,難以下手。事實(shí)上,從成事敗事的觀點(diǎn)來看,人只有兩種,有能力者,是把復(fù)雜的事簡(jiǎn)化;無能力者,經(jīng)常把簡(jiǎn)單的事變得復(fù)雜無比。而這種能力的差異,就在于能否掌握當(dāng)前的重點(diǎn)。 觀念清楚了,就看當(dāng)事人是否能認(rèn)真負(fù)責(zé),堅(jiān)持貫徹到底。人間世事成敗,完全基于這種態(tài)度。不認(rèn)真,工作時(shí)草草了事,不可能有好的成績(jī);不負(fù)責(zé)更糟,沒有問題也會(huì)產(chǎn)生問題,發(fā)生問題后,更是無人解

47、決;若參與工作的人多,彼此推卸責(zé)任,這樣做人處世必將失敗,程式制作亦然。 所謂認(rèn)真負(fù)責(zé),具體說來,即是在事先要徹底瞭解該做什么?要做什么?以及如何去做?工作時(shí)要考慮怎樣做最有效率?每一步驟會(huì)產(chǎn)生什么結(jié)果?而工作完成后要徹底檢查,目標(biāo)是否已達(dá)成?能否再加以改進(jìn)? 最后,是對(duì)程式的品質(zhì)及技巧的完美性,應(yīng)鍥而不舍地追求。一般人常把完美當(dāng)作不必要的奢侈,其實(shí)不然,完美是一種永遠(yuǎn)無法達(dá)到的理想。重要的觀點(diǎn)是,人只有在追求完美的過程中,才能不斷地進(jìn)步、升華。一個(gè)人若沒有理想,就與動(dòng)物無異,一個(gè)程式師若沒有理想,套句愛因斯坦的名言,不過是只訓(xùn)練有素的小狗罷了。 態(tài)度來自習(xí)慣,習(xí)慣則來自于學(xué)習(xí)及鍛煉,有志向上者,應(yīng)該自我要求,努力學(xué)習(xí)。等到鍛煉久了,習(xí)慣成自然,有了良好的態(tài)度,終有成為大師的一天。 3,軟件開發(fā)的原則: 分工合作,量材施用,慎重計(jì)劃,嚴(yán)格執(zhí)行,市場(chǎng)導(dǎo)向 此處所說的軟件開發(fā),是指具有相當(dāng)規(guī)模的程式,需要多數(shù)人員共同工作者。人多固然力量大,但是人與人的相處和溝通,問

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論