天天看點

彙編語言程式設計的實驗環境及上機步驟

彙編語言源程式編制完成後,在計算機上的操作過程分為四個階段:編輯、彙編、連接配接、運作調試(如圖1)。

彙編語言程式設計的實驗環境及上機步驟

一、實驗環境

彙編語言程式設計的實驗環境如下:

  1. 硬體環境

    微型計算機(Intel x86系列CPU)一台。

  2. 軟體環境

    Windows98/2000/XP作業系統

    任意一種文本編輯器(EDIT、NOTEPAD(記事本)、UltraEDIT等)。

    彙程式設計式(MASM.EXE或TASM.EXE)。

    調試程式(DEBUG.EXE或TD.EXE)。

    文本編輯器建議使用EDIT或NOTEPAD,彙程式設計式建議使用MASM.EXE,連接配接程式建議使用LINK.EXE,調試程式建議使用TD.EXE。

二、上機實驗步驟

1.确定源程式的存放目錄

建議源程式存放的目錄名為ASM(或MASM),并放在C槽或D盤的根目錄下。如果沒有建立過此目錄,請用如下方法建立:

通過Windows的資料總管找到C槽的根目錄,在C槽的根目錄視窗中點選右鍵,在彈出的菜單中選擇“建立”→“檔案夾”,并把建立的檔案夾命名為ASM。

請把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷貝到此目錄中(點此下載下傳檔案壓縮包)。

2.編輯ASM源程式

編輯階段的主要任務是:

1)輸入源程式;

2)對源程式進行修改。

大多數的文字編輯軟體都可以用來輸入和修改彙編語言源程式,如記事本(Notepad)、寫字闆(Writer)、Word以及指令行方式下的Edit。使用寫字闆、Word軟體時要注意,一定要用“純文字”格式來儲存源程式檔案,否則無法彙編。産生的源程式檔案應該以“.ASM”或“.TXT”為擴充名。使用“.ASM”擴充名可以簡化後面的操作。

如圖1所示中,進行了兩次編輯過程,分别産生了彙編語言源程式檔案MYPRG1.ASM和MYPRG2.ASM。

建立ASM源程式可以使用EDIT或NOTEPAD(記事本)文本編輯器。下面的例子說明了用EDIT文本編輯器來建立ASM源程式的步驟(假定要建立的源程式名為HELLO.ASM),用NOTEPAD(記事本)建立ASM源程式的步驟與此類似。

在Windows中點選桌面左下角的“開始”按鈕→選擇“運作”→在彈出的視窗中輸入“EDIT.COM C:\ASM\HELLO.ASM”,螢幕上出現EDIT的編輯視窗,如圖2所示。

彙編語言程式設計的實驗環境及上機步驟

視窗标題行顯示了EDIT程式的完整路徑名。緊接着标題行下面的是菜單行,視窗最下面一行是提示行。菜單可以用Alt鍵激活,然後用方向鍵選擇菜單項,也可以直接用Alt-F打開File檔案菜單,用Alt-E打開Edit編輯菜單,等等。

如果鍵入EDIT指令時已帶上了源程式檔案名(C:\ASM\HELLO.ASM),在編輯視窗上部就會顯示該檔案名。如果在鍵入EDIT指令時未給出源程式檔案名,則編輯視窗上會顯示“UNTITLED1”,表示檔案還沒有名字,在這種情況下儲存源程式檔案時,EDIT會提示輸入要儲存的源程式的檔案名。

編輯視窗用于輸入源程式。EDIT是一個全螢幕編輯程式,故可以使用方向鍵把光标定位到編輯視窗中的任何一個位置上。EDIT中的編輯鍵和功能鍵符合Windows的标準,這裡不再贅述。

源程式輸入完畢後,用Alt-F打開File菜單,用其中的Save功能将檔案存盤。如果在鍵入EDIT指令時未給出源程式檔案名,則這時會彈出一個“Save as”視窗,在這個視窗中輸入你想要儲存的源程式的路徑和檔案名(本例中為C:\ASM\HELLO.ASM)。

注意,彙編語言源程式檔案的擴充名最好起名為.ASM,這樣能給後面的彙編和連接配接操作帶來很大的友善。

3.用MASM.EXE彙編源程式産生OBJ目标檔案

源檔案HELLO.ASM建立後,要使用彙程式設計式對源程式檔案彙編,彙編後産生二進制的目标檔案(.OBJ檔案)。具體操作如下:

方法一:在Windows中操作

用資料總管打開源程式目錄C:\ASM,把HELLO.ASM拖到MASM.EXE程式圖示上。

方法二:在DOS指令提示符視窗中操作

