组合语言之艺术
第三节 效率定律

一、效率的定义

    在宇宙中,大至物种的演进、变化,小至个人的工作、运动等,都严格地遵守效率
法则。
    效率的定义是:
    ┌─────────────────────────┐
    │F=E/t,即特定的能量在特定的时、空中所作的「功」。 │
    └─────────────────────────┘
    由上式 F = E/t 可知,特定的「能量」在特定的「时空」中所作的「功」,是一
恒定值,既为恒定值,表示不可能有任何浪费。当能量不变时,时、空的延长往往会导
致「功率」的不足,从另一个角度看,可以说是能量不够,效率低。
    对计算机而言,如果写作程序的「功率」能接近此一「恒定值」,而又具有长远的
使用价值,则我们可以假定,这种程序的效率最高。
    由人类文明的演进,可以看出,因为技术日渐专业化,工作的难度不仅没有减低,
反而更加复杂。这种借着职业专家的投入,以节省一般应用者宝贵时间的方法,事实上
可以说就是效率的追求。
    因为人的生命仅存在于有限的时间,所以其价值极高。每一个电脑程序,其最终目
的都是为了服务大多数的使用者,制作程序者仅仅是少数人,其制作时间的长短,永远
无法与大多数的使用者,在操作中所耗费的时间相提并论。
    此外,以写作程序为职业的人,一生中所需写作的程序,也一定有相当的数量。如
果能重复应用写过的程序,将更缩短其写作时间。无论从哪一个角度,若要追求效率,
汇编语言应是唯一的选择。
    作为计算机的从业者,在职业良知上,理应禀着服务人类、追求效率为最高准则。

二、计算机的效率性

    计算机的发明,是人类追求效率最具代表性的成就。
    目前计算机的机能尚局限在数据处理以及自动控制上,人们利用计算机,所期望得
到的效率不外乎下述六点。
    1,节省工作时间及工作成本。
    2,取代繁琐、重复性高或具有危险性的作业。
    3,追求精密无误的数据、讯息。
    4,贮存或运算大量的数据或数据。
    5,远距离的通讯或遥控作业。
    6,自动化工业生产或一般性服务。
    然而,计算机发展方兴未艾,上述数点难以表达于万一。因此,我们有必要将人类
所期望的效率整理归类,以作为分析判断的依据。

三、四大效率定律

    兹以人类社会中,有关作业过程、生产成本及应用价值等三方面,分别假设定律如
下:

    定律一:
      在作业过程上,能以最少步骤产生最大功率者,效率最高。
    定律二:
      在生产成本上,时、空间及原料最节省者,其效率最高。
    定律三:
      在应用价值上,功能及成果能一再累积者,其效率最高。
    定律四:
      最佳的效率,是最符合实际需求的最大边际效应。

    计算机的应用,纯粹是为了追求工作效率,据此,硬件、软件的设计,都应严格遵
守效率定律。可是事实却不然,由于计算机发展迄今,一直是「卖方市场」,美其名为
「高科技」,内行人高利、高酬,外行人则唯恐后人,亦步亦趋。
    计算机界为了谋取近利,在软件设计的过程上,常采用最缺乏工作效率的高级语言。
但是由于高级语言易于制作,生产成本低,只是苦了「无知无觉」的买者,为了追求效
率往往要花费更多的代价,购买更昂贵的、更新型的硬件,以满足其效率的需要。
    有人说高级语言制作的程序还有一个汇编语言无法比拟的优点,就是很容易「转移」
到其它的机种上。事实上,目前微电脑市场仅存两种机型:一为IBM PC系列及其兼容机,
另一为MACINTACH ,而这两者所有的软件,不论采用哪一种语言,都无法轻易地「转移」!
    一般说来,任何一种新的微电脑上市,其执行速度及记忆容量每增加一倍,其价格
亦成正比上升。是不是有必要非改进硬件,才能达到效率的要求呢?如果我们能澈底了
解程序语言的特性,当会明确地认知怎样才具最大边际效益。
    这也是进化的基本法则之一,当计算机技术成熟之时,真正的效率才会受到重视。
同理,在计算机应用效率达到最高点时,也就是计算机技术成熟的时机。我们如果能掌
握这个原则,自不难看到长远的发展趋势,洞烛机先。

四、汇编语言之效率

    根据定律一,汇编语言之效率是不容置疑的,因为汇编语言相当于计算机运行的
「机器命令」,能直接产生「功率」。
    生产成本有多种意义,在此我们仅讨论其中两点:一是生产过程所需的时间,一是
产品的直接成本。
    汇编语言能以最小的空间,发挥最大的功能。显然,在等效的功能下,其成品所占
空间最小,成本最低。但是对生产过程所需时间而言,汇编语言就处于相当不利的地位。
除非能有一种方法,可以改进汇编语言制作的效率。
    这正是本书的主要目的:介绍一种方法,以提高汇编语言之制作效率。
    我们的目标不仅在提高数倍的制作效率,并且还要证明,用一种特殊的手段,能将
汇编语言设计的「模块」,如同砌砖一般,建造出信息的金字塔来。这样不仅能满足定
律三,而且完全符合定律四的要求。
    最重要的,是这种效率的达成,在于利用人的「智力」。我认为在宇宙进化的过程
中,到目前为止,「人智」就是最高效率的结晶。任何人若要追求效率,应自己先下手,
与其坐待硬件的改进,不如充实程序写作的方法及技巧,至少,这些都操纵在自己的手
里。

五、模块的效率

    模块并不是一个新观念,在人类文明发展史上,人一直致力于了解自己身处的宇宙。
这种了解,实际上就是模块应用的观念,将宇宙大环境,分解成为人所能认知的小环境,
进而将小环境再分解成为个人的经验素材。
    这样一层层地分解下去,便有了「概念、知识」。换句话说,概念及知识,就是一
个个代表人类对客观认知的模块。
    基于模块的特性,人才能灵活地加以应用,因而产生了「人类文明」。同理,当计
算机的软件,也演化为模块方式,进一步大量推广运用时,计算机文明的时代,即将到
来。
    模块的效率是结构性效率的最高表现,在我们处身的宇宙中,无处没有结构,无一
不受到结构的支配。有关模块规划、制作和应用,将在第四章第三节、模块观念中详加
讨论。

上一页    下一页