汇编语言的艺术-准备工作(四)
2007-04-25 09:30:15 来源:WEB开发网二、原始档(Source File)档名定义
在共同设计大型模组时,程式师间的默契,全赖事先相互约定。否则程式越大,所面临的困难将越多,经常耗时费事,甚至最后功败垂成。
因此,在设计之初,必须妥善规划,将一应有关的档案、名称、功能等,皆明确地加以定义。参与设计的程式师,更必须严格遵守,方能得心应手。
原始档名的定义,其目的有三:
1,代表程式设计者:当制作的程式甚多时,一见档名,就应能分辨出各个程式的设计人。再如某程式师所编程式在一 个以上,则应在其本人代码之后,加一数字编号。这样,遇有任何问题,立即可以找到来处,进行追踪。
2,代表程式功能:每当联结后发生问题时,应能由档名查知问题所在,故每种功能宜给予适当的名称。
3,代表联结的关系:除了功能外,有时尚须表示各程式之间的联结关系。如某一程式必须安排在另一程式之前或后,亦应在档名最后,以数字表示顺序。
若参与的程式师不超过廿人,则以一字元为限,各人事先选定一个字母,作为档案名称的第一字元。第二字元则视该程式师是否编写一个以上的程式而定,是则取一数字代表之,若无则免。
功能以三到六字元为宜,能统一长度将更为方便,余下一字元留供数序用。
例:程式师代号为‘C’,本程式之编号为3,功能为‘DRAWS’,此外并无联结关系,则其名应为:
cdraws3.asm
三、标题定义
程式在整理或测试时,最大的困扰,是寻找某一个标题的出处或功能。如果在同一档中,尚可利用cref.exe,列印出一份对照表来;如果不知道出自哪一个档案,在众多的程式中,就只有望洋兴叹了。
至于功能,如名称定得太长,不仅输入、修改不便,而且会使得程式看来杂乱无章,令人眼花撩乱。如果定得太简单,或各人任意定名,则难以理解。
所以,标题定名之重要性,不下于程式之写作。尤其是在参与人数众多时,标题不仅要统一,而且要能代表所有必备的讯息。
标题所代表的讯息有:
A x x x x x x x x
│└┬┘└┬┘└── 分支代号
│ │ └──── 延伸定义
│ └─────── 功能名称
└───────── 程式出处
1,程式出处:如果很多人同时参加一个计划,而某程式师仅写了一个程式,此定义即为该程式师之代码。否则尚要附 加编号,以便随时可查到。即使只有一个人写作程式,程式可能不断扩大,为了制作的方便,或为了模组的分割,常有必要将程式分到其他档中。因此,一段程式究竟出自于哪一个档案,全赖标题表明,以便能迅速地找到。
程式出处一般用一个字母即可,如前述第一个字母A代表此段程式来自编号为A的原始档;或属于以A为代号程式师的程式。
2,功能名称:除若干已知会用到的功能可以事先定义外,其余的多半是在发展过程中,针对需要而产生。对功能定义千万不要掉以轻心,一个程式的再利用价值,常与其功能定义息息相关,明确的定义,可以令人对其功能及应用方式一目瞭然。
功能名称长度以三个字母为宜,太长则输入费时,尤其是国人不见得个个英文了得,与其写错,不如藏拙。
如:DSP 表示萤幕显示功能
PRN 表示列印功能
KIN 表示键盘输入功能
3,延伸定义:若功能相同的程式过多,2,中的定义方式难以分辨,则可再加一延伸定义。
如:DSPDOT表示显示点阵
PRNCHI表示列印中文
KINASC表示输入 ASCII 字符
4,分支代号:在程式中常有分支,分支代号最理想是由小而大,依序安排。但由于写作时常难以预知后情,故宜先留空号,以便扩充。
如:DSPDOT10
PRNCHI06
KINASC24
四、缓冲器定义
B x x x x x x x
││└┬┘└┬┘
││ │ └─── 延伸定义
││ └────── 功能名称
│└──────── 类型
└───────── 缓冲器保留字
第一个字母规定用‘B’,为缓冲器保留字。
第二个字母定义其类型:
Q=QWORD 如:BQxxxx 缓冲器长度为8字元。
D=DWORD 如:BDxxxx 长度为4字元。
W=WORD 如:BWxxxx 长度为2字元。
B=BYTE 如:BBxxxx 长度为1字元。
S=STRING 如:BSxxxx 不限长度,但限BYTE型。
O=ORIGINAL 如:BOxxxx 表不可破坏的原始资料。
F=FLAG 如:BFxxxx 用作旗号。
第二字母以后所采用功能或延伸定义,与三、2,3相同。此外,所有缓冲器皆应统一设在缓冲器专用程式中,若系临时使用,或尚未正式联接,亦应设在各程式之首,以便于查阅、修改。
更多精彩
赞助商链接