


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、匯編語言上機調試一、為何需要調試?一般匯編語言都要經過編輯、編譯、連接等步驟生成可執行文件,如果在編譯、連接之后沒有發現錯誤,這只能說明你的程序沒有語法錯誤,在運行的時候,并不一定就得到正確的結果,如果得到的結果與你所期望的不同,怎么辦?這時候就需要對這個可執行的文件進行調試。;下面的源代碼完成的功能:把數據段中的申stringl傳送到附加段的string2中。datasegment定義數據段stringldb'assemblylanguage'dataendsextrasegment定義附加段string2db17dup(?extrasegmentcodesegment定義代
2、碼段mainprocfarassumecs:code,ds:data,es:extrastart:pushdsxorax,ax;ax寄存器活零,作用同subax,ax一樣pushaxmovax,data把數據段地址裝入ds寄存器movds,axmovax,extra把附加段地址裝入es寄存器moves,axleasi,string1把源申首址裝入si寄存器leadi,string2;把目的申首址裝入di寄存器movcx,17;把字符申長度裝入cx寄存器cld;活方向標志,在申處理時,地址自動增加repmovsb垣復申傳送操作,重復次數放在cx中retmainendpcodeendsendsta
3、rt二、如何進行調試?假設上述代碼經編譯、連接后生成的可執行文件是example.exe1、在DOS提示符下鍵入debug命令。d:masm>debugexample.exe這時候就顯示提示符-,就可在這個短線后輸入debug命令2、u反匯編命令【格式】-u起始地址終止地址【說明】這里方括號里的內容是可選的【功能】將機器代碼反匯編成匯編指令【結果】鍵入u后顯示信息如下:11141DIEIS141D09612BCQ&UB網SK111Detmsbm&iiakL41DHOUAX14L?141DG007BE址WJU夠MX141DBS87HOUAKL4ia141&SECdH
4、OUESrAK141Deaerleasi.caaaoi0912LEADI.C0»91L41D腳航6日911派HOU141DFCCLD1416aaiAF5rep五1410A4HOUSSaaicCBRELF最左邊給出的程序的段地址:偏移地址,即CS:IP值,右邊是匯編語言指令,中間是匯編語言指令對應的機器語言指令。注意:調試程序默認的數制是十六進制。3、g設置斷點命令【格式】-g斷點地址【說明】啟動程序,設置斷點【結果】假如我們把斷點設在CS:IP=141D:0004。在debug提示符-下鍵入g4(g和4之間可以有空格,也可以沒有空格結果如下:-u141d:000aIEPUSHDS14
5、10:0012BC0£UB141D:CM3O3睫push此141D:9W4麗1914novAX.141?141D;WQ7«i-imronran皿9na-413-4dmHOUtcmiDSrAXMvt事知n程序停在斷點處,并顯示出所有寄存器以及各標志位的當前值,最后一行給出下一條將要執行指令的地址、機器語言指令及匯編語言MOVAX,1419。我們可以從顯示的寄存器的內容來了解程序運行是否正確。從圖中可以看出各個段的16位段基地址值,如(DS=1419H,(ES=141BH,(SS=1419H,(CS=141DH。4、t單步執行命令g命令設置了斷點之后,從這個斷點開始,每鍵入一次
6、t命令,就按順序執行一條指令,這樣我們就可以跟蹤程序的運行。通過查看寄存器和存儲單元的內容,有利丁查找程序中的算法錯誤或邏輯錯誤。【格式】t鍵入單步調試命令,運行結果如下:湖。麗IEPUSHDS2BC0SUBAX.AX141。涸呃3bePUSHAX141D湖904B81914HOUfiXa4L?141D=6007BEDSHOU胸際DS1C14HOUAM-141B可以看出,AX寄存器中原來的數0000已經被新的數1419替換了。下一條即將執行的指令是MOVDS,AX,我們繼續執行單步調試命令。繼續執行單步調試命令:fiX=1419BX=0000CX=085DDX=0000SP=FFFCBP=00
7、00SI=000DI=0000DS=1419ES=140988=1419CS=141DIP=0009NUUPElPLZRNAPENGB81B14HOUAXr141B可以看出,DS寄存器中原來的數1409已經被新的數1419替換了。我們繼續執行單步調試命令,程序就可以一步一步地往下執行。5、d顯示存儲單元的內容命令對丁我們這個程序,由丁它是要求把存儲器數據段中的一申字符傳送到附加段中,所以單從寄存器或在DOS提示符下鍵入可執行文件名是看不到運行結果的,因而需要用d命令分別查看數據段和附加段的有關區域的內容。【格式】-d段基址:偏移地址【結果】如果我們要查看數據段內0偏移地址開始的存儲單元的內容,
8、可以鍵入如下的命令(假設程序已運行到RET指令處,即CS:IP=141D:001C:-tnx-1419BK=0000CX=005DDK=0000SP=FFFCBP=000081=0000PI=0000DS=141?EE=1409SS=141?C£=141DIF=0009HUUPElPLZRNAPENO141D:0009B81B14MOU-<1141?;a6173?365恥626C79-206C616E67?56167mwenhly】虱叫岫91419=BE)1865BO000008080080-OBBO00B000000000e最左邊是數據段基地址:偏移量,中間是存儲單元的內容,
9、每行為16個字節,為一個小段(Paragraph最右邊為對應的ASCII碼,不能顯示的ASCII字符以點號顯示。可以看出,我們定義的字符申已顯示在數據段開始的存儲單元中,字符申的首地址就是位丁數據段0偏移處。該圖顯示的是申操作結束之后的結果。從圖的右邊我們還可以看出,在數據段偏移地址0020H處乂存放著同樣的字符申,我們在數據段中只定義了一次,為什么在這里卻顯示了兩次呢?原來1419:0020的地址恰恰就是附加段的首地址,1419:0020轉換成物理地址是1419X0+0020=141B0H,而附加段的首地址是141B:0000轉換成物理地址是141BX10+0000=141B0H,二者相等,
10、從這里也可以看出,經過申移動操作后,數據段中的申已成功的移到了附加段中,這還可以從下面看出。如果我們要查看附加段內0偏移地址開始的存儲單元的內容,可以鍵入如下的命令:-tn«=1419BK=0000CX=005DDK=0000SP=FFFCBP=0000SI=0000DI=0000DS=1419ES=14M9SS=1419C£=141DIP=0009NUUPElPLZBMPEHC141D:0009B81B14MOU-d!4iy-R1419:n»(tkl4-flfl.f3ii9-4fl617373656D/leniaQian626C?9-2fieC616E67756
11、16?na£3.oaon心丑ann»aanoonassenblylangucig同樣,最左邊是附加段基地址:偏移量,中間是存儲單元的內容,每行為16個字節,為一個小段(Paragraph最右邊為對應的ASCII碼,不能顯示的ASCII字符以點號顯示。從圖的最右邊可以看出,經過是申移動操作結束之后,數據段中的字符申已成功的移到了附加段中。6、r顯示寄存器內容命令【格式】r寄存器名方括號中寄存器名是可選的,如果沒有鍵入寄存器名,則顯示所有寄存器的內容。【結果】(1顯示全部寄存器的內容,可鍵入如下命令:ftX=141BBX=00OCX=0000DX=0000SP=FFFCBP=0000SI=0011DI=0011DS=1419ES=141BSS=1419CS=141DIP=001CNUUPElPLZRNAPENC141B:001CCBREIF(2顯示ax寄存器的內容,可鍵入如下命令:fiX=141BDS-1419ax中原有的值。如果輸入1234后ax的內最后一行的冒號提示以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業園區環境風險防控體系建設
- 工業大數據在智能制造中的價值
- 工業安全與智能防控技術
- 工業安全防護技術與措施
- 工業用特種機械設備的技術與應用分析
- 工業自動化中機器視覺的檢測精度提升
- 工業機器人技術的安全與防護措施
- 工業綠色化改造與可持續發展路徑
- 工業節能與綠色生產的研究進展
- 工業自動化中的電氣傳動與控制
- 上海寶冶公司介紹
- 【大數據背景下湯臣倍健公司物流成本管理8900字(論文)】
- 分餾塔構造教程課件
- 《勞動法案例》課件
- 安全教育培訓課件:食品安全法律法規
- 社區養老院項目規劃設計方案
- 2023年河北石家莊市事業單位招聘筆試參考題庫(共500題)答案詳解版
- 跨越檔封網計算表
- 斷路器控制回路和信號回路
- 完整版-第八版內科冠心病課件
- 高中英語語法總結大全
評論
0/150
提交評論