匯編語言實(shí)驗(yàn)一_第1頁
匯編語言實(shí)驗(yàn)一_第2頁
匯編語言實(shí)驗(yàn)一_第3頁
匯編語言實(shí)驗(yàn)一_第4頁
匯編語言實(shí)驗(yàn)一_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、重 慶 大 學(xué)學(xué) 生 實(shí) 驗(yàn) 報(bào) 告實(shí)驗(yàn)課程名稱 匯編語言程序設(shè)計(jì) 開課實(shí)驗(yàn)室 DS1501 學(xué)院 軟件學(xué)院 年級 2013 專業(yè)班 軟件工程1 班 學(xué) 生 姓 名 * 學(xué) 號 2013* 開 課 時(shí) 間 2014 至 2015 學(xué)年第 1 學(xué)期總 成 績教師簽名王志平軟件工程學(xué)院 制匯編語言程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告(格式樣本) 開課實(shí)驗(yàn)室: DS1501機(jī)房 2014 年 9 月 日學(xué)院軟件學(xué)院年級、專業(yè)、班軟件工程1班 姓名* 成績課程名稱匯編語言程序設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目名 稱實(shí)驗(yàn)一:掌握匯編語言環(huán)境及DEBUG 的基本命令及其功能指導(dǎo)教師王志平教師評語教師簽名:王志平2014年 月 日一【實(shí)驗(yàn)?zāi)康摹空莆?/p>

2、匯編語言環(huán)境及DEBUG 的基本命令及其功能。二【實(shí)驗(yàn)環(huán)境】PC微機(jī)DOS操作系統(tǒng)或 Windows 操作系統(tǒng)MASM.EXE,LINK.EXE,DEBUG.COM或宏匯編集成環(huán)境三【預(yù)備知識】Debug的使用(1)什么是Debug?Debug是DOS、Windows都提供的實(shí)模式(8086方式)程序的調(diào)試工具。使用它,可以查看CPU各種寄存器中的內(nèi)容、內(nèi)存的情況和在機(jī)器碼級跟蹤程序的運(yùn)行。(2)我們用到的Debug功能l 用Debug的R命令查看、改變CPU寄存器的內(nèi)容;l 用Debug的D命令查看內(nèi)存中的內(nèi)容;l 用Debug的E命令改寫內(nèi)存中的內(nèi)容;l 用Debug的U命令將內(nèi)存中的機(jī)器

3、指令翻譯成匯編指令;l 用Debug的T命令執(zhí)行一條機(jī)器指令;l 用Debug的A命令以匯編指令的格式在內(nèi)存中寫入一條機(jī)器指令。四【實(shí)驗(yàn)內(nèi)容】 (1)教材 146155頁匯編語言上機(jī)調(diào)試過程練習(xí)(2)進(jìn)入Debug Debug是在DOS方式下使用的程序。我們在進(jìn)入Debug前,應(yīng)先進(jìn)入到DOS方式。用以下方式可以進(jìn)入DOS:命令行輸入 :cmd1)重新啟動計(jì)算機(jī),進(jìn)入DOS方式,此時(shí)進(jìn)入的是實(shí)模式的DOS。2) 在Windows中進(jìn)入DOS方式,此時(shí)進(jìn)入的是虛擬8086模式的DOS。 ( 3 ) 用R命令查看、改變CPU寄存器的內(nèi)容1)顯示CPU內(nèi)部所有寄存器內(nèi)容和標(biāo)志位狀態(tài);格式為:-R 。

4、2)顯示和修改某個(gè)指定寄存器內(nèi)容,格式為:-R 寄存器名。若要修改一個(gè)寄存器中的值,比如AX中的值,可用R命令后加寄存器名來進(jìn)行,輸入“r ax”后按Enter鍵,將出現(xiàn)“:”作為輸入提示,在后面輸入要寫入的數(shù)據(jù)后按Enter鍵,即完成了對AX中內(nèi)容的修改。若想看一下修改的結(jié)果,可再用R命令查看。(4 )用Debug的D命令查看內(nèi)存中的內(nèi)容1)格式:-d 段地址:偏移地址,Debug將列出從指定內(nèi)存單元開始的128個(gè)內(nèi)存單元的內(nèi)容。使用D命令,Debug將輸出3部分內(nèi)容,如圖2.34所示。中間是部分從指定地址開始的128個(gè)內(nèi)存單元的內(nèi)容,用十六進(jìn)制的格式輸出,每行的輸出從16的整數(shù)倍的地址開始

5、,最多輸出16個(gè)單元的內(nèi)容。左邊是每行的起始地址。右邊是每個(gè)內(nèi)存單元中的數(shù)據(jù)對應(yīng)的可顯示的ASCII碼字符。2) 格式:-d 段地址:起始偏移地址 結(jié)尾偏移地址,Debug將列出指定范圍的內(nèi)存單元的內(nèi)容。(5) 用Debug的E命令改寫內(nèi)存中的內(nèi)容,有兩種格式:1)格式:-e 起始地址 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù),如要將1000:0開始的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 顯示

