第四節 統一格式
一、格式統一之優點
不論采用何種程式語言,凡是共同工作、須相互研討,或者在同一部門中,分擔成敗責任者,應該有統一的程式寫作方式。這樣不僅便於溝通,提高程式的品質,且可避免因某一程式師之離職或出缺所造成的後遺症。
良好的程式,應如一篇美妙的文學作品,其中有技巧,有意境。其功能不僅表現在執行的效率上,也可以作為同行間學習、欣賞的媒介,這些都必須透過統一的格式達成。
尤其是把組合程式寫作當作一種藝術創作,就必須經常相互觀摩,如果沒有共通的格式規定,則這樣的程式和「天書」可以說沒有多大的分別。不論注釋寫得再好,一般程式師自己都怕看自己的程式,更何況參閱他人的? 但若有統一的格式,養成習慣後,不僅易看易懂,而且尋找、修改方便,寫作也輕松省事。
二、規格
1,統一用大寫字母,以利於閱讀。
2,空格處應采用 TAB,齊頭等距,一目瞭然。
3,標題之後立即改行輸入,以便閱讀。
4,每行不得超過70個字母,以免長度不等,畫面紊亂。
5,注記位於指令後,在第五個 TAB的起點,空間不足時,可換行,但位置齊一。
6,所有緩沖器統一定義在程式之前,不可夾雜在程式中間。
7,除了需要作超過程式段的FAR CALL使用‘PROC FAR’外,切勿使用‘PROC NEAR ’形式,因這種寫法毫無意義。
8,程式開始時,應有注記說明使用要點。
以下舉例說明統一格式:
1: PAGE 60,132
2: TITLE [程式名],[程式師代號],[編號],[功能說明]
3:
4: DG SEGMENT PUBLIC
5: extrn bwsca1:word,..
6: DG ENDS
7:
8: ..
9: ..
10: ..
11:
12: CG SEGMENT PUBLIC
13: extrn mmmm:near,..
14: ..
15: public xxxx,yyyy,..
16: ASSUME CS:CG,DS:DG,ES:DG
17: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
18: ; REM ………… ;
19: ; …………………. ;
20: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
21: START:
22: CLD
23: MOV AX,DG
24: MOV DS,AX
25: ..
26: ..
27: ..
28:
29:CG ENDS
30: END START
第一條的 PAGE 是供列印用的「保留指令」,表示每頁所印的行數及列數。其後之 60,132 即為60行, 132個字符。
第二條的 TITLE 為供查閱之「保留指令」。
前述REM 注記欄中,應說明該段程式的功能、應用條件,以便其他程式師共同使用。
三、注記
注記的目的在於日後自己或他人能很容易地做程式修改、維護。因此所做描述當力求詳盡。不幸的是,不論多麼精彩的文句,總有不足之處。因此,注記時需把握重點,大體說來,程式需加以說明的,不外:
1,功能:做什麼工作,需要何種先決條件。
2,參數:設些什麼數據,以供本段程式處理。
3,緩沖器:用什麼緩沖器,其工作特性如何。
4,結果:執行後所產生的結果。
5,子程式調用:在本段程式中,所需調用的子程式名。
6,重要聲明:如暫存器是否被破壞,或其他注意的事項。
如:
【功能】:讀鍵盤緩沖區輸入碼,依性質返回ASCII+掃
瞄碼或中文內碼
【參數】: AH = 00H
【返回】: 11AL< 80H,AH = 掃瞄碼,AL = ASCII
12AL≧80H,AL = 四字元中文內碼之一
【破壞暫存器】:AX
【備注】:以本功能取中文內碼,須連取4次,依序得
到一中文4字元內碼。
當然,如果時間充足,最好能有程式的全部說明,以及制作、修改的細部記錄。
問題在於任何程式發展之初,一定乏善可陳。再加上不斷的修改、增補,其間變化復雜無比。程式師又要全神貫注,解決問題,又要考慮如何注記,一心兩用,必然談不到效率。
那麼怎樣做才對呢?我建議先讓程式師自由發揮,在初期有無注記無關緊要。待程式完成了,大致上沒有錯誤,這時,就應該停下來,從頭到尾,將程式徹底整理一番。
這樣不僅加注記容易,而且程式師有機會重新「欣賞」自己的心血結晶,該改的改,該合並的合並,該刪的刪。最後,程式師經過反思,研究,技術將會大幅度進步,程式更精簡,注記也正確無誤,工作也達到最高效率。