匯編語言程序上機過程_第1頁
匯編語言程序上機過程_第2頁
匯編語言程序上機過程_第3頁
匯編語言程序上機過程_第4頁
匯編語言程序上機過程_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、80868086匯編語言程序上機過程匯編語言程序上機過程匯編語言程序的上機過程匯編語言程序的上機過程v要運行調試匯編語言程序,需要以下程序文件:要運行調試匯編語言程序,需要以下程序文件: 編輯程序編輯程序 EDIT.COMEDIT.COM或其他文本編輯工具軟件,用于編輯源程序?;蚱渌谋揪庉嫻ぞ哕浖?,用于編輯源程序。 匯編程序匯編程序 MASM.EXEMASM.EXE,用于匯編源程序,得到目標程序。,用于匯編源程序,得到目標程序。 連接程序連接程序 LINK.EXELINK.EXE,用于連接目標程序,得到可執(zhí)行程序。,用于連接目標程序,得到可執(zhí)行程序。 調試程序調試程序 DEBUG.EXEDE

2、BUG.EXE,用于調試可執(zhí)行程序。,用于調試可執(zhí)行程序。80868086匯編語言程序上機過程匯編語言程序上機過程上機過程上機過程v匯編語言程序上機操作包括以下幾個階段:匯編語言程序上機操作包括以下幾個階段: 編輯、匯編、連接和調試。編輯、匯編、連接和調試。1.1.編輯源程序編輯源程序v用文本編輯軟件創(chuàng)建、編輯匯編源程序。常用用文本編輯軟件創(chuàng)建、編輯匯編源程序。常用編輯工具有:編輯工具有:EDIT.COMEDIT.COM、記事本、記事本、WordWord等。等。v無論采用何種編輯工具,生成的文件必須是純無論采用何種編輯工具,生成的文件必須是純文本文件,所有字符為半角,且文件文本文件,所有字符為

3、半角,且文件擴展名為擴展名為.asm.asm(文件名不分大小寫,由文件名不分大小寫,由1 18 8個字符組成個字符組成)。)。80868086匯編語言程序上機過程匯編語言程序上機過程上機過程(續(xù))上機過程(續(xù))v2.2.匯編匯編 用匯編軟件用匯編軟件MASMMASM對上述源程序文件(對上述源程序文件(.asm.asm)進行)進行匯編,產生目標文件(匯編,產生目標文件(.obj.obj)等。)等。 匯編軟件匯編軟件MASMMASM的主要功能是:的主要功能是:檢查源程序的語法,給出錯誤信息;檢查源程序的語法,給出錯誤信息;建立目標程序文件;建立目標程序文件;展開宏指令。展開宏指令。 如果匯編過程中

4、發(fā)現(xiàn)有語法錯誤,則如果匯編過程中發(fā)現(xiàn)有語法錯誤,則屏幕上會顯屏幕上會顯示出錯語言的位置和出錯的類型示出錯語言的位置和出錯的類型。此時,需要進。此時,需要進行修改,然后再進行匯編。如此進行,直至匯編行修改,然后再進行匯編。如此進行,直至匯編無錯誤,得到目標文件為止。無錯誤,得到目標文件為止。80868086匯編語言程序上機過程匯編語言程序上機過程上機過程(續(xù))上機過程(續(xù))v對源程序對源程序MYFILE.ASMMYFILE.ASM進行匯編的方法:進行匯編的方法: 在在DOSDOS狀態(tài)下,輸入命令狀態(tài)下,輸入命令即啟動了匯編程序。即啟動了匯編程序。 MASM MYFILE.ASMMASM MYFI

