




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)一 掌握DEBUG 基本命令及其功能 實(shí)驗(yàn)作業(yè)截止日 2015年3月14日(星期六)23:59:59 【上篇】 查看CPU和內(nèi)存,用機(jī)器指令和匯編指令編程一實(shí)驗(yàn)?zāi)康模赫莆誅EBUG 的基本命令及其功能掌握win7 win8 使用DEBUG功能二實(shí)驗(yàn)內(nèi)容:1.預(yù)備知識(shí):Debug的使用(1)什么是Debug?Debug是DOS、Windows都提供的實(shí)模式(8086方式)程序的調(diào)試工具。使用它,可以查看CPU各種寄存器中的內(nèi)容、內(nèi)存的情況和在機(jī)器碼級(jí)跟蹤程序的運(yùn)行。(2)我們用到的Debug功能l 用Debug的R命令查看、改變CPU寄存器的內(nèi)容;l 用Debug的D命令查看內(nèi)存中的內(nèi)容;l
2、 用Debug的E命令改寫(xiě)內(nèi)存中的內(nèi)容;l 用Debug的U命令將內(nèi)存中的機(jī)器指令翻譯成匯編指令;l 用Debug的T命令執(zhí)行一條機(jī)器指令;l 用Debug的A命令以匯編指令的格式在內(nèi)存中寫(xiě)入一條機(jī)器指令。(3) 進(jìn)入DebugDebug是在DOS方式下使用的程序。我們?cè)谶M(jìn)入Debug前,應(yīng)先進(jìn)入到DOS方式。用以下方式可以進(jìn)入DOS:重新啟動(dòng)計(jì)算機(jī),進(jìn)入DOS方式,此時(shí)進(jìn)入的是實(shí)模式的DOS。在Windows中進(jìn)入DOS方式,此時(shí)進(jìn)入的是虛擬8086模式的DOS。 (4)用R命令查看、改變CPU寄存器的內(nèi)容1)顯示CPU內(nèi)部所有寄存器內(nèi)容和標(biāo)志位狀態(tài);格式為:-R2)顯示和修改某個(gè)指定寄存器
3、內(nèi)容,格式為:-R 寄存器名若要修改一個(gè)寄存器中的值,比如AX中的值,可用R命令后加寄存器名來(lái)進(jìn)行,輸入“r ax”后按Enter鍵,將出現(xiàn)“:”作為輸入提示,在后面輸入要寫(xiě)入的數(shù)據(jù)后按Enter鍵,即完成了對(duì)AX中內(nèi)容的修改。若想看一下修改的結(jié)果,可再用R命令查看(5)用Debug的D命令查看內(nèi)存中的內(nèi)容1)格式:-d 段地址:偏移地址,Debug將列出從指定內(nèi)存單元開(kāi)始的128個(gè)內(nèi)存單元的內(nèi)容。使用D命令,Debug將輸出3部分內(nèi)容,如圖2.34所示。中間是部分從指定地址開(kāi)始的128個(gè)內(nèi)存單元的內(nèi)容,用十六進(jìn)制的格式輸出,每行的輸出從16的整數(shù)倍的地址開(kāi)始,最多輸出16個(gè)單元的內(nèi)容。左邊是
4、每行的起始地址。右邊是每個(gè)內(nèi)存單元中的數(shù)據(jù)對(duì)應(yīng)的可顯示的ASCII碼字符。2)格式:-d 段地址:起始偏移地址 結(jié)尾偏移地址,Debug將列出指定范圍的內(nèi)存單元的內(nèi)容。(6) 用Debug的E命令改寫(xiě)內(nèi)存中的內(nèi)容,有兩種格式:1)格式:-e 起始地址 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù),如要將1000:0開(kāi)始的10個(gè)內(nèi)存單元修改為09,可以用”-e 1000:0 0 1 2 3 4 5 6 7 8 9”2)格式:-e起始地址,逐個(gè)單元相繼地修改。如:-e 1000:10 1000:0010 6D.0 61.1 72.2 6B.1c輸入e 1000:10 ,Debug 顯示起始地址1000:0010,和1000:
5、0010單元的原始內(nèi)容:6D,然后光標(biāo)停在“.”的后面提示輸入想要寫(xiě)入數(shù)據(jù),輸入數(shù)據(jù)0,然后按空格鍵,即用輸入的數(shù)據(jù)0改寫(xiě)了當(dāng)前的內(nèi)存單元。當(dāng)前單元處理完成后,Debug將接著顯示下一個(gè)內(nèi)存單元的原始內(nèi)容,并提示讀者進(jìn)行修改,可以用同樣的方法處理。改寫(xiě)完畢后,按Enter鍵,E命令操作結(jié)束??梢杂肊命令向內(nèi)存中寫(xiě)入字符,比如:用E命令從內(nèi)存1000:0開(kāi)始寫(xiě)入:數(shù)值1、字符“a”,數(shù)值2,字符“b”,數(shù)值3,字符“c”,可以用:“-e 1000:0 1 a 2 b 3 c”修改的結(jié)果是,向1000:0、1000:2、1000:4單元中寫(xiě)入數(shù)值1、2、3,向1000:1、1000:3、1000:
6、 5單元中寫(xiě)入字符“a”、“b”、“c”的ASCII碼值:61H、62H、63H。也可以用E命令向內(nèi)存中寫(xiě)入字符串,比如:用E命令從內(nèi)存1000:0開(kāi)始寫(xiě)入:數(shù)值1、字符串“a+b”、數(shù)值2、字符串“c+”、字符3、字符串“IBM”。 可以用:-e 1000:0 1 “a+b” 2 “c+” 3 “IBM” 。可以用E命令向內(nèi)存中寫(xiě)入機(jī)器碼比如要從內(nèi)存1000:0單元開(kāi)始寫(xiě)入這樣一段機(jī)器碼:機(jī)器碼 對(duì)應(yīng)的匯編指令b80100 mov ax,0001b90200 mov cx,000201c8 add ax, cx可用:”-e 1000:0 b8 01 00 b9 02 00 01 c8”(7)
7、 用U命令查看寫(xiě)入的或內(nèi)存中原有的機(jī)器碼所對(duì)應(yīng)的匯編指令1)-U 段地址:偏移地址該命令從指定地址開(kāi)始,反匯編32個(gè)字節(jié),若地址省略,則從上一個(gè)U命令的最后一條指令的下一個(gè)單元開(kāi)始顯示32個(gè)字節(jié)。2)-U地址范圍該命令對(duì)指定范圍的內(nèi)存單元進(jìn)行反匯編 (8) 使用T命令,可以執(zhí)行CS:IP指向的指令,格式:-t,指令執(zhí)行后,Debug顯示輸出CPU中寄存器的狀態(tài)。(9)用Debug的A命令以匯編指令的形式在內(nèi)存中寫(xiě)入機(jī)器指令。格式:-A 段地址:偏移地址該命令從指定地址開(kāi)始允許輸入?yún)R編語(yǔ)句,把它們匯編成機(jī)器代碼相繼存放在從指定地址開(kāi)始的存儲(chǔ)器中。三.實(shí)驗(yàn)任務(wù)(1)使用Debug,將下面的程序段寫(xiě)
8、入內(nèi)存,逐條執(zhí)行,觀察每條指令執(zhí)行后,CPU中相關(guān)寄存器中內(nèi)容的變化。(逐條執(zhí)行,每條指令執(zhí)行結(jié)果截圖)機(jī)器碼 匯編指令b8 20 4e mov ax,4E20H05 16 14 add ax,1416Hbb 00 20 mov bx,2000H01 d8 add ax,bx89 c3 mov bx,ax01 d8 add ax,bxb8 1a 00 mov ax,001AHbb 26 00 mov bx,0026H00 d8 add al,bl00 dc add ah,bl00 c7 add bh,alb4 00 mov ah,000 d8 add al,bl04 9c add al,9CH
9、提示:可用E命令和A命令以?xún)煞N方式將指令寫(xiě)入內(nèi)存。注意用T命令執(zhí)行時(shí),CS:IP的指向。(2) 將下面3條指令寫(xiě)入從2000:0開(kāi)始的內(nèi)存單元中,利用這3條指令計(jì)算2的8次方。mov ax,1add ax,axjmp 2000:0003(3)查看內(nèi)存中的內(nèi)容PC機(jī)主板上的ROM中寫(xiě)有一個(gè)生產(chǎn)日期,在內(nèi)存FFF00HFFFFFH的某幾個(gè)單元中,請(qǐng)找到這個(gè)生產(chǎn)日期并試圖改變它。(內(nèi)存ffff:0005ffff:000C(共8個(gè)字節(jié)單元中)處)【下篇】用機(jī)器指令和匯編指令編程一實(shí)驗(yàn)內(nèi)容1.預(yù)備知識(shí):Debug命令的補(bǔ)充(1)在D命令中使用段寄存器格式:“d 段寄存器:偏移地址”,以段寄存器中的數(shù)據(jù)為
10、段地址SA,列出從SA:偏移地址開(kāi)始的內(nèi)存區(qū)間中的數(shù)據(jù)。以下是4個(gè)例子:-r ds:1000-d ds:0 ;查看從1000:0開(kāi)始的內(nèi)存區(qū)間中的內(nèi)容-r ds:1000-d ds:10 18 ;查看1000:101000:18中的內(nèi)容-d cs:0 ;查看當(dāng)前代碼段中的指令代碼-d ss:0 ;查看當(dāng)前棧段中的內(nèi)容(2)在E、A、U命令中使用段寄存器在E、A、U這些可以帶有內(nèi)存單元地址的命令中,也可以同D命令一樣,用段寄存器表示內(nèi)存單元的段地址。以下是3個(gè)例子:-r ds:1000-e ds:0 11 22 33 44 55 66 ;在從1000:0開(kāi)始的內(nèi)存區(qū)間中寫(xiě)入數(shù)據(jù)-u cs:0 ;
11、以匯編指令的形式,顯示當(dāng)前代碼段中的代碼,0代碼的偏移地址-r ds:1000-a ds:0 ;以匯編指令的形式,向從1000:0開(kāi)始的內(nèi)存單元中寫(xiě)入指令(3)下一條指令執(zhí)行了嗎? 在Debug中,用A命令寫(xiě)一段程序:mov ax,2000mov ss,axmov sp,10 ;安排2000:00002000:000F 為??臻g,初始化棧頂。mov ax,3123 push axmov ax,3366push ax ;在棧中壓入兩個(gè)數(shù)據(jù)。在用T命令單步執(zhí)行mov ax,2000后,顯示出當(dāng)前CPU各個(gè)寄存器的狀態(tài)和下一步要執(zhí)行的指令:mov ss,ax;在用T命令單步執(zhí)行mov ss,ax后,
12、下一條指令應(yīng)該是mov sp,10,卻變成了mov ax,3123?注意,在用T命令單步執(zhí)行mov ss,ax 前,ax=0000,ss=0b39,sp=ffee,而執(zhí)行后 ss=2000,sp=0010。ss變?yōu)?000是正常的,這正是mov ss,ax的執(zhí)行結(jié)果。而能夠?qū)p設(shè)為0010的只有指令mov sp,10,看來(lái),mov sp,10一定是得到了執(zhí)行。在用T命令執(zhí)行mov ss,ax的時(shí)候,它的下一條指令mov sp,10也緊接著執(zhí)行了。整理一下我們分析的結(jié)果:在用T命令執(zhí)行mov ss,ax的時(shí)候,它的下一條指令mov sp,10也緊接著執(zhí)行了。一般情況下,用T命令執(zhí)行一條指令后,
13、會(huì)停止繼續(xù)執(zhí)行,顯示出當(dāng)前CPU各個(gè)寄存器的狀態(tài)和下一步要執(zhí)行的指令,但T命令執(zhí)行mov ss,ax的時(shí)候,沒(méi)有做到這一點(diǎn)。不單是mov ss,ax,對(duì)于如:mov ss,bx,mov ss,0,pop ss等指令都會(huì)發(fā)生上面的情況,這些指令有哪些共性呢?它們都是修改棧段寄存器SS的指令。結(jié)論:Debug的T命令在執(zhí)行修改寄存器SS的指令時(shí),下一條指令也緊接著被執(zhí)行。二實(shí)驗(yàn)任務(wù)(1)使用Debug,將上面的程序段寫(xiě)入內(nèi)存,逐條執(zhí)行,根據(jù)指令執(zhí)行后的實(shí)際運(yùn)行情況填空。(逐條執(zhí)行,每條指令執(zhí)行結(jié)果截圖)mov ax,ffffmov ds,axmov ax,2200mov ss,axmov sp,0
14、100mov ax,0 ;ax= c0ea add ax,2;ax= c0fc mov bx,4 ;bx= 30f0 add bx,6;bx= 6021 push ax ;sp= 00fe ;修改的內(nèi)存單元的地址是 2200:00fe 內(nèi)容為 c0fc push bx ;sp= 00fc ;修改的內(nèi)存單元的地址是 2200:00fc 內(nèi)容為 6021 pop ax ;sp= 00fe ;ax= 6021 pop bx ;sp= 0100 ;bx= c0fc push 4;sp= 00fe ;修改的內(nèi)存單元的地址是 ffff:0100 內(nèi)容為 6021 push 6 ;sp= 00fc ;修改的內(nèi)存單元的地址是 ffff:0110 內(nèi)容為 c0fc (2)使用Debug,將下面的程序段寫(xiě)入內(nèi)存,逐條執(zhí)行,觀察每條指令執(zhí)行后,CPU中相關(guān)寄存器中內(nèi)容的變化。(逐條執(zhí)行,每條指令執(zhí)行結(jié)果截圖) 如果有問(wèn)題請(qǐng)說(shuō)明原因匯編指令mov ax,1000Hmov ds,axmov ds,0add ds,axadd不可以對(duì)段寄存器進(jìn)行
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZHHX 004-2024 粉苞酸腳桿盆花生產(chǎn)技術(shù)規(guī)范
- 二零二五年度員工宿舍入住與退宿手續(xù)協(xié)議
- 2025年度水利工程監(jiān)理工程師合同管理與可持續(xù)發(fā)展
- 二零二五年度商鋪經(jīng)營(yíng)權(quán)放棄及轉(zhuǎn)讓協(xié)議書(shū)
- 二零二五年度酒吧租賃合同書(shū)
- 2025年度潤(rùn)滑油行業(yè)年度銷(xiāo)售排行榜合作合同
- 2025年度機(jī)關(guān)單位食堂餐飲培訓(xùn)與咨詢(xún)服務(wù)合同
- 二零二五年度夫妻婚內(nèi)財(cái)產(chǎn)約定及家庭財(cái)務(wù)顧問(wèn)服務(wù)協(xié)議
- 二零二五年度智慧城市項(xiàng)目實(shí)施團(tuán)隊(duì)勞動(dòng)合同
- 二零二五年度企業(yè)稅收籌劃與稅務(wù)籌劃培訓(xùn)與實(shí)施合同
- 《營(yíng)養(yǎng)均衡膳食指南》課件
- 《數(shù)智化技術(shù)應(yīng)用與創(chuàng)新》課件 第1章 走進(jìn)數(shù)智化時(shí)代
- 2025年浙江省臺(tái)州機(jī)場(chǎng)管理有限公司招聘筆試參考題庫(kù)含答案解析
- 中央2025年公安部部分直屬事業(yè)單位招聘84人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年江蘇醫(yī)藥職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年常德職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2024年江西青年職業(yè)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- 綠色建筑材料在土木工程施工中的應(yīng)用研究
- 上海市2024-2025學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 摩托車(chē)維修管理制度模版(3篇)
- 2025年浙江嘉興桐鄉(xiāng)市水務(wù)集團(tuán)限公司招聘10人高頻重點(diǎn)提升(共500題)附帶答案詳解
評(píng)論
0/150
提交評(píng)論