匯編語言實驗指導書.doc_第1頁
匯編語言實驗指導書.doc_第2頁
匯編語言實驗指導書.doc_第3頁
匯編語言實驗指導書.doc_第4頁
匯編語言實驗指導書.doc_第5頁
免費預覽已結束,剩余54頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

匯編語言實驗指導書紀 平 張 雷 編寫安徽工業(yè)大學計算機學院二00四年三月目 錄實驗一 DEBUG的啟動及其基本命令的使用.2實驗二 內存操作數及尋址方法.6實驗三 匯編語言程序的調試與運行.8實驗四 查表程序設計10實驗五 系統(tǒng)功能調用12實驗六 循環(huán)程序設計13實驗七 分支程序設計15實驗八 子程序設計18實驗九 綜合程序設計20附錄 實驗報告21實驗一 DEBUG的啟動及其基本命令的使用一實驗目的: 掌握DEBUG 的基本命令及其功能二實驗內容:DEBUG是專門為匯編語言設計的一種調試工具,它通過步進,設置斷點等方式為匯編語言程序員提供了非常有效的調試手段。1、DEBUG程序的啟動在DOS提示符下,可鍵入命令:CDEBUGd:path文件名 參數1參數2其中文件名是被調試文件的名稱,它須是執(zhí)行文件(EXE),兩個參數是運行被調試文件時所需要的命令參數,在DEBUG程序調入后,出現(xiàn)提示符“-”,此時,可鍵入所需的DEBUG命令。在啟動DEBUG時,如果輸入了文件名,則DEBUG程序把指定文件裝入內存。用戶可以通過DEBUG的命令對指定文件進行修改、顯示和執(zhí)行。如果沒有文件名,則是以當前內存的內容工作,或者用命名命令和裝入命令把需要的文件裝入內存,然后再用DEBUG的命令進行修改、顯示和執(zhí)行。2、DEBUG的主要命令(1) 匯編命令A,格式為:-A地址該命令從指定地址開始允許輸入匯編語句,把它們匯編成機器代碼相繼存放在從指定地址開始的存儲器中。(2) 反匯編命令U,有兩種格式:1)-U地址該命令從指定地址開始,反匯編32個字節(jié),若地址省略,則從上一個U命令的最后一條指令的下一個單元開始顯示32個字節(jié)。2)-U范圍該命令對指定范圍的內存單元進行反匯編,例如:-U 04BA:0100 0108或 U 04BA:0100 L9此二命令是等效的。(3) 運行命令G,格式為:-G =地址1地址2地址3。其中地址1規(guī)定了運行起始地址,后面的若干地址均為斷點地址。(4) 追蹤命令T,有兩種格式:1)逐條指令追蹤:-T=地址該命令從指定地址起執(zhí)行一條指令后停下來,顯示寄存器內容和狀態(tài)值。2)多條指令追蹤:-T=地址值該命令從指定地址起執(zhí)行n條命令后停下來,n由值確定。(5) 顯示內存單元內容的命令D,格式為:-D地址或-D范圍(6) 修改內存單元內容的命令E,它有兩種格式:1)用給定的內容代替指定范圍的單元內容:-E地址 內容表 例如:-E 2000:0100 F3 “XYZ” 8D其中F3,“X”“Y”“Z”和8D各占一個字節(jié),用這五個字節(jié)代替原內存單元2000:0100到0104的內容,“X”“Y”“Z”將分別按它們的ASCII碼值代入。2)逐個單元相繼地修改:-E地址例如:-E 100:18E4:0100 89.78此命令是將原100號單元的內容89改為78。78是程序員鍵入的。(7) 檢查和修改寄存器內容的命令R,它有三種方式:1)顯示CPU內部所有寄存器內容和標志位狀態(tài);格式為:-RR命令顯示中標志位狀態(tài)的含義如下表所示:標 志 名置 位復 位溢出Overflow(是/否)OVNV方向Direction(減量/增量)DNUP中斷Interrupt(允許/屏蔽)EIDI符號Sign(負/正)NGPL零Zero(是/否)ZRNZ輔助進位Auxiliary Carry(是/否)ACNA奇偶Parity(偶/奇)PEPO進位Carry(是/否)CYNC2)顯示和修改某個指定寄存器內容,格式為:-R 寄存器名例如打入:-R AX系統(tǒng)將響應如下:AX FIF4:表示AX當前內容為F1F4,此時若不對其作修改,可按ENTER鍵,否則,打入修改后內容,如:-R BXBX 0369:059F則BX內容由0369改為059F3)顯示和修改標志位狀態(tài),命令格式為:-RF系統(tǒng)將給出響應,如OV DN EI NG ZR AC PE CY-這時若不作修改可按ENTER鍵,否則在“-”號之后鍵入修改值,鍵入順序任意。如OV DN EI NG ZR AC PE CY-PONZDINV(8) 命名命令N,格式為:-N 文件名此命令將文件名格式化在CS:5CH的文件控制塊內,以便使用L或W命令把文件裝入內存進行調試或者存盤。(9) 裝入命令L,它有兩種功能:1)把磁盤上指定扇區(qū)的內容裝入到內存指定地址起始的單元中,格式為:-L 地址 驅動器 扇區(qū)號 扇區(qū)數2)裝入指定文件,格式為:-L 地址此命令裝入已在CS:5CH中格式化的文件控制塊所指定的文件。在用L命令前,BX和CX中應包含所讀文件的字節(jié)數。(10)寫命令W,有兩種格式:1)把數據寫入磁盤的指定扇區(qū):-W 地址 驅動器 扇區(qū)號 扇區(qū)數2)把數據寫入指定文件中:-W 地址此命令把指定內存區(qū)域中的數據寫入由CS:5CH處的FCB所規(guī)定的文件中。在用W命令前,BX和CX中應包含要寫入文件的字節(jié)數。(11)退出DEBUG命令Q,該命令格式為Q它退出DEBUG程序,返回DOS,但該命令本身并不把在內存中的文件存盤,如需存盤,應在執(zhí)行Q命令前先執(zhí)行寫命令W。三實驗要求: 用匯編語言編寫一個計算“3+5”的加法程序四實驗報告:寫出在DEBUG狀態(tài)下編寫、運行程序的過程以及調試所中遇到的問題是如何解決的,并對調試過程中的問題進行分析,對執(zhí)行結果進行分析。實驗二 內存操作數及尋址方法一實驗目的:1、熟練掌握DEBUG的常用命令,學會用DEBUG調試程序。2、掌握數據在內存中的存放方式和內存操作數的幾種尋址方式。3、掌握簡單指令的執(zhí)行過程。二實驗內容:1、設堆棧指針SP=2000H,AX=3000H,BX=5000H;請編一程序段將AX和BX的內容進行交換。請用堆棧作為兩寄存器交換內容的中間存儲單元,用DEBUG調試程序進行匯編與調試。2、設DS=當前段地址,BX=0300H,SI=0002H;請用DEBUG的命令將存儲器偏移地址300H304H連續(xù)單元順序裝入0AH,0BH,0CH,0DH,0EH。在DEBUG狀態(tài)下送入下面程序,并用單步執(zhí)行的方法,分析每條指令源地址的形成過程,當數據傳送完畢時,AX中的內容是什么。程序清單如下:MOV AX,BXMOV AX,0304HMOV AX,0304HMOV AX,BXMOV AX,0001BXMOV AX,BXSIMOV AX,0001BXSIHLT三實驗要求:1、實驗前要做好充分準備,包括匯編程序清單、調試步驟、調試方法,以及對程序結果的分析等。2、本實驗只要求在DEBUG調試程序狀態(tài)下進行,包括匯編程序、調試程序和執(zhí)行程序。四實驗報告:1、程序說明。說明程序的功能、結構。2、調試說明。包括上機調試的情況、上機調試步驟、調試所遇到的問題是如何解決的,并對調試過程中的問題進行分析,對執(zhí)行結果進行分析。3、寫出源程序清單和執(zhí)行結果。實驗三 匯編語言程序的調試與運行一實驗目的1學習數據傳送和算術運算指令的用法2熟悉在PC機上編輯、匯編、連接、調試和運行匯編語言程序的過程。二實驗內容將兩個多位十進制數相加,要求被加數和加數均以ASCII碼形式各自順序存放在DATA1和DATA2為首的5個內存單元中,結果送回DATA1處。三程序框圖圖3.1 兩個多位十進制相加程序流程圖四調試步驟1編輯源程序,建立一個以后綴為 ASM的文件.2匯編源程序,檢查程序有否錯誤,有錯時回到編輯狀態(tài),修改程序中錯誤行。無錯時繼續(xù)第3步。3連接目標程序,產生可執(zhí)行程序。4DEBUG調試可執(zhí)行程序,記錄數據段的內容。 5在操作系統(tǒng)狀態(tài)下,運行程序,并記錄屏幕顯示內容。被 加 數加 數屏 幕 顯 示 內 容127320681510732436916508717631五思考題1 將上述程序改為5位數相加,結果為6位數的加法程序。(需考慮進位)2 簡單敘述上機步驟,調試方法。實驗四 查表程序設計一實驗目的:1、熟練掌握編寫匯編語言原程序的基本方法和基本框架。2、掌握查表法和查表指令XLAT。3、熟練使用DEBUG調試程序。二實驗內容:用查表的方法將一位十六進制數轉換成與它相應的ASCII碼,并將結果存放到ASCI單元中。三編程提示:既然指定用查表的方法,那么首先要建立一個表TABLE。我們在表中按照十六進制數從小到大的順序放入他們對應的ASCII碼值。DATA SEGMENTTABLE DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46HHEX DB X ;X為待轉換的十六進制數ASCI DB ?;存放轉換后的ASCII碼DATA ENDS四實驗要求:實驗前要做好充分準備,包括匯編程序清單、調試步驟、調試方法,以及對程序結果的分析等五實驗報告: 1、程序說明。說明程序的功能、結構。2、調試說明。包括上機調試的情況、上機調試步驟、調試所遇到的問題是如何解決的,并對調試過程中的問題進行分析,對執(zhí)行結果進行分析。3、寫出源程序清單和執(zhí)行結果。 實驗五 系統(tǒng)功能調用一實驗目的:1、掌握接受鍵盤數據的方法,并了解將鍵盤數據顯示時,須轉為ASCII碼的原理。2、掌握DOS功能調用的編程方法。二實驗內容:試編寫一個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來。三編程提示:利用DOS功能調用INT21H的1號功能從鍵盤輸入字符和2號功能在顯示器上顯示一個字符。四實驗要求:實驗前要做好充分準備,包括匯編程序清單、調試步驟、調試方法,以及對程序結果的分析等。五實驗報告:1、程序說明。說明程序的功能、結構。2、調試說明。包括上機調試的情況、上機調試步驟、調試所遇到的問題是如何解決的,并對調試過程中的問題進行分析,對執(zhí)行結果進行分析。3、寫出源程序清單和執(zhí)行結果。實驗六 分支程序設計一實驗目的:1、掌握分支程序的結構。2、掌握分支程序的設計、調試方法。二實驗內容:假設有一組數據:5,-4,0,3,100,-51,請編一程序,判斷:每個數大于0,等于0,還是小于0;并輸出其判斷結果。即: 1 當x0y= 0 當x=0 -1 當x0三實驗要求:實驗前要做好充分準備,包括匯編程序清單、調試步驟、調試方法,以及對程序結果的分析等。四編程提示:1、首先將原始數據裝入起始地址為XX的字節(jié)存儲單元中。2、將判斷結果以字符串的形式存放在數據區(qū)中,以便在顯示輸出時調用。3、其中判斷部分可采用CMP指令,得到一個分支結構,分別輸出“y=0”, “y=1”, “y=-1”。4、程序中存在一個循環(huán)結構,循環(huán)6次,調用6次分支結構后結束。五思考題:程序中的原始數據是以怎樣的形式存放在數據區(qū)中的?請用DEBUG調試程序觀察并分析。六實驗報告:1、程序說明。說明程序的功能、結構。2、調試說明。包括上機調試的情況、上機調試步驟、調試所遇到的問題是如何解決的,并對調試過程中的問題進行分析,對執(zhí)行結果進行分析。3、畫出程序框圖。4、寫出源程序清單和執(zhí)行結果。5、回答思考題。實驗七 循環(huán)程序設計一實驗目的1 掌握循環(huán)程序設計的方法(兩重性循環(huán)結構)2 掌握正確分配與使用寄存器。二實驗內容與要求以GRADE為首地址的10個字的數組中保存有學生成績。建立一個10個字的RNAK 數組,并根據GRADE中的學生成績將學生名次填入RANK數組中(提示:一個學生的名次等于成績高于等于該學生的人數加1)。 寄存器分配情況說明如下: AX 存放當前被測學生的成績 BX 存放當前被測學生的相對地址指針 CX 內循環(huán)計數值 DX 存放當前被測學生的名次計數值 SI 內循環(huán)測試時的地址指針 DI 外循環(huán)計數值三程序框圖圖71 程序框圖四思考題1改為通過鍵盤輸入方式提供學生成績。2將成績與名次在屏幕上顯示。3指出控制循環(huán)程序的方法,并劃分該程序的四個組成部分實驗八 子程序設計一實驗目的1掌握程序設計方法,合理劃分層次2掌握子程序的調用與返回的方法3了解子程序的嵌套與遞歸二實驗內容與要求編制一程序,要求鍵入一個班的學生成績,并存放于50字的ERADE數組中,然后根據ERADE中的成績,把學生名次填入50字的RANK數組中,再按學號順序把名次從終端上顯示出來。提示: 程序MAIN 功能:根據輸入的學生成績,計算并顯示出學生名次。 程序INPUT 功能:接收一個班級學生的成績,各成績之間用空格隔開。 程序RANKP 功能:計算一個班級學生的名次。(可參照循環(huán)程序(一)中的程序段) 程序OUTPUT 功能:輸出(顯示)一個班級的學生名次 程序DECIBIN 功能:十進制轉換二進制,存入BX 程序BINDEC 功能:十進制轉換二進制,并在屏幕上顯示。 程序DEC_DIV功能:BX的內容除以CX的內容,并在屏幕上顯示一位商。三程序框圖: 圖81 程序流程圖四步驟1自編主程序與子程序。2輸入本班級某門基礎課成績。 五思考題 1寫出4位BCD碼轉二進制數的算法。2寫出AX中進二制數轉BCD碼的算法。3將上述子程序結構改為模塊化程序設計。實驗九 綜合程序設計一實驗目的:1、掌握分支、循環(huán)、子程序調用、DOS功能調用等基本的程序結構。2、掌握綜合程序的編制及調試方法。二實驗內容:設有十個學生成績分別是76,69,84,90,73,88,99,63,100和80分。試編制一個子程序,統(tǒng)計低于60分,6069分,7079分,8089分,9099分和100分的人數,并輸出顯示統(tǒng)計結果。三編程提示:1、成績分等部分采用分支結構,統(tǒng)計所有成績則用循環(huán)結構完成,顯示統(tǒng)計結果采用DOS功能調用。2、統(tǒng)計學生成績和顯示統(tǒng)計結果兩部分內容用子程序結構來完成。四實驗報告:1、程序說明。說明程序的功能、結構。2、調試說明。包括上機調試的情況、上機調試步驟、調試所遇到的問題是如何解決的,并對調試過程中的問題進行分析,對執(zhí)行結果進行分析。3、畫出程序框圖。4、寫出源程序清單和執(zhí)行結果。5、體會和意見。 實驗報告系 班級 學號 姓名 同組者 指導教師 實驗報告系 班級 學號 姓名 同組者 指導教師 實驗報告系 班級 學號 姓名 同組者 指導教師 實驗報告系 班級 學號 姓名 同組者 指導教師 實驗報告系 班級 學號 姓名 同組者 指導教師 實驗報告系 班級 學號 姓名 同組者 指導教師 實驗報告系 班級 學號 姓名 同組者 指導教師 實驗報告系 班級 學號 姓名 同組者 指導教師 實驗報告系 班級 學號 姓

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論