上一頁 目錄 下一頁

組 合 語 言 之 藝 術


    組 合 語 言 之 藝 術

    目        錄

序  -------------------------------------------    1
第一章  觀念正誤  -----------------------------    3
    第一節  電腦  -----------------------------    3
          一、前言  ---------------------------    3
          二、正名  ---------------------------    4
          三、應用  ---------------------------    5
          四、美國市場的程式語言應用  ---------    7
          五、各種語言的性能比較  -------------    9
    第二節  組合語言  -------------------------   12
          一、結構基礎  -----------------------   12
          二、個人體驗  -----------------------   13
          三、利人與利己  ---------------------   15
    第三節  效率定律  -------------------------   17
          一、效率的定義  ---------------------   17
          二、電腦的效率性  -------------------   18
          三、四大效率定義  -------------------   18
          四、組合語言之效率  -----------------   20
          五、模組的效率  ---------------------   20
    第四節  程式價值  -------------------------   22
          一、程式的種類  ---------------------   22
          二、價值觀念  -----------------------   23
          三、創造價值  -----------------------   24
          四、追求價值  -----------------------   25
第二章  準備工作  -----------------------------   34
    第一節  系統  -----------------------------   34
          一、系統之選擇  ---------------------   34
          二、目錄及磁碟  ---------------------   34
          三、應用工具  -----------------------   35
          四、簡化名稱  -----------------------   36
          五、參考資料  -----------------------   37
    第二節  應用工具的製作  -------------------   40
          一、聯接目標檔  ---------------------   40
          二、目標檔偵錯及工具  ---------------   41
    第三節  分類定義  -------------------------   43
          一、段名定義  -----------------------   43
          二、原始檔檔名定義  -----------------   45
          三、標題定義  -----------------------   46
          四、緩衝器定義  ---------------------   48
    第四節  統一格式  -------------------------   50
          一、格式統一之優點  -----------------   50
          二、規格  ---------------------------   50
          三、註記  ---------------------------   52
第三章  基本認識  -----------------------------   54
    第一節  應用工具  -------------------------   54
          一、對程式的認識  -------------------   54
          二、對資料的認識  -------------------   58
          三、對暫存器的認識  -----------------   60
          四、對指令的認識  -------------------   64
    第二節  工作環境  -------------------------   68
          一、系統空間  -----------------------   68
          二、週邊設備  -----------------------   70
          三、系統程式  -----------------------   71
          四、配備程式  -----------------------   72
          五、公用模組  -----------------------   73
    第三節  處理對象  -------------------------   74
          一、數據資料  -----------------------   74
          二、文字資料  -----------------------   74
          三、圖形資料  -----------------------   79
          四、概念資料  -----------------------   80
          五、綜合資料  -----------------------   81
    第四節  指令應用  -------------------------   83
          一、避免浪費速度及空間  -------------   83
          二、程式要條理通順  -----------------   91
          三、指令應用要靈活  -----------------   97
          四、迴路中的指令  -------------------  102
    第五節  分支處理  -------------------------  106
          一、資料的分類  ---------------------  107
          二、程式的結構  ---------------------  108
          三、次序與條件「真」「假」  ---------  109
          四、JMP 與 JMP SHORT  ---------------  110
第四章  程式設計  -----------------------------  111
    第一節  主題認識  -------------------------  111
          一、任務  ---------------------------  111
          二、分析  ---------------------------  113
          三、改進  ---------------------------  116
    第二節  系統分析  -------------------------  117
          一、硬體機種  -----------------------  118
          二、原則  ---------------------------  121
          三、工作性質  -----------------------  121
          四、相關問題  -----------------------  123
    第三節  模組觀念  -------------------------  126
          一、模組定義  -----------------------  127
          二、模組種類  -----------------------  128
          三、模組分割的基本原理  -------------  129
          四、模組分割  -----------------------  132
      五、模組特性  -----------------------  134
      六、模組調用  -----------------------  137
    第四節  程式規劃  -------------------------  141
          一、程式性質  -----------------------  142
          二、使用頻率  -----------------------  143
          三、程式流程  -----------------------  144
          四、流程圖  -------------------------  145
          五、細部流程  -----------------------  146
          六、工作進度  -----------------------  146
    第五節  程式寫作  -------------------------  148
          一、暫存器安排  ---------------------  148
          二、程式規格  -----------------------  148
          三、程式及說明  ---------------------  149
    第六節  特殊技巧的運用  -------------------  153
          一、變數法  -------------------------  153
          二、對稱法  -------------------------  154
          三、虛擬法  -------------------------  158
          四、橋式法  -------------------------  161
          五、流水線法  -----------------------  162
          六、對應表法  -----------------------  163
          七、模式法  -------------------------  165
          八、預置法  -------------------------  173