5、LE.ASM(回車)(回車)v此命令執(zhí)行后,會出現(xiàn)下面的此命令執(zhí)行后,會出現(xiàn)下面的3 3行信息,依次行信息,依次按回車鍵(即選擇默認值)即按回車鍵(即選擇默認值)即可建立目標文件可建立目標文件MYFILE.OBJMYFILE.OBJ。ObjectObjectFilename MYFILE.OBJ:Filename MYFILE.OBJ:SourceSourceListing Nul.LST:Listing Nul.LST:CrossCrossReference Nul.CRF:Reference Nul.CRF:80868086匯編語言程序上機過程匯編語言程序上機過程上機過程(續(xù))上機過程(續(xù)

6、)3.3.連接連接v匯編產生的目標文件(匯編產生的目標文件(.OBJ.OBJ)并不是可執(zhí)行)并不是可執(zhí)行的程序,還要用連接程序把它轉換為可執(zhí)行的的程序,還要用連接程序把它轉換為可執(zhí)行的EXEEXE文件。文件。v連接方法如下:連接方法如下: 在在DOSDOS狀態(tài)下,輸入命令即可完成連接:狀態(tài)下,輸入命令即可完成連接: LINK MYFILE.OBJLINK MYFILE.OBJ(回車)(回車)v如果連接過程中出錯,那么程序會在屏幕上顯示提如果連接過程中出錯,那么程序會在屏幕上顯示提示信息。此時,需要對源程序進行查錯、修改,然示信息。此時,需要對源程序進行查錯、修改,然后后再進行匯編、連接再進行匯

7、編、連接,直至連接無錯誤,得到可執(zhí),直至連接無錯誤,得到可執(zhí)行文件(行文件(.EXE.EXE)為止。)為止。80868086匯編語言程序上機過程匯編語言程序上機過程上機過程(續(xù))上機過程(續(xù))4.4.程序運行程序運行 在在DOSDOS提示符下輸入可執(zhí)行程序的文件名即可提示符下輸入可執(zhí)行程序的文件名即可運行程序。運行程序。 若程序能夠運行但不能得到預期結果,則就需若程序能夠運行但不能得到預期結果,則就需要檢查源程序,要檢查源程序,改錯后再匯編、連接、運行改錯后再匯編、連接、運行。5.5.程序調試程序調試 在程序運行階段,有時不容易發(fā)現(xiàn)問題,這時在程序運行階段,有時不容易發(fā)現(xiàn)問題,這時就需要使用調

8、試工具進行動態(tài)查錯。就需要使用調試工具進行動態(tài)查錯。 常用的動態(tài)調試工具為常用的動態(tài)調試工具為DEBUGDEBUG。80868086匯編語言程序上機過程匯編語言程序上機過程利用利用DEBUGDEBUG進行程序的運行調試進行程序的運行調試vDEBUGDEBUG是為匯編語言設計的一種調試工具。是為匯編語言設計的一種調試工具。 它通過單步、設置斷點等方式為匯編語它通過單步、設置斷點等方式為匯編語言程序員提供了非常有效的調試手段。言程序員提供了非常有效的調試手段。 它可以直接調試它可以直接調試COMCOM文件和文件和EXEEXE文件。文件。vDEBUGDEBUG狀態(tài)下的所有數(shù)據(jù)都采用十六進制形狀態(tài)下的

9、所有數(shù)據(jù)都采用十六進制形式顯示,無后綴式顯示,無后綴H H。80868086匯編語言程序上機過程匯編語言程序上機過程運行調試(續(xù))運行調試(續(xù))1.DEBUG1.DEBUG的運行的運行v在在DOSDOS狀態(tài)下,輸入下列命令之一,就可以進狀態(tài)下,輸入下列命令之一,就可以進入入DEBUGDEBUG調試狀態(tài)。調試狀態(tài)。命令一:命令一:DEBUG DEBUG ( (回車回車) )格式二:格式二:DEBUG DEBUG 可執(zhí)行文件名可執(zhí)行文件名 ( (回車回車) )v進入進入DEBUGDEBUG調試狀態(tài)后,將顯示調試狀態(tài)后,將顯示提示符提示符“”,此時,可輸入所需的,此時,可輸入所需的DEBUGDEBU

