組合語言程式寫作有時空效率客觀標準,但複雜程式價值評估遠超單純指標。本章以「表格符號繪製」為例,完整走過任務認知、系統分析、模組觀念三大階段。
設計應用符號(表格框線),與文字混排。將符號分解為字符並編碼。編碼限制:倉頡碼 1~5 碼、24 字母、不可與既有漢字碼衝突。
四種粗細格子,需相互配合。104 種形狀歸納為四類:橫向延伸、縱向延伸、單側橫向、單側縱向。發現規律:
二進制結構浮現:四位置可用 2 bits 編碼,斜向再 2 bits,共 4 bits = 16 組合。但需 24 符號,引入第 5 bit:貫穿形 (8 種) + 半形 (16 種) = 24 種,完美符合精簡法則。
YYXAK 有效,YYXKA 無效YYXAI (雙細橫) = YYXU (單貫穿細橫) → 建表攔截前者將四連續碼視為粗細遞增、位置分六組,可減少 28 位元組程式碼。資料結構優化帶來程式碼級優化。
空間效益:若字形存硬碟,讀寫壽命 < 半年且極慢;用擴充記憶體成本高。本系統 260KB 容納 6 萬字形 + 600 萬組合,秒產 500-1000 字,釋放 20MB 硬碟給用戶。
中文系統屬「附屬程式」:駐留系統、修改中斷向量。五大介面:初始化圖形態、檢查空間、安排參數、修改中斷入口、申請駐留返回。
血淚教訓:曾誤改 INT 9H (鍵盤硬體中斷),導致新鍵盤擴充鍵 (字符碼 0E0h 高位非 0) 被誤判為中文碼,系統大亂。正確應改 INT 16H (BIOS 鍵盤服務),BIOS 已將高位移入緩衝區,兼容性佳。
莊子《養生主》寓言:庖丁解牛十九年刀刃如新,因順應天理,刀入節間隙。軟體模組化同理:
集裝箱、預鑄房屋、流水線生產皆為模組化實踐。軟體缺乏工業標準,需先行者建立先例、眾智完善。
從任務分析發現二進制編碼規律,到系統分析確立 260KB 字形引擎架構,再到模組化思想將庖丁解牛哲理內化為工程原則——組合語言程式設計不僅是指令操作,更是系統思維與藝術追求的結晶。慎始於規劃,精進於模組,極致於效率。