第五章  套裝軟件製作  -------------------------  180
    第一節  測試偵錯  -------------------------  181
    第二節  研究改進  -------------------------  183
    第三節  程式合併  -------------------------  191
          一、過程的合併  ---------------------  192
          二、分支的處理  ---------------------  198
    第四節  定案包裝  -------------------------  204
          一、手冊  ---------------------------  204
          二、版本  ---------------------------  204
          三、包裝  ---------------------------  205
附錄一  SHELL 排序測試  -----------------------  207
          一、比較表  -------------------------  207
          二、組合語言之製作  -----------------  208
          三、C 語言之製作過程  ---------------  218
附錄二  程式語言效率分析  ---------------------  221
          一、ASSEMBLY  -----------------------  221
          二、C  ------------------------------  228
          三、BASIC  --------------------------  232
          四、PASCAL  -------------------------  234
          五、FORTRAN   -----------------------  235
附錄三  鍵盤輸入碼表  -------------------------  237
附錄四  論中文資訊處理



    序

    本書專供已具備寫作組合程式語言( Assembly Language)能力及經驗,且有志將組合語言視為常用工具之程式師,做進一步觀念、技術上研討用。
    微電腦由誕生迄今,不過短短廿載,一切觀念及技術,尚處於開發階段。可是利用一種不變的硬體機構,再加上可隨實際需要而任意設計的程式,在相互配合下,完成某些指定的工作,卻是最具效率的方法。
    且不論電腦硬體未來的發展如何,程式這種可塑性極高的軟體,必然會成為人類文明的重要一頁。甚至於隨著時代的需要,大量人力、心智的投入,它又何嘗不可能成為一種藝術?一種代表著人類智慧、涉及各種領域、且具備商業價值的綜合性藝術?
    藝術具有開放性、觀摩性、完美性的特徵,它可以充實人生、昇華人性、活化心靈,是人類特具的一種創造行為。在每一個時代,隨著環境及事物的變遷,都會有不同形式的藝術出現。人們運用心靈可以觸及的各種素材,發揮到意識所及的最高境界,這就是藝術。
    我認為在這個資訊時代,電腦程式的設計及應用,正是一種劃時代的藝術。目前還只是電腦藝術的拓荒期,由無到有,再由簡而繁,以臻於至善,在這過程中,尚有待我們投入大量的勞力、心血以及無上的智慧。
    本書對初學程式語言者並無助益,讀者起碼應具備對電腦軟硬體的認識,並略通組合語言的指令。更理想的是已經有一些應用上的經驗,才能領會其中道理。
    組合語言係供機器控制用,因中央處理器(Centrol Proc-essing Unit,CPU) 或微處理器(Micro Processor)之不同而有所不同。本書僅針對8088 CPU指令,作技術性探討。
    本書原係本人在兩儀文化科技公司教學之講義,後因各界需要,特加以整理發行。但因工作繁重,兼以視茫髮蒼,對有關細節,常有力不從心之嘆。書中謬誤之處甚多,尚請方家不吝指正是幸。
    正當本書要出版之際,我發現市面上有本“ZEN of Assembly Language” (Michael Abrash, Scott, Foresman and Company)的好書,這本書中的觀念和我極為接近,只是在技術上更進一層,分析得非常透徹,值得向大家推薦。
    巧的是,在該書中也舉了點陣放大的例子,且方法與我們用的很類似。讀者有興趣,正好詳細比較一下,他山之石,可以攻錯,能見到這樣的好書,証明吾道不孤,頗令人安慰。
    我堅信當電腦成熟時,軟體的製作將全靠模組,而模組必須建立在組合語言上。因此,到了最後,只需要少數人製作專用模組,並公開銷售。至於應用軟體,將會簡單到人人都能設計,所以有志從事電腦工作者,應該由組合語言著手。
    本書由沈紅蓮小姐修辭、校正,劉莉小姐利用“聚珍整合系統”,以600 點雷射印表機製版,特此致謝。




                                       朱邦復  1990年7月

上一頁 目錄 下一頁