10、G命令。命令。80868086匯編語言程序上機過程匯編語言程序上機過程運行調試運行調試-DEBUG-DEBUG的主要命令的主要命令v(1 1)顯示內存單元內容的命令)顯示內存單元內容的命令D Dv格式為:格式為:- -D D 地址地址 或或 - -D D 范圍范圍 v說明:上面格式中的說明:上面格式中的“- -”符號是符號是DEBUGDEBUG的提示的提示符,下同。符,下同。v例如,顯示指定范圍(例如,顯示指定范圍(DS:100DS:100DS:1FFDS:1FF)內存)內存單元內容的命令是:單元內容的命令是:- -D 100 10FD 100 10F 這里沒有指定段地址,這里沒有指定段地址,

11、D D命令自動顯示命令自動顯示DSDS段的段的內容。內容。80868086匯編語言程序上機過程匯編語言程序上機過程運行調試運行調試-DEBUG-DEBUG的主要命令的主要命令v(2 2)修改內存單元內容的命令)修改內存單元內容的命令E E v格式一:用給定內容代替指定范圍的單元格式一:用給定內容代替指定范圍的單元內容內容-E -E 地址地址 內容表內容表 例如,例如,-E DS:100 F3-E DS:100 F3 5858 5959 5A5A 8D8Dv格式二:逐個單元相繼地修改格式二:逐個單元相繼地修改-E -E 地址地址 例如:例如: -E DS:100-E DS:100 18E4:01

12、00 8918E4:0100 89. .7878 此命令是將此命令是將0100單元內容單元內容89改為改為78。78是程序員是程序員從鍵盤輸入從鍵盤輸入的。的。程序員在修改完一個單元后,可程序員在修改完一個單元后,可按空格鍵繼續(xù)修改下一單元內容,按空格鍵繼續(xù)修改下一單元內容,直至按回車鍵結束該命令。直至按回車鍵結束該命令。80868086匯編語言程序上機過程匯編語言程序上機過程運行調試運行調試-DEBUG-DEBUG的主要命令的主要命令v(3 3)檢查和修改寄存器內容的命令)檢查和修改寄存器內容的命令R R v格式一:顯示格式一:顯示CPUCPU內部所有寄存器內容和標內部所有寄存器內容和標志寄

13、存器中的各標志位狀態(tài)志寄存器中的各標志位狀態(tài)-R-Rv格式二:顯示和修改某個指定寄存器內容格式二:顯示和修改某個指定寄存器內容-R-R寄存器名寄存器名 例如:例如:-R AX-R AXv格式三:顯示和修改標志寄存器內容格式三:顯示和修改標志寄存器內容-RF-RF80868086匯編語言程序上機過程匯編語言程序上機過程運行調試運行調試-DEBUG-DEBUG的主要命令的主要命令(4 4)運行命令)運行命令G Gv格式為:格式為:-G =-G =地址地址11地址地址22地址地址3 3v其中,地址其中,地址1 1指定了運行的起始地址,后面指定了運行的起始地址,后面的均為斷點地址。當指令執(zhí)行到斷點時,

14、的均為斷點地址。當指令執(zhí)行到斷點時,就停止執(zhí)行并顯示當前所有寄存器及標志就停止執(zhí)行并顯示當前所有寄存器及標志位的內容和下一條要執(zhí)行的指令。位的內容和下一條要執(zhí)行的指令。80868086匯編語言程序上機過程匯編語言程序上機過程運行調試運行調試-DEBUG-DEBUG的主要命令的主要命令v(5 5)跟蹤命令)跟蹤命令T Tv格式一:逐條指令跟蹤格式一:逐條指令跟蹤-T=-T=地址地址 v該命令從指定地址起執(zhí)行一條指令后停下該命令從指定地址起執(zhí)行一條指令后停下來,顯示所有寄存器及標志位的內容。若未來,顯示所有寄存器及標志位的內容。若未指定地址,則從當前的指定地址,則從當前的CS:IPCS:IP開始執(zhí)

