组 合 语 言 之 艺 术
目 录
序 ------------------------------------------- 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 点雷射印表机制版,特此致谢。