6、起始地址1000:0010,和1000:0010單元的原始內(nèi)容:6D,然后光標(biāo)停在“.”的后面提示輸入想要寫入數(shù)據(jù),輸入數(shù)據(jù)0,然后按空格鍵,即用輸入的數(shù)據(jù)0改寫了當(dāng)前的內(nèi)存單元。當(dāng)前單元處理完成后,Debug將接著顯示下一個(gè)內(nèi)存單元的原始內(nèi)容,并提示讀者進(jìn)行修改,可以用同樣的方法處理。改寫完畢后,按Enter鍵,E命令操作結(jié)束??梢杂肊命令向內(nèi)存中寫入字符,比如:用E命令從內(nèi)存1000:0開始寫入:數(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單元中寫入數(shù)值1、2、3,

7、向1000:1、1000:3、1000: 5單元中寫入字符“a”、“b”、“c”的ASCII碼值:61H、62H、63H。也可以用E命令向內(nèi)存中寫入字符串,比如:用E命令從內(nèi)存1000:0開始寫入:數(shù)值1、字符串“a+b”、數(shù)值2、字符串“c+”、字符3、字符串“IBM”。 可以用:-e 1000:0 1 “a+b” 2 “c+” 3 “IBM” 。可以用E命令向內(nèi)存中寫入機(jī)器碼比如要從內(nèi)存1000:0單元開始寫入這樣一段機(jī)器碼:機(jī)器碼 對應(yīng)的匯編指令b80100 mov ax,0001b90200 mov cx,000201c8 add ax, cx可用:”-e 1000:0 b8 01 0

8、0 b9 02 00 01 c8”(6) 用U命令查看寫入的或內(nèi)存中原有的機(jī)器碼所對應(yīng)的匯編指令1)-U 段地址:偏移地址該命令從指定地址開始,反匯編32個(gè)字節(jié),若地址省略,則從上一個(gè)U命令的最后一條指令的下一個(gè)單元開始顯示32個(gè)字節(jié)。2)-U地址范圍該命令對指定范圍的內(nèi)存單元進(jìn)行反匯編 (8)使用T命令,可以執(zhí)行CS:IP指向的指令,格式:-t,指令執(zhí)行后,Debug顯示輸出CPU中寄存器的狀態(tài)。(7)用Debug的A命令以匯編指令的形式在內(nèi)存中寫入機(jī)器指令。格式:-A 段地址:偏移地址該命令從指定地址開始允許輸入?yún)R編語句,把它們匯編成機(jī)器代碼相繼存放在從指定地址開始的存儲器中。(8用Deb

9、ug單步調(diào)試程序。格式:debug ex_moves.exe用u命令反匯編看看源代碼用T命令單步執(zhí)行源代碼,觀察執(zhí)行后寄存器的變化。四【實(shí)驗(yàn)步驟】 (1)使用Debug,將下面的程序段寫入內(nèi)存,逐條執(zhí)行,觀察每條指令執(zhí)行后,CPU中相關(guān)寄存器中內(nèi)容的變化。機(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,b

10、l00 dc add ah,bl00 c7 add bh,alb4 00 mov ah,000 d8 add al,bl04 9c add al,9CH提示:可用E命令和A命令以兩種方式將指令寫入內(nèi)存。注意用T命令執(zhí)行時(shí),CS:IP的指向。(2)將下面3條指令寫入從2000:0開始的內(nèi)存單元中,利用這3條指令計(jì)算2的8次方。mov ax,1add ax,axjmp 2000:0003(3)查看內(nèi)存中的內(nèi)容PC機(jī)主板上的ROM中寫有一個(gè)生產(chǎn)日期,在內(nèi)存FFF00HFFFFFH的某幾個(gè)單元中,請找到這個(gè)生產(chǎn)日期并試圖改變它。(4)向內(nèi)存從B8100H開始的單元中填寫數(shù)據(jù),如:-e B810:000

11、0 01 01 02 02 03 03 04 04請讀者注意觀察:先填寫不同的數(shù)據(jù),觀察產(chǎn)生的現(xiàn)象;再改變填寫的地址,觀察產(chǎn)生的現(xiàn)象。 (5) 用D命令(顯示內(nèi)存數(shù)據(jù)D 段地址:偏移地址)例1:-D100 ;顯示DS段, 0100開始的128個(gè)節(jié)內(nèi)容: 說明: 指定要顯示其內(nèi)容的內(nèi)存區(qū)域的起始和結(jié)束地址,或起始地址和長度。五【實(shí)驗(yàn)過程原始記錄(數(shù)據(jù)、圖表、計(jì)算等)】實(shí)驗(yàn)一機(jī)器指令存入內(nèi)存匯編指令存入內(nèi)存實(shí)驗(yàn)二計(jì)算2的8次方再重復(fù)使用t指令即可,最后的的結(jié)果截圖為:實(shí)驗(yàn)三再用e指令的機(jī)器碼試圖更改,但是發(fā)現(xiàn)不可更改實(shí)驗(yàn)四:在輸入機(jī)器指令后,在進(jìn)行改變cs,ip后經(jīng)行觀察發(fā)現(xiàn)在改變地址后,藍(lán)色框中會在不同的位置現(xiàn)出來實(shí)驗(yàn)五:起始位置:073f:0100終點(diǎn)位置073f:017f總結(jié):這次試驗(yàn)我的動手能力還有帶加強(qiáng)的,對與指令的作用比較熟悉,但是對于一些應(yīng)用的如:日期的不可修改是與同學(xué)交流而得到的,我應(yīng)該主動地查閱資料,在豐富知識,而不是不會的就困守原地。我的優(yōu)點(diǎn)就是善于查找問題,在用d指令中看出日期的位置。六【實(shí)驗(yàn)結(jié)果及分析】七【思考題】如果有則做。實(shí)驗(yàn)報(bào)告打印格式說明1. 標(biāo)題:

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論