選擇“開始”→“程式”→“附件”→“指令提示符”,打開DOS指令提示符視窗,然後用CD指令轉到源程式目錄下,接着輸入MASM指令:

I:>C:<回車>
 C:>CD \ASM<回車>
 C:\ASM>MASM HELLO.ASM<回車>
           

操作時的螢幕顯示如圖3所示。

彙編語言程式設計的實驗環境及上機步驟

不管用以上二個方法中的哪個方法,進入MASM 程式後,都會提示讓你輸入目标檔案名(Object filename),并在方括号中顯示預設的目标檔案名,建議輸入目标檔案的完整路徑名,如:C:\ASM\HELLO.OBJ〈回車〉。後面的兩個提示為可選項,直接按回車。注意,若打開MASM程式時未給出源程式名,則MASM程式會首先提示讓你輸入源程式檔案名(Source filename),此時輸入源程式檔案名HELLO.ASM并回車,然後進行的操作與上面完全相同。

彙編語言程式設計的實驗環境及上機步驟

如果沒有錯誤,MASM就會在目前目錄下建立一個HELLO.OBJ檔案(名字與源檔案名相同,隻是擴充名不同)。如果源檔案有錯誤,MASM會指出錯誤的行号和錯誤的原因。圖4是在彙編過程中檢查出兩個錯誤的例子。在這個例子中,可以看到源程式的錯誤類型有兩類:

警告錯誤(Warning Errors)。警告錯誤不影響程式的運作,但可能會得出錯誤的結果。此例中無警告錯誤。

                嚴重錯誤(Severe Errors)。對于嚴重錯誤,MASM将無法生成OBJ檔案。此例中有兩個嚴重錯誤。
           

在錯誤資訊中,園括号裡的數字為有錯誤的行号(在此例中,兩個錯誤分别出現在第6行和第9行),後面給出了錯誤類型及具體錯誤原因。如果出現了嚴重錯誤,你必須重新進入EDIT編輯器,根據錯誤的行号和錯誤原因來改正源程式中的錯誤,直到彙編沒有錯為止。

注意,彙程式設計式隻能指出程式的文法錯誤,而無法指出程式邏輯的錯誤。

4.用LINK.EXE産生EXE可執行檔案

在上一步驟中,彙程式設計式産生的是二進制目标檔案(OBJ檔案),并不是可執行檔案,要想使我們編制的程式能夠運作,還必須用連接配接程式(LINK.EXE)把OBJ檔案轉換為可執行的EXE檔案。具體操作如下:

方法一:在Windows中操作

用資料總管打開源程式目錄C:\ASM,把HELLO.OBJ拖到LINK.EXE程式圖示上。

方法二:在DOS指令提示符視窗中操作

選擇“開始”→“程式”→“附件”→“指令提示符”,打開DOS指令提示符視窗,然後用CD指令轉到源程式目錄下,接着輸入LINK指令:

I:>C:<回車>
C:>CD \ASM<回車>
C:\ASM>LINK HELLO.OBJ<回車>
           

操作時的螢幕顯示如圖5所示。

彙編語言程式設計的實驗環境及上機步驟

不管用以上二個方法中的哪個方法,進入LINK 程式後,都會提示讓你輸入可執行檔案名(Run file),并在方括号中顯示預設的可執行檔案名,建議輸入可執行檔案的完整路徑名,如:C:\ASM\HELLO.EXE〈回車〉。後面的兩個提示為可選項,直接按回車。注意,若打開LINK程式時未給出OBJ檔案名,則LINK程式會首先提示讓你輸入OBJ檔案名(Object Modules),此時輸入OBJ檔案名HELLO.OBJ并回車,然後進行的操作與上面完全相同。

如果沒有錯誤,LINK就會建立一個HELLO.EXE檔案。如果OBJ檔案有錯誤,LINK會指出錯誤的原因。對于無堆棧警告(Warning:NO STACK segment)資訊,可以不予理睬,它不影響程式的執行。如連結時有其它錯誤。須檢查修改源程式,重新彙編、連接配接,直到正确。

5.執行程式

建立了HELLO.EXE檔案後,就可以直接在DOS下運作此程式,如下所示:

C:>HELLO〈回車〉

      C:>
           

程式運作結束後,傳回DOS。如果運作結果正确,那麼程式運作結束時結果會直接顯示在螢幕上。如果程式不顯示結果,我們如何知道程式是否正确呢?例如,這裡的HELLO.EXE程式并未顯示出結果,是以我們不知道程式執行的結果是否正确。這時,我們就要使用TD.EXE調試工具來檢視運作結果。此外,大部分程式必須經過調試階段才能糾正程式執行中的錯誤,調試程式時也要使用TD.EXE。

繼續閱讀