15、行。開始執(zhí)行。v格式二:多條指令跟蹤格式二:多條指令跟蹤-T=-T=地址地址值值 v該命令從指定地址起執(zhí)行該命令從指定地址起執(zhí)行n n條指令后停下來條指令后停下來,n n由由 值值 確定。確定。80868086匯編語言程序上機過程匯編語言程序上機過程運行調試運行調試-DEBUG-DEBUG的主要命令的主要命令v(6 6)匯編命令)匯編命令A Av格式為:格式為:-A -A 地址地址 v該命令允許輸入?yún)R編語言語句,并能把它該命令允許輸入?yún)R編語言語句,并能把它們匯編成機器代碼,相繼地存放在從指定們匯編成機器代碼,相繼地存放在從指定地址開始的存儲區(qū)中。地址開始的存儲區(qū)中。v必須注意:輸入的數(shù)字均默認

16、為十六進制必須注意:輸入的數(shù)字均默認為十六進制數(shù)。數(shù)。80868086匯編語言程序上機過程匯編語言程序上機過程運行調試運行調試-DEBUG-DEBUG的主要命令的主要命令v(7 7)反匯編命令)反匯編命令U Uv格式一:從指定地址開始,反匯編格式一:從指定地址開始,反匯編3232字節(jié)字節(jié)-U -U 地址地址 v格式二:對指定范圍內的存儲單元進行反格式二:對指定范圍內的存儲單元進行反匯編匯編-U -U 范圍范圍 80868086匯編語言程序上機過程匯編語言程序上機過程運行調試運行調試-DEBUG-DEBUG的主要命令的主要命令v(8 8)執(zhí)行命令)執(zhí)行命令P Pv格式為:格式為:-P =-P =

17、地址地址 指令數(shù)指令數(shù) 該命令控制該命令控制CPUCPU執(zhí)行指定地址處的指令。執(zhí)行指定地址處的指令。 若指定了指令數(shù),則若指定了指令數(shù),則CPUCPU執(zhí)行從指定地址開始的若執(zhí)行從指定地址開始的若干條指令。干條指令。 若未指定地址和指令數(shù),則若未指定地址和指令數(shù),則CPUCPU執(zhí)行由(執(zhí)行由(CS:IPCS:IP)指定地址處的一條指令。指定地址處的一條指令。vP P命令與命令與T T命令的差別命令的差別在于:在于: P P命令把子程序調用(命令把子程序調用(CALLCALL)、重復字符串)、重復字符串指令(指令(REPREP)或軟件中斷()或軟件中斷(INTINT)當成一條指)當成一條指令來執(zhí)行

18、,簡化了跟蹤過程。令來執(zhí)行,簡化了跟蹤過程。80868086匯編語言程序上機過程匯編語言程序上機過程運行調試運行調試-DEBUG-DEBUG的主要命令的主要命令v(9 9)退出)退出DEBUGDEBUG命令命令Q Qv格式為:格式為:-Q-Qv該命令退出該命令退出DEBUGDEBUG程序,返回程序,返回DOSDOS。80868086匯編語言程序上機過程匯編語言程序上機過程運行調試運行調試-DEBUG-DEBUG使用說明使用說明v 在在DEBUGDEBUG中的提示符中的提示符“- -”下才能輸入命下才能輸入命令,在按回車鍵后,該命令才開始執(zhí)行。令,在按回車鍵后,該命令才開始執(zhí)行。v 命令是單個字母,命令和參數(shù)的大小寫命令是單個字母,命令和參數(shù)的大小寫可混合輸入??苫旌陷斎?。v 命令和參數(shù)、參數(shù)和參數(shù)之間要用空格命令和參數(shù)、參數(shù)和參數(shù)之間要用空格、逗號或制表符等分隔。、逗號或制表符等分隔。v 可以用可以用“段值:偏移量段值:偏移量”的形式來表示的形式來表示地址,也可以用段寄存器來代表地址,也可以用段寄存器來代表“段值段值”。例如,例如,1000:01000:0,DS:10DS:10,CS:30CS:30等。等。80868086匯編語言程序上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論