组合语言之艺术
第二节 应用工具的制作

一、联接目标档(OBJ Files)

    程序完成以后,相互间的联结,越大越难,有时是结构的改变,有时是文件名的变
动。不论什么因素,在在都需要加以维护,而且对工作效率关系重大。

    因此,需先建立一个 DO.BAT 的执行档,其内容为:
    1:LINK/M @XXXX
    此 XXXX 为一记录档,其中记载所有需联结的目标文件名,如果有任何异动,直接
更改此档即可。
    在联结时,执行 DO 即可。

    例如:要制作 DRAW.EXE 档,已有 DR1.OBJ .. DRn.OBJ 以及DR-SEG.OBJ 等档,则
此 XXXX 档内容应为:
    1: DR-SEG+
    2: DR1+DR2+.. DRn
    3: DRAW,DRAW,,
    在执行 DO 后,如果没有错误,所产生的 DRAW.EXE 以及DRAW.SYM 即可供测试。

    也可在第三条后加入:
    4: SYMDEB (或仅用 S)DRAW.EXE DRAW.SYM
    似此,在发展初期,立即可以测试。如果不需再次联结,将第四条另外作一 .BAT
档,随时执行亦可。

    另外有一点需要注意的是,为了要让可执行的程序由指定的起点开始,应在原始档
 .ASM 的结束格式标记'END '后,加一起点的标题名称。
    此标记不论有多少,联接目标档时,会以第一个找到的标题为唯一的入口。如果程
序很多,参与工作的程序员也多,在分开测试时,经常使用自己的入口,一旦联接在一
起,就可能发生错误。
    解决的方法是由负责联接的程序员,事先准备好前述XXXX记录档,将带有入口标记
的程序放在最前面即可。当然,将其它程序标记后的标题删除亦可,但不如前法效率高。

二、目标档侦错及工具

    在使用 DEBUG时,因为名称简短,用法也简单。若使用「标题侦错」SYMDEB.EXE则
不然,因为首先要生成.MAP档,测试时,输入文字也较多。对不断使用的人来说,难免
嫌烦。简化的方法,是先制作执行档:S.BAT 及 SM.BAT

    S.BAT 是专供指定程序侦错用,内容为:
    1:SYMDEB %1.SYM %1.EXE
    这是指已经有了原档的 .MAP 时,如果程序刚联接完毕,且在联接档中,没有生成
 .MAP 的语句,则应制作 SM.BAT 如下:
    1:MAPSYM %1.MAP
    使用「标题侦错」工具有很多优点,其功能较 DEBUG强得多。但是使用者必须注意,
需要测试的标题,应该在程序中宣告PUBLIC,否则无法直接跳到该处。
    尚有些特殊效果的程序,也应备妥测试的工具,甚至以利用「监视器」的方式,用
另外一台计算机来控制。有一些通讯软件,如 XTALK加上SYMDEB.EXE,通过串行埠(Se
rial Port )可以联机调试,其手续如次:

  1,先在待调程序的主机上输入通讯指令:
    C:\>MODE COM1:9600,N,8,1
    C:\>SYMDEB MYFILE.EXE

  2,再于已与主机经串行埠联接的副机上输入:
    C:\>XTALK
    进入指令输入状态,再输入:
    C:\>SP
    表示设定传输速度,一般多采用9600,但视主机而定。
    C:\>9600
    最后,输入操作指令:
    C:\>GO LO
    表示用区域网络,即串行端口。
    这时等待联机成功的讯号,见到屏幕上出现"-",即可  开始侦错。

  3,在主机方面,尚要输入:
    C:\>=COM1 ( 或COM2,端视双方的通讯口而定 )

  4,至于侦错方式,与利用一台计算机时相同,只是此时在主机上出现的是执行后的结
果,而由副机控制侦错步骤。

上一页    下一页