返回 >> 組合語言之藝術 >> 上一篇      下一篇     本書來源:開放文學網站

     第二節 應用工具的製作

一、聯接目標檔(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,通過串行埠(Serial 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,至於偵錯方式,與利用一台電腦時相同,只是此時在主機上出現的是執行後的結果,而由副機控制偵錯步驟。

 


返回 >> 組合語言之藝術 >> 上一篇      下一篇     本書來源:開放文學網站