|
組 合 語 言 之 藝 術
目 錄
序 ------------------------------------------- 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月
|