AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > 汇编语言

汇编语言---程式设计 (3)

51自学网 http://www.51zixue.net


三、程式流程

    程式有一定的运行规律,称为「流程」,意即在执行时,依照预先安排的顺序,一一流经的过程。
    传统的程式写作法,流程非常重要,因为人需要根据一种理念,以逐步检验并付诸实现。但自从模组受到重视后,每个模组代表一种完整的功能,而功能的集合所能实现的效果,远非流程可以表达。这一来,流程的重要性减低了,其地位降到只属于结构中的一部份而已。
    因为模组是可组合的,模组越多,主流程便越短。虽然每一个模组也都各有其流程,结构良好的模组,又可再细分为若干子模组,以此类推。因此,流程远不如模组灵活,观念上也显得呆板。
    不过,即使在模组设计过程中,有时也有必要藉着流程逐步推理,以瞭解细部的结构。在这种立场,流程的应用原无可厚非。可是一旦反客为主,程式师不用流程即无从思考,就大谬不然了。
    流程属于单线思考,人虽然经常使用这种流程推理,但更重要的能力却来自「抽象思考」。抽象思考是指人在许多错综复杂、相互纠结的现象中,能立即掌握重点,针对目的,解决问题。
    在程式上,这种抽象思考相当于对所有模组的全面认知,而非仅仅是流程的推理。有了全面的认知,灵活地加以调用,程式的功能就更上层楼,大大的提高了。
    如果程式师祇知道根据流程写程式,习惯养成后,不仅程式笨拙不堪,连人的思考方式都连带受到影响。一般所谓的「匠气」、「呆滞」,就是这种机械式训练的结果。
    因此,我不赞成利用流程来规划程式,但在解释或说明某种过程时,并不排除流程的方便性。

四、流程图

    流程的第一步是画流程图,根据流程图再作细部流程,然后根据细部流程去瞭解或编写程式。
    以上面例子,先制作流程图如下: 

            ┌─────┐
         ┌>───┤表格码输入│
         │   └──┬──┘
         │   ┌──┴──┐
         │   │取 一  码│
         │   └──┬──┘
         │┌──────┴──────┐
         ││根 据 各 码 的 条 件 作 图│
         │└──────┬──────┘
         └───────┘

    请注意上图并没有出口,这是模组的特色之一,当码=0时,就进入结束程式。本子模组的工作,便是要安排好资料,再回到来处。
    上面说过,每个码是根据组码定义而来,每次取一码后,立即根据码的预设条件作图。(见第一节一、任务)这样不仅速度快,空间也精简。
    当然各码都有其子流程图,由于太简单,几句话便交待完毕,不必再作图了:首先确定位置、宽度、长度,即可画直线或横线,如此而已。

五、细部流程

    细部流程最重要的,是要确定暂存器的功能,另外需要缓冲器辅助的,也应在此详细说明。至于要详细到什么程度,则须根据程式的复杂性及写作的程式师而定。
    如果写作流程及程式为同一人,且无留供他人参考的必要时,细部流程甚至可以免掉。但若是集体制作,而且需要保留档案,则不仅有必要,更须写得明确,让他人能够一目瞭然,不论任何人都能接手才是。
    由于前面所举的例子太简单,如果要写细部流程,不待写完,程式早写好了。所以,有时也不必过分拘泥形式。在下节指令应用中,仅以附注的方式说明细部流程,与程式相对照,反而更有效率。

六、工作进度

    工作进度最重要的意义,不在于增加制作的速度,而是培养一种敬业的精神以及对工作的判断能力。
    工作进度的掌握靠进度表,而制作进度表需要对全部的工作有相当的认识。所以,进度相当于全面地、有系统地思考工作的细节,对程式师的工作能力的提高有极大的帮助。
    当然,进度能有效地督促工作,每当进度如期完成,对程式师而言,即是一种成就感。在制作大型程式时,时间往往拖得很久,如果没有进度作参考,人往往会有一种迷失在汪洋,不知身在何处的失落感。
    能力强的人,经常能正确判断工作所需的时间;反之,不知道工作需要多久,或者所预定的进度与事实相差太远,都表示着程式师的能力有限或不足。
    不过,写作程式完全要符合进度,也是不正确的观念。前文讨论过,写程式是种艺术,而非流水作业式的生产,创造性强的艺术工作是不可能用进度来加以控制的。
    进度的制作方式没有定则,只要记下工作项目,预计完成时间,实际完成时间即可。只是制作是一回事,执行又是另一回事,唯有认真负责的执行,才会有实用的价值。
    执行的方式不外每天或定期查阅进度,如果发现进度不符合,应该立刻分析原因,并做修正调整。至于所分析的结果,最好能记载下来,以作下次改进的参考。
    如此这般养成了习惯,自然而然,就有了自动分析判断的能力,而且还会增进规划和设计的理念。

 
 

上一篇:汇编语言---程式设计 (4)  下一篇:汇编语言---程式设计 (2)