資源描述:
《宏匯編(masn)與匯編語(yǔ)言上機(jī)過(guò)程實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、佛山科學(xué)技術(shù)學(xué)院實(shí)驗(yàn)報(bào)告課程名稱匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)一宏匯編(MASN)及匯編語(yǔ)言上機(jī)過(guò)程專業(yè)班級(jí)13網(wǎng)絡(luò)工程班姓名學(xué)號(hào)指導(dǎo)教師楊定安成績(jī)?nèi)掌?015.10.25一、實(shí)驗(yàn)?zāi)康?.通過(guò)實(shí)驗(yàn)了解和熟悉微機(jī)系統(tǒng)的配置。2.學(xué)習(xí)在DEBUG狀態(tài)下輸入?yún)R編源程序的方法。3.初步掌握調(diào)試(在DEBUG狀態(tài)下)的過(guò)程。二、實(shí)驗(yàn)原理1.本實(shí)驗(yàn)要求在DEBUG狀態(tài)下輸入?yún)R編源程序,并用DEBUG命令進(jìn)行調(diào)試。用單步跟蹤的方法驗(yàn)證指令的功能。2.以下是給定的參考程序,并在實(shí)驗(yàn)時(shí)在每條指令的“;”符號(hào)右邊按要求填寫(xiě)
2、指令的執(zhí)行結(jié)果。注:⑴微機(jī)進(jìn)入DEBUG狀態(tài)下之后,一切立即數(shù)和地址數(shù)據(jù)均被默認(rèn)為十六進(jìn)制數(shù),在輸入時(shí)數(shù)的后面不加后綴“H”;⑵在DEBUG狀態(tài)下執(zhí)行程序時(shí),“INT20H”指令可使系統(tǒng)執(zhí)行完該指令前的程序時(shí)返回到“-”提示符狀態(tài),并且恢復(fù)CS和IP寄存器原來(lái)的值。三、實(shí)驗(yàn)儀器微機(jī)一臺(tái),U盤一塊。四、實(shí)驗(yàn)步驟1.開(kāi)機(jī)和關(guān)機(jī)操作順序開(kāi)機(jī):先打開(kāi)微機(jī)外部設(shè)備電源開(kāi)關(guān),如顯示器,最后打開(kāi)主機(jī)電源開(kāi)關(guān)。關(guān)機(jī):與開(kāi)機(jī)相反,先關(guān)掉主機(jī)電源開(kāi)關(guān),然后關(guān)閉所有外設(shè)的電源開(kāi)關(guān)。2.裝入DEBUG程序若計(jì)算機(jī)系統(tǒng)啟動(dòng)正常
3、,可以進(jìn)入MASM文件夾或MASM5文件夾從磁盤上調(diào)用DEBUG,程序到內(nèi)存。如是WINDOWS環(huán)境下,先運(yùn)行CMD命令,然后運(yùn)行CDMASM命令,再運(yùn)行DEB2000命令。一般C盤上裝有DEBUG和DEB2000軟件,若沒(méi)有,可以用復(fù)制命令從其它盤拷貝過(guò)來(lái),然后從裝有DEBUG和DEB2000軟件的磁盤上調(diào)用DEBUG和DEB2000軟件程序。例如:C:MASM>DEB2000↙(↙回車符)-(-DEBUG提示符)當(dāng)顯示器出現(xiàn)提示符“-”時(shí),說(shuō)明已進(jìn)入DEBUG狀態(tài),這時(shí),可用DEBUG命令進(jìn)行操
4、作。4.用DEBUG的Register命令檢查所有寄存器內(nèi)容,并作記錄,主要是R命令5.用DEBUG的Assemble命令輸入?yún)R編源程序。重點(diǎn)是A,命令和T命令。五、輸入程序得出實(shí)驗(yàn)結(jié)果MOVAX,2000;AL=00MOVDS,AX;DS=2000NOTAX;AX=DFFFXORAX,AX;AX=0000DECAX;AX=FFFFINCAX;AX=0000MOVBX,2030;BH=20MOVSI,BX;SI=2030MOV[SI],BL;[2030H]=30MOVWORDPTR[SI],10F;[
5、2030H]=0F[2031H]=01MOVDI,SI;DI=2030MOV[DI+50],BH;[DI+50H]=20MOVBH,[SI];BH=0FMOVBL,[DI+50];BL=20MOVSP,5000PUSHAX;AX=0000[SS:4FFEH]=00[SS:4FFFH]=00PUSHBX;BX=0F20[SS:4FFCH]=20[SS:4FFDH]=0FPOPAX;AX=0F20POPF;F=NVUPEIPLZRACPENCNEGBX;BX=F0E0XCHGBX,AX;BX=0F20ST
6、D;F=NVDNDINGNZNAPOCYSTI;F=NVDNEINGNZNAPOCYCLD;F=NVUPDINGNZNAPOCYCLI;F=NVUPDINGNZNAPOCYADCDI,2050;DI=4081F=NVUPDIPLNZNAPENCADCSP,DI;SP=9081F=OVUPDINGNZNAPENCADCAX,1500;AX=05E0F=NVDNDINGNZNAPOCYSUBAX,BX;AX=F6C0BX=0F20SHLAH,1;AH=ECRCLAX,1;AX=D981SHRBH,1;BH
7、=07RCRBL,1;BL=90MOVCL,4MOVDX,80F0ROLDX,CL;DX=0F08CL=04INT20;CS=00A7IP=1072先通過(guò)-A指令輸入程序,再通過(guò)-T指令輸出結(jié)果,部分程序運(yùn)行結(jié)如下:實(shí)驗(yàn)結(jié)果與理論分析相同。六,實(shí)驗(yàn)結(jié)果六、實(shí)驗(yàn)小結(jié)通過(guò)這次動(dòng)手獨(dú)立完成實(shí)驗(yàn),使匯編程序設(shè)計(jì)語(yǔ)言的一些理論知識(shí)與實(shí)踐相結(jié)合,,鞏固了我的理論知識(shí),第一次接觸匯編實(shí)驗(yàn)有點(diǎn)不知所措,在請(qǐng)教老師后學(xué)習(xí)到DEBUG狀態(tài)是先用-A指令輸入程序代碼,每個(gè)指令都有編號(hào),通過(guò)輸入指令的編號(hào)可以修改輸入過(guò)的指令
8、,然后通過(guò)-T指令輸出每個(gè)指令的結(jié)果。輸了三次程序代碼最后才無(wú)誤的輸入了整個(gè)程序,debug狀態(tài)匯編不能像高級(jí)語(yǔ)言一樣輸入過(guò)程能隨意方便修改代碼有點(diǎn)麻煩,只有通過(guò)耐心認(rèn)真的一個(gè)字母字母輸入程序,體會(huì)匯編程序每個(gè)指令的代表意義和作用。