




已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
匯編語言實驗指導(dǎo)書紀(jì) 平 張 雷 編寫安徽工業(yè)大學(xué)計算機學(xué)院二00四年三月目 錄實驗一 DEBUG的啟動及其基本命令的使用.2實驗二 內(nèi)存操作數(shù)及尋址方法.6實驗三 匯編語言程序的調(diào)試與運行.8實驗四 查表程序設(shè)計10實驗五 系統(tǒng)功能調(diào)用12實驗六 循環(huán)程序設(shè)計13實驗七 分支程序設(shè)計15實驗八 子程序設(shè)計18實驗九 綜合程序設(shè)計20附錄 實驗報告21實驗一 DEBUG的啟動及其基本命令的使用一實驗?zāi)康模?掌握DEBUG 的基本命令及其功能二實驗內(nèi)容:DEBUG是專門為匯編語言設(shè)計的一種調(diào)試工具,它通過步進,設(shè)置斷點等方式為匯編語言程序員提供了非常有效的調(diào)試手段。1、DEBUG程序的啟動在DOS提示符下,可鍵入命令:CDEBUGd:path文件名 參數(shù)1參數(shù)2其中文件名是被調(diào)試文件的名稱,它須是執(zhí)行文件(EXE),兩個參數(shù)是運行被調(diào)試文件時所需要的命令參數(shù),在DEBUG程序調(diào)入后,出現(xiàn)提示符“-”,此時,可鍵入所需的DEBUG命令。在啟動DEBUG時,如果輸入了文件名,則DEBUG程序把指定文件裝入內(nèi)存。用戶可以通過DEBUG的命令對指定文件進行修改、顯示和執(zhí)行。如果沒有文件名,則是以當(dāng)前內(nèi)存的內(nèi)容工作,或者用命名命令和裝入命令把需要的文件裝入內(nèi)存,然后再用DEBUG的命令進行修改、顯示和執(zhí)行。2、DEBUG的主要命令(1) 匯編命令A(yù),格式為:-A地址該命令從指定地址開始允許輸入?yún)R編語句,把它們匯編成機器代碼相繼存放在從指定地址開始的存儲器中。(2) 反匯編命令U,有兩種格式:1)-U地址該命令從指定地址開始,反匯編32個字節(jié),若地址省略,則從上一個U命令的最后一條指令的下一個單元開始顯示32個字節(jié)。2)-U范圍該命令對指定范圍的內(nèi)存單元進行反匯編,例如:-U 04BA:0100 0108或 U 04BA:0100 L9此二命令是等效的。(3) 運行命令G,格式為:-G =地址1地址2地址3。其中地址1規(guī)定了運行起始地址,后面的若干地址均為斷點地址。(4) 追蹤命令T,有兩種格式:1)逐條指令追蹤:-T=地址該命令從指定地址起執(zhí)行一條指令后停下來,顯示寄存器內(nèi)容和狀態(tài)值。2)多條指令追蹤:-T=地址值該命令從指定地址起執(zhí)行n條命令后停下來,n由值確定。(5) 顯示內(nèi)存單元內(nèi)容的命令D,格式為:-D地址或-D范圍(6) 修改內(nèi)存單元內(nèi)容的命令E,它有兩種格式:1)用給定的內(nèi)容代替指定范圍的單元內(nèi)容:-E地址 內(nèi)容表 例如:-E 2000:0100 F3 “XYZ” 8D其中F3,“X”“Y”“Z”和8D各占一個字節(jié),用這五個字節(jié)代替原內(nèi)存單元2000:0100到0104的內(nèi)容,“X”“Y”“Z”將分別按它們的ASCII碼值代入。2)逐個單元相繼地修改:-E地址例如:-E 100:18E4:0100 89.78此命令是將原100號單元的內(nèi)容89改為78。78是程序員鍵入的。(7) 檢查和修改寄存器內(nèi)容的命令R,它有三種方式:1)顯示CPU內(nèi)部所有寄存器內(nèi)容和標(biāo)志位狀態(tài);格式為:-RR命令顯示中標(biāo)志位狀態(tài)的含義如下表所示:標(biāo) 志 名置 位復(fù) 位溢出Overflow(是/否)OVNV方向Direction(減量/增量)DNUP中斷Interrupt(允許/屏蔽)EIDI符號Sign(負(fù)/正)NGPL零Zero(是/否)ZRNZ輔助進位Auxiliary Carry(是/否)ACNA奇偶Parity(偶/奇)PEPO進位Carry(是/否)CYNC2)顯示和修改某個指定寄存器內(nèi)容,格式為:-R 寄存器名例如打入:-R AX系統(tǒng)將響應(yīng)如下:AX FIF4:表示AX當(dāng)前內(nèi)容為F1F4,此時若不對其作修改,可按ENTER鍵,否則,打入修改后內(nèi)容,如:-R BXBX 0369:059F則BX內(nèi)容由0369改為059F3)顯示和修改標(biāo)志位狀態(tài),命令格式為:-RF系統(tǒng)將給出響應(yīng),如OV DN EI NG ZR AC PE CY-這時若不作修改可按ENTER鍵,否則在“-”號之后鍵入修改值,鍵入順序任意。如OV DN EI NG ZR AC PE CY-PONZDINV(8) 命名命令N,格式為:-N 文件名此命令將文件名格式化在CS:5CH的文件控制塊內(nèi),以便使用L或W命令把文件裝入內(nèi)存進行調(diào)試或者存盤。(9) 裝入命令L,它有兩種功能:1)把磁盤上指定扇區(qū)的內(nèi)容裝入到內(nèi)存指定地址起始的單元中,格式為:-L 地址 驅(qū)動器 扇區(qū)號 扇區(qū)數(shù)2)裝入指定文件,格式為:-L 地址此命令裝入已在CS:5CH中格式化的文件控制塊所指定的文件。在用L命令前,BX和CX中應(yīng)包含所讀文件的字節(jié)數(shù)。(10)寫命令W,有兩種格式:1)把數(shù)據(jù)寫入磁盤的指定扇區(qū):-W 地址 驅(qū)動器 扇區(qū)號 扇區(qū)數(shù)2)把數(shù)據(jù)寫入指定文件中:-W 地址此命令把指定內(nèi)存區(qū)域中的數(shù)據(jù)寫入由CS:5CH處的FCB所規(guī)定的文件中。在用W命令前,BX和CX中應(yīng)包含要寫入文件的字節(jié)數(shù)。(11)退出DEBUG命令Q,該命令格式為Q它退出DEBUG程序,返回DOS,但該命令本身并不把在內(nèi)存中的文件存盤,如需存盤,應(yīng)在執(zhí)行Q命令前先執(zhí)行寫命令W。三實驗要求: 用匯編語言編寫一個計算“3+5”的加法程序四實驗報告:寫出在DEBUG狀態(tài)下編寫、運行程序的過程以及調(diào)試所中遇到的問題是如何解決的,并對調(diào)試過程中的問題進行分析,對執(zhí)行結(jié)果進行分析。實驗二 內(nèi)存操作數(shù)及尋址方法一實驗?zāi)康模?、熟練掌握DEBUG的常用命令,學(xué)會用DEBUG調(diào)試程序。2、掌握數(shù)據(jù)在內(nèi)存中的存放方式和內(nèi)存操作數(shù)的幾種尋址方式。3、掌握簡單指令的執(zhí)行過程。二實驗內(nèi)容:1、設(shè)堆棧指針SP=2000H,AX=3000H,BX=5000H;請編一程序段將AX和BX的內(nèi)容進行交換。請用堆棧作為兩寄存器交換內(nèi)容的中間存儲單元,用DEBUG調(diào)試程序進行匯編與調(diào)試。2、設(shè)DS=當(dāng)前段地址,BX=0300H,SI=0002H;請用DEBUG的命令將存儲器偏移地址300H304H連續(xù)單元順序裝入0AH,0BH,0CH,0DH,0EH。在DEBUG狀態(tài)下送入下面程序,并用單步執(zhí)行的方法,分析每條指令源地址的形成過程,當(dāng)數(shù)據(jù)傳送完畢時,AX中的內(nèi)容是什么。程序清單如下:MOV AX,BXMOV AX,0304HMOV AX,0304HMOV AX,BXMOV AX,0001BXMOV AX,BXSIMOV AX,0001BXSIHLT三實驗要求:1、實驗前要做好充分準(zhǔn)備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對程序結(jié)果的分析等。2、本實驗只要求在DEBUG調(diào)試程序狀態(tài)下進行,包括匯編程序、調(diào)試程序和執(zhí)行程序。四實驗報告:1、程序說明。說明程序的功能、結(jié)構(gòu)。2、調(diào)試說明。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試所遇到的問題是如何解決的,并對調(diào)試過程中的問題進行分析,對執(zhí)行結(jié)果進行分析。3、寫出源程序清單和執(zhí)行結(jié)果。實驗三 匯編語言程序的調(diào)試與運行一實驗?zāi)康?學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運算指令的用法2熟悉在PC機上編輯、匯編、連接、調(diào)試和運行匯編語言程序的過程。二實驗內(nèi)容將兩個多位十進制數(shù)相加,要求被加數(shù)和加數(shù)均以ASCII碼形式各自順序存放在DATA1和DATA2為首的5個內(nèi)存單元中,結(jié)果送回DATA1處。三程序框圖圖3.1 兩個多位十進制相加程序流程圖四調(diào)試步驟1編輯源程序,建立一個以后綴為 ASM的文件.2匯編源程序,檢查程序有否錯誤,有錯時回到編輯狀態(tài),修改程序中錯誤行。無錯時繼續(xù)第3步。3連接目標(biāo)程序,產(chǎn)生可執(zhí)行程序。4DEBUG調(diào)試可執(zhí)行程序,記錄數(shù)據(jù)段的內(nèi)容。 5在操作系統(tǒng)狀態(tài)下,運行程序,并記錄屏幕顯示內(nèi)容。被 加 數(shù)加 數(shù)屏 幕 顯 示 內(nèi) 容127320681510732436916508717631五思考題1 將上述程序改為5位數(shù)相加,結(jié)果為6位數(shù)的加法程序。(需考慮進位)2 簡單敘述上機步驟,調(diào)試方法。實驗四 查表程序設(shè)計一實驗?zāi)康模?、熟練掌握編寫匯編語言原程序的基本方法和基本框架。2、掌握查表法和查表指令XLAT。3、熟練使用DEBUG調(diào)試程序。二實驗內(nèi)容:用查表的方法將一位十六進制數(shù)轉(zhuǎn)換成與它相應(yīng)的ASCII碼,并將結(jié)果存放到ASCI單元中。三編程提示:既然指定用查表的方法,那么首先要建立一個表TABLE。我們在表中按照十六進制數(shù)從小到大的順序放入他們對應(yīng)的ASCII碼值。DATA SEGMENTTABLE DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46HHEX DB X ;X為待轉(zhuǎn)換的十六進制數(shù)ASCI DB ?;存放轉(zhuǎn)換后的ASCII碼DATA ENDS四實驗要求:實驗前要做好充分準(zhǔn)備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對程序結(jié)果的分析等五實驗報告: 1、程序說明。說明程序的功能、結(jié)構(gòu)。2、調(diào)試說明。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試所遇到的問題是如何解決的,并對調(diào)試過程中的問題進行分析,對執(zhí)行結(jié)果進行分析。3、寫出源程序清單和執(zhí)行結(jié)果。 實驗五 系統(tǒng)功能調(diào)用一實驗?zāi)康模?、掌握接受鍵盤數(shù)據(jù)的方法,并了解將鍵盤數(shù)據(jù)顯示時,須轉(zhuǎn)為ASCII碼的原理。2、掌握DOS功能調(diào)用的編程方法。二實驗內(nèi)容:試編寫一個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。三編程提示:利用DOS功能調(diào)用INT21H的1號功能從鍵盤輸入字符和2號功能在顯示器上顯示一個字符。四實驗要求:實驗前要做好充分準(zhǔn)備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對程序結(jié)果的分析等。五實驗報告:1、程序說明。說明程序的功能、結(jié)構(gòu)。2、調(diào)試說明。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試所遇到的問題是如何解決的,并對調(diào)試過程中的問題進行分析,對執(zhí)行結(jié)果進行分析。3、寫出源程序清單和執(zhí)行結(jié)果。實驗六 分支程序設(shè)計一實驗?zāi)康模?、掌握分支程序的結(jié)構(gòu)。2、掌握分支程序的設(shè)計、調(diào)試方法。二實驗內(nèi)容:假設(shè)有一組數(shù)據(jù):5,-4,0,3,100,-51,請編一程序,判斷:每個數(shù)大于0,等于0,還是小于0;并輸出其判斷結(jié)果。即: 1 當(dāng)x0y= 0 當(dāng)x=0 -1 當(dāng)x0三實驗要求:實驗前要做好充分準(zhǔn)備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對程序結(jié)果的分析等。四編程提示:1、首先將原始數(shù)據(jù)裝入起始地址為XX的字節(jié)存儲單元中。2、將判斷結(jié)果以字符串的形式存放在數(shù)據(jù)區(qū)中,以便在顯示輸出時調(diào)用。3、其中判斷部分可采用CMP指令,得到一個分支結(jié)構(gòu),分別輸出“y=0”, “y=1”, “y=-1”。4、程序中存在一個循環(huán)結(jié)構(gòu),循環(huán)6次,調(diào)用6次分支結(jié)構(gòu)后結(jié)束。五思考題:程序中的原始數(shù)據(jù)是以怎樣的形式存放在數(shù)據(jù)區(qū)中的?請用DEBUG調(diào)試程序觀察并分析。六實驗報告:1、程序說明。說明程序的功能、結(jié)構(gòu)。2、調(diào)試說明。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試所遇到的問題是如何解決的,并對調(diào)試過程中的問題進行分析,對執(zhí)行結(jié)果進行分析。3、畫出程序框圖。4、寫出源程序清單和執(zhí)行結(jié)果。5、回答思考題。實驗七 循環(huán)程序設(shè)計一實驗?zāi)康? 掌握循環(huán)程序設(shè)計的方法(兩重性循環(huán)結(jié)構(gòu))2 掌握正確分配與使用寄存器。二實驗內(nèi)容與要求以GRADE為首地址的10個字的數(shù)組中保存有學(xué)生成績。建立一個10個字的RNAK 數(shù)組,并根據(jù)GRADE中的學(xué)生成績將學(xué)生名次填入RANK數(shù)組中(提示:一個學(xué)生的名次等于成績高于等于該學(xué)生的人數(shù)加1)。 寄存器分配情況說明如下: AX 存放當(dāng)前被測學(xué)生的成績 BX 存放當(dāng)前被測學(xué)生的相對地址指針 CX 內(nèi)循環(huán)計數(shù)值 DX 存放當(dāng)前被測學(xué)生的名次計數(shù)值 SI 內(nèi)循環(huán)測試時的地址指針 DI 外循環(huán)計數(shù)值三程序框圖圖71 程序框圖四思考題1改為通過鍵盤輸入方式提供學(xué)生成績。2將成績與名次在屏幕上顯示。3指出控制循環(huán)程序的方法,并劃分該程序的四個組成部分實驗八 子程序設(shè)計一實驗?zāi)康?掌握程序設(shè)計方法,合理劃分層次2掌握子程序的調(diào)用與返回的方法3了解子程序的嵌套與遞歸二實驗內(nèi)容與要求編制一程序,要求鍵入一個班的學(xué)生成績,并存放于50字的ERADE數(shù)組中,然后根據(jù)ERADE中的成績,把學(xué)生名次填入50字的RANK數(shù)組中,再按學(xué)號順序把名次從終端上顯示出來。提示: 程序MAIN 功能:根據(jù)輸入的學(xué)生成績,計算并顯示出學(xué)生名次。 程序INPUT 功能:接收一個班級學(xué)生的成績,各成績之間用空格隔開。 程序RANKP 功能:計算一個班級學(xué)生的名次。(可參照循環(huán)程序(一)中的程序段) 程序OUTPUT 功能:輸出(顯示)一個班級的學(xué)生名次 程序DECIBIN 功能:十進制轉(zhuǎn)換二進制,存入BX 程序BINDEC 功能:十進制轉(zhuǎn)換二進制,并在屏幕上顯示。 程序DEC_DIV功能:BX的內(nèi)容除以CX的內(nèi)容,并在屏幕上顯示一位商。三程序框圖: 圖81 程序流程圖四步驟1自編主程序與子程序。2輸入本班級某門基礎(chǔ)課成績。 五思考題 1寫出4位BCD碼轉(zhuǎn)二進制數(shù)的算法。2寫出AX中進二制數(shù)轉(zhuǎn)BCD碼的算法。3將上述子程序結(jié)構(gòu)改為模塊化程序設(shè)計。實驗九 綜合程序設(shè)計一實驗?zāi)康模?、掌握分支、循環(huán)、子程序調(diào)用、DOS功能調(diào)用等基本的程序結(jié)構(gòu)。2、掌握綜合程序的編制及調(diào)試方法。二實驗內(nèi)容:設(shè)有十個學(xué)生成績分別是76,69,84,90,73,88,99,63,100和80分。試編制一個子程序,統(tǒng)計低于60分,6069分,7079分,8089分,9099分和100分的人數(shù),并輸出顯示統(tǒng)計結(jié)果。三編程提示:1、成績分等部分采用分支結(jié)構(gòu),統(tǒng)計所有成績則用循環(huán)結(jié)構(gòu)完成,顯示統(tǒng)計結(jié)果采用DOS功能調(diào)用。2、統(tǒng)計學(xué)生成績和顯示統(tǒng)計結(jié)果兩部分內(nèi)容用子程序結(jié)構(gòu)來完成。四實驗報告:1、程序說明。說明程序的功能、結(jié)構(gòu)。2、調(diào)試說明。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試所遇到的問題是如何解決的,并對調(diào)試過程中的問題進行分析,對執(zhí)行結(jié)果進行分析。3、畫出程序框圖。4、寫出源程序清單和執(zhí)行結(jié)果。5、體會和意見。 實驗報告系 班級 學(xué)號 姓名 同組者 指導(dǎo)教師 實驗報告系 班級 學(xué)號 姓名 同組者 指導(dǎo)教師 實驗報告系 班級 學(xué)號 姓名 同組者 指導(dǎo)教師 實驗報告系 班級 學(xué)號 姓名 同組者 指導(dǎo)教師 實驗報告系 班級 學(xué)號 姓名 同組者 指導(dǎo)教師 實驗報告系 班級 學(xué)號 姓名 同組者 指導(dǎo)教師 實驗報告系 班級 學(xué)號 姓名 同組者 指導(dǎo)教師 實驗報告系 班級 學(xué)號 姓名 同組者 指導(dǎo)教師 實驗報告系 班級 學(xué)號 姓
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 豪華專車租賃合同協(xié)議
- 超大樓梯出售合同協(xié)議
- 設(shè)備合作開發(fā)協(xié)議合同
- 購買五黑雞合同協(xié)議
- 超市商家合作合同協(xié)議
- 誘導(dǎo)解除合同協(xié)議書范本
- 財務(wù)培訓(xùn)合同協(xié)議書范本
- 財務(wù)裝訂憑證合同協(xié)議
- angular面試題目及答案
- 2025年大學(xué)化學(xué)項目試題及答案
- 2024年煙臺龍口市衛(wèi)生健康局所屬事業(yè)單位招聘工作人員筆試真題
- 四川達州鋼鐵集團招聘筆試題庫2025
- 2025年FRM金融風(fēng)險管理師考試專業(yè)試卷(金融風(fēng)險管理案例分析)
- 檢驗科質(zhì)量安全制度和流程
- 施工電梯安裝方案 完整版
- 西部計劃考試考題及答案
- 譯林版英語三年級下冊單詞表
- 農(nóng)村安全用電知識宣傳培訓(xùn)
- 《門診醫(yī)療質(zhì)量管理》課件
- 【地理】俄羅斯第1課時 課件-2024-2025學(xué)年七年級地理下冊(湘教版2024)
- 船舶與海洋工程行業(yè)作業(yè)指導(dǎo)書
評論
0/150
提交評論