版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGE6實(shí)驗(yàn)一掌握DEBUG基本命令及其功能【上篇】查看CPU和內(nèi)存,用機(jī)器指令和匯編指令編程一.實(shí)驗(yàn)?zāi)康模赫莆誅EBUG的基本命令及其功能掌握win7win8使用DEBUG功能二.實(shí)驗(yàn)內(nèi)容:1. 預(yù)備知識:Debug的使用(1) 什么是Debug?Debug是DOS、Windows都提供的實(shí)模式(8086方式)程序的調(diào)試工具。使用它,可以查看CPU各種寄存器中的內(nèi)容、內(nèi)存的情況和在機(jī)器碼級跟蹤程序的運(yùn)行。(2) 我們用到的Debug功能用Debug的R命令查看、改變CPU寄存器的內(nèi)容;用Debug的D命令查看內(nèi)存中的內(nèi)容;用Debug的E命令改寫內(nèi)存中的內(nèi)容;用Debug的U命令將內(nèi)存中的機(jī)器指令翻譯成匯編指令;用Debug的T命令執(zhí)行一條機(jī)器指令;用Debug的A命令以匯編指令的格式在內(nèi)存中寫入一條機(jī)器指令。(3) 進(jìn)入DebugDebug是在DOS方式下使用的程序。我們在進(jìn)入Debug前,應(yīng)先進(jìn)入到DOS方式。用以下方式可以進(jìn)入DOS:① 重新啟動計(jì)算機(jī),進(jìn)入DOS方式,此時(shí)進(jìn)入的是實(shí)模式的DOS。② 在Windows中進(jìn)入DOS方式,此時(shí)進(jìn)入的是虛擬8086模式的DOS。三.實(shí)驗(yàn)任務(wù)解決方案從網(wǎng)上下載Dosbox和debug.exe(文件夾中有)。debug.exe放在D:根目錄,然后安裝,安裝完成以后,點(diǎn)擊快捷方式進(jìn)入Dos界面:
3.輸入mountcd:\接著輸入c:Dosbox
5.接著,你就可以使用Debug:
debug
6.備注:debug.exe放在D:根目錄下,你也可以把debug.exe放在任何一個(gè)文件夾下面。其中這個(gè)文件夾就是mountcd:所對應(yīng)的。一.(1) 使用Debug,將下面的程序段寫入內(nèi)存,逐條執(zhí)行,觀察每條指令執(zhí)行后,CPU中相關(guān)寄存器中內(nèi)容的變化。(逐條執(zhí)行,每條指令執(zhí)行結(jié)果截圖)機(jī)器碼 匯編指令b8204e movax,4E20H051614 addax,1416Hbb0020 movbx,2000H01d8 addax,bx89c3 movbx,ax② -rds:1000-dds:1018;查看1000:10~1000:18中的內(nèi)容③ -dcs:0;查看當(dāng)前代碼段中的指令代碼④ -dss:0;查看當(dāng)前棧段中的內(nèi)容(2) 在E、A、U命令中使用段寄存器在E、A、U這些可以帶有內(nèi)存單元地址的命令中,也可以同D命令一樣,用段寄存器表示內(nèi)存單元的段地址。以下是3個(gè)例子:① -rds:1000-eds:0112233445566;在從1000:0開始的內(nèi)存區(qū)間中寫入數(shù)據(jù)② -ucs:0;以匯編指令的形式,顯示當(dāng)前代碼段中的代碼,0代碼的偏移地址③ -rds:1000-ads:0;以匯編指令的形式,向從1000:0開始的內(nèi)存單元中寫入指令(3) 下一條指令執(zhí)行了嗎?在Debug中,用A命令寫一段程序:movax,2000movss,axmovsp,10 ;安排2000:0000~2000:000F為??臻g,初始化棧頂。movax,3123 pushaxmovax,3366pushax ;在棧中壓入兩個(gè)數(shù)據(jù)。在用T命令單步執(zhí)行movax,2000后,顯示出當(dāng)前CPU各個(gè)寄存器的狀態(tài)和下一步要執(zhí)行的指令:movss,ax;在用T命令單步執(zhí)行movss,ax后,下一條指令應(yīng)該是movsp,10,卻變成了movax,3123?注意,在用T命令單步執(zhí)行movss,ax前,ax=0000,ss=0b39,sp=ffee,而執(zhí)行后ss=2000,sp=0010。ss變?yōu)?000是正常的,這正是movss,ax的執(zhí)行結(jié)果。而能夠?qū)p設(shè)為0010的只有指令movsp,10,看來,movsp,10一定是得到了執(zhí)行。在用T命令執(zhí)行movss,ax的時(shí)候,它的下一條指令movsp,10也緊接著執(zhí)行了。整理一下我們分析的結(jié)果:在用T命令執(zhí)行movss,ax的時(shí)候,它的下一條指令movsp,10也緊接著執(zhí)行了。一般情況下,用T命令執(zhí)行一條指令后,會停止繼續(xù)執(zhí)行,顯示出當(dāng)前CPU各個(gè)寄存器的狀態(tài)和下一步要執(zhí)行的指令,但T命令執(zhí)行movss,ax的時(shí)候,沒有做到這一點(diǎn)。不單是movss,ax,對于如:movss,bx,movss,[0],popss等指令都會發(fā)生上面的情況,這些指令有哪些共性呢?它們都是修改棧段寄存器SS的指令。結(jié)論:Debug的T命令在執(zhí)行修改寄存器SS的指令時(shí),下一條指令也緊接著被執(zhí)行。二.實(shí)驗(yàn)任務(wù)(1) 使用Debug,將上面的程序段寫入內(nèi)存,逐條執(zhí)行,根據(jù)指令執(zhí)行后的實(shí)際運(yùn)行情況填空。(逐條執(zhí)行,每條指令執(zhí)行結(jié)果截圖)movax,ffffmovds,axmovax,2200movss,axmovsp,0100movax,[0] ;ax=C0EAaddax,[2] ;ax=C0FCmovbx,[4] ;bx=30F0addbx,[6] ;bx=6021pushax ;sp=00FE;修改的內(nèi)存單元的地址是2200:00FE內(nèi)容為C0FCpushbx ;sp=00FC;修改的內(nèi)存單元的地址是2200:00FC內(nèi)容為6021popax ;sp=00FE;ax=6021popbx ;sp=0010;bx=C0FCpush[4] ;sp=00FE;修改的內(nèi)存單元的地址是2200:00FE內(nèi)容為30F0push[6] ;sp=00FC;修改的內(nèi)存單元的地址是2200:00FC內(nèi)容為2F31(2) 使用Debug,將下面的程序段寫入內(nèi)存,逐條執(zhí)行,觀察每條指令執(zhí)行后,CPU中相關(guān)寄存器中內(nèi)容的變化。(逐條執(zhí)行,每條指令執(zhí)行結(jié)果截圖)如果有問題請說明原因匯編指令movax,1000Hmovds,axmovds,[0]addds,axDs為段寄存器,無法用在算術(shù)運(yùn)算指令中。。(3) 仔細(xì)觀察下圖中的實(shí)驗(yàn)過程,然后分析:為什么2000:0~2000:f中的內(nèi)容會發(fā)生改變?發(fā)生改變的數(shù)據(jù)分別是SS、IP、CS等的值,其數(shù)據(jù)發(fā)生了改變,是對定義棧段時(shí)部分運(yùn)行環(huán)境變量進(jìn)行暫存。[實(shí)驗(yàn)一補(bǔ)充:Masm5.0解決方案]1從網(wǎng)上下載Dosbox和masm5。2先把masm5目錄放在D:中(也可以自己選擇路徑),然后安裝Dosbox,安裝完成以后,點(diǎn)擊快捷方式DOSBox
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度金融衍生品投資咨詢服務(wù)合同范本
- 二零二四年度窯爐承包項(xiàng)目驗(yàn)收及環(huán)保達(dá)標(biāo)驗(yàn)收細(xì)則合同3篇
- 二零二五年度水泥電桿生產(chǎn)設(shè)備租賃合同
- 二零二五年度企業(yè)人力資源招聘渠道拓展合同6篇
- 2025年度電子商務(wù)平臺產(chǎn)品溯源管理合同模板4篇
- 2025年度電氣設(shè)備環(huán)保評估與認(rèn)證合同4篇
- 二零二五年度沉井施工勞務(wù)承包合同范本4篇
- 二零二四年度玉米種植合作社與飼料企業(yè)合作合同3篇
- 二零二五年度數(shù)字經(jīng)濟(jì)領(lǐng)域股權(quán)投資與數(shù)據(jù)服務(wù)合同
- 2025年度房地產(chǎn)開發(fā)項(xiàng)目專用塊石供應(yīng)合同2篇
- 2024年社區(qū)警務(wù)規(guī)范考試題庫
- 2024年食用牛脂項(xiàng)目可行性研究報(bào)告
- 2024年全國各地中考試題分類匯編(一):現(xiàn)代文閱讀含答案
- 2024-2030年中國戶外音箱行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報(bào)告
- GB/T 30306-2024家用和類似用途飲用水處理濾芯
- 家務(wù)分工與責(zé)任保證書
- 消防安全隱患等級
- 溫室氣體(二氧化碳和甲烷)走航監(jiān)測技術(shù)規(guī)范
- 華為員工股權(quán)激勵(lì)方案
- 部編版一年級語文下冊第一單元大單元教學(xué)設(shè)計(jì)
- 《保單檢視專題》課件
評論
0/150
提交評論