新版匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書(shū)精_第1頁(yè)
新版匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書(shū)精_第2頁(yè)
新版匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書(shū)精_第3頁(yè)
新版匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書(shū)精_第4頁(yè)
新版匯編語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書(shū)精_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、匯編語(yǔ)言實(shí)驗(yàn)指導(dǎo)書(shū)目錄實(shí)驗(yàn)一DEBUG的啟動(dòng)及其基本命令的使用 (2實(shí)驗(yàn)二內(nèi)存操作數(shù)及尋址方法 (6實(shí)驗(yàn)三匯編語(yǔ)言程序的調(diào)試與運(yùn)行 (8實(shí)驗(yàn)四查表程序設(shè)計(jì) (10實(shí)驗(yàn)五系統(tǒng)功能調(diào)用 (12實(shí)驗(yàn)六循環(huán)程序設(shè)計(jì) (13實(shí)驗(yàn)七分支程序設(shè)計(jì) (15實(shí)驗(yàn)八子程序設(shè)計(jì) (18實(shí)驗(yàn)九綜合程序設(shè)計(jì) (20附錄實(shí)驗(yàn)報(bào)告 (21實(shí)驗(yàn)一DEBUG的啟動(dòng)及其基本命令的使用一.實(shí)驗(yàn)?zāi)康?掌握DEBUG 的基本命令及其功能二.實(shí)驗(yàn)內(nèi)容:DEBUG是專(zhuān)門(mén)為匯編語(yǔ)言設(shè)計(jì)的一種調(diào)試工具,它通過(guò)步進(jìn),設(shè)置斷點(diǎn)等方式為匯編語(yǔ)言程序員提供了非常有效的調(diào)試手段。1、DEBUG程序的啟動(dòng)在DOS提示符下,可鍵入命令:C>DEBUG

2、d:path文件名 參數(shù)1參數(shù)2其中文件名是被調(diào)試文件的名稱(chēng),它須是執(zhí)行文件(EXE,兩個(gè)參數(shù)是運(yùn)行被調(diào)試文件時(shí)所需要的命令參數(shù),在DEBUG程序調(diào)入后,出現(xiàn)提示符“-”,此時(shí),可鍵入所需的DEBUG命令。在啟動(dòng)DEBUG時(shí),如果輸入了文件名,則DEBUG程序把指定文件裝入內(nèi)存。用戶(hù)可以通過(guò)DEBUG的命令對(duì)指定文件進(jìn)行修改、顯示和執(zhí)行。如果沒(méi)有文件名,則是以當(dāng)前內(nèi)存的內(nèi)容工作,或者用命名命令和裝入命令把需要的文件裝入內(nèi)存,然后再用DEBUG的命令進(jìn)行修改、顯示和執(zhí)行。2、DEBUG的主要命令(1匯編命令A(yù),格式為:-A地址該命令從指定地址開(kāi)始允許輸入?yún)R編語(yǔ)句,把它們匯編成機(jī)器代碼相繼存放在從

3、指定地址開(kāi)始的存儲(chǔ)器中。(2反匯編命令U,有兩種格式:1-U地址該命令從指定地址開(kāi)始,反匯編32個(gè)字節(jié),若地址省略,則從上一個(gè)U命令的最后一條指令的下一個(gè)單元開(kāi)始顯示32個(gè)字節(jié)。2-U范圍該命令對(duì)指定范圍的內(nèi)存單元進(jìn)行反匯編,例如:-U 04BA:0100 0108或U 04BA:0100 L9此二命令是等效的。(3運(yùn)行命令G,格式為:-G =地址1地址2地址3。其中地址1規(guī)定了運(yùn)行起始地址,后面的若干地址均為斷點(diǎn)地址。(4追蹤命令T,有兩種格式:1逐條指令追蹤:-T=地址該命令從指定地址起執(zhí)行一條指令后停下來(lái),顯示寄存器內(nèi)容和狀態(tài)值。2多條指令追蹤:-T=地址值該命令從指定地址起執(zhí)行n條命令

4、后停下來(lái),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各占一個(gè)字節(jié),用這五個(gè)字節(jié)代替原內(nèi)存單元2000:0100到0104的內(nèi)容,“X”“Y”“Z”將分別按它們的ASCII碼值代入。2逐個(gè)單元相繼地修改:-E地址例如:-E 100:18E4:0100 89.78此命令是將原100號(hào)單元的內(nèi)容89改為78。78是程序員鍵入的。(7檢查和修改寄存器內(nèi)容的命令R,它有三種方式:1顯示CPU內(nèi)部所

5、有寄存器內(nèi)容和標(biāo)志位狀態(tài);格式為:-R 2顯示和修改某個(gè)指定寄存器內(nèi)容,格式為:-R 寄存器名例如打入:-R AX系統(tǒng)將響應(yīng)如下:AX FIF4:表示AX當(dāng)前內(nèi)容為F1F4,此時(shí)若不對(duì)其作修改,可按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-這時(shí)若不作修改可按ENTER鍵,否則在“-”號(hào)之后鍵入修改值,鍵入順序任意。如OV DN EI NG ZR AC PE CY-PONZDINV(8命名命令N,格式為:-N 文件名此命令將文

6、件名格式化在CS:5CH的文件控制塊內(nèi),以便使用L 或W命令把文件裝入內(nèi)存進(jìn)行調(diào)試或者存盤(pán)。(9裝入命令L,它有兩種功能:1把磁盤(pán)上指定扇區(qū)的內(nèi)容裝入到內(nèi)存指定地址起始的單元中,格式為:-L 地址驅(qū)動(dòng)器扇區(qū)號(hào)扇區(qū)數(shù)2裝入指定文件,格式為:-L 地址此命令裝入已在CS:5CH中格式化的文件控制塊所指定的文件。在用L命令前,BX和CX中應(yīng)包含所讀文件的字節(jié)數(shù)。(10寫(xiě)命令W,有兩種格式:1把數(shù)據(jù)寫(xiě)入磁盤(pán)的指定扇區(qū):-W 地址驅(qū)動(dòng)器扇區(qū)號(hào)扇區(qū)數(shù)2把數(shù)據(jù)寫(xiě)入指定文件中:-W 地址此命令把指定內(nèi)存區(qū)域中的數(shù)據(jù)寫(xiě)入由CS:5CH處的FCB所規(guī)定的文件中。在用W命令前,BX和CX中應(yīng)包含要寫(xiě)入文件的字節(jié)數(shù)。

7、(11退出DEBUG命令Q,該命令格式為Q它退出DEBUG程序,返回DOS,但該命令本身并不把在內(nèi)存中的文件存盤(pán),如需存盤(pán),應(yīng)在執(zhí)行Q命令前先執(zhí)行寫(xiě)命令W。三.實(shí)驗(yàn)要求:用匯編語(yǔ)言編寫(xiě)一個(gè)計(jì)算“3+5”的加法程序四.實(shí)驗(yàn)報(bào)告:寫(xiě)出在DEBUG狀態(tài)下編寫(xiě)、運(yùn)行程序的過(guò)程以及調(diào)試所中遇到的問(wèn)題是如何解決的,并對(duì)調(diào)試過(guò)程中的問(wèn)題進(jìn)行分析,對(duì)執(zhí)行結(jié)果進(jìn)行分析。實(shí)驗(yàn)二內(nèi)存操作數(shù)及尋址方法一.實(shí)驗(yàn)?zāi)康?1、熟練掌握DEBUG的常用命令,學(xué)會(huì)用DEBUG調(diào)試程序。2、掌握數(shù)據(jù)在內(nèi)存中的存放方式和內(nèi)存操作數(shù)的幾種尋址方式。3、掌握簡(jiǎn)單指令的執(zhí)行過(guò)程。二.實(shí)驗(yàn)內(nèi)容:1、設(shè)堆棧指針SP=2000H,AX=3000

8、H,BX=5000H;請(qǐng)編一程序段將AX和BX的內(nèi)容進(jìn)行交換。請(qǐng)用堆棧作為兩寄存器交換內(nèi)容的中間存儲(chǔ)單元,用DEBUG調(diào)試程序進(jìn)行匯編與調(diào)試。2、設(shè)DS=當(dāng)前段地址,BX=0300H,SI=0002H;請(qǐng)用DEBUG的命令將存儲(chǔ)器偏移地址300H304H連續(xù)單元順序裝入0AH,0BH,0CH,0DH, 0EH。在DEBUG狀態(tài)下送入下面程序,并用單步執(zhí)行的方法,分析每條指令源地址的形成過(guò)程,當(dāng)數(shù)據(jù)傳送完畢時(shí),AX中的內(nèi)容是什么。程序清單如下:MOV AX,BXMOV AX,0304HMOV AX,0304HMOV AX,BXMOV AX,0001BXMOV AX,BXSIMOV AX,0001

9、BXSIHLT三.實(shí)驗(yàn)要求:1、實(shí)驗(yàn)前要做好充分準(zhǔn)備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對(duì)程序結(jié)果的分析等。2、本實(shí)驗(yàn)只要求在DEBUG調(diào)試程序狀態(tài)下進(jìn)行,包括匯編程序、調(diào)試程序和執(zhí)行程序。四.實(shí)驗(yàn)報(bào)告:1、程序說(shuō)明。說(shuō)明程序的功能、結(jié)構(gòu)。2、調(diào)試說(shuō)明。包括上機(jī)調(diào)試的情況、上機(jī)調(diào)試步驟、調(diào)試所遇到的問(wèn)題是如何解決的,并對(duì)調(diào)試過(guò)程中的問(wèn)題進(jìn)行分析,對(duì)執(zhí)行結(jié)果進(jìn)行分析。3、寫(xiě)出源程序清單和執(zhí)行結(jié)果。實(shí)驗(yàn)三匯編語(yǔ)言程序的調(diào)試與運(yùn)行一.實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運(yùn)算指令的用法2.熟悉在PC機(jī)上編輯、匯編、連接、調(diào)試和運(yùn)行匯編語(yǔ)言程序的過(guò)程。二.實(shí)驗(yàn)內(nèi)容將兩個(gè)多位十進(jìn)制數(shù)相加,要求被加數(shù)和加

10、數(shù)均以ASCII碼形式各自順序存放在DA TA1和DA TA2為首的5個(gè)內(nèi)存單元中,結(jié)果送回DA TA1處。三.程序框圖 圖3.1 兩個(gè)多位十進(jìn)制相加程序流程圖四.調(diào)試步驟1.編輯源程序,建立一個(gè)以后綴為.ASM的文件.2.匯編源程序,檢查程序有否錯(cuò)誤,有錯(cuò)時(shí)回到編輯狀態(tài),修改程序中錯(cuò)誤行。無(wú)錯(cuò)時(shí)繼續(xù)第3步。3.連接目標(biāo)程序,產(chǎn)生可執(zhí)行程序。4.DEBUG調(diào)試可執(zhí)行程序,記錄數(shù)據(jù)段的內(nèi)容。5.在操作系統(tǒng)狀態(tài)下,運(yùn)行程序,并記錄屏幕顯示內(nèi)容。 五.思考題1.將上述程序改為5位數(shù)相加,結(jié)果為6位數(shù)的加法程序。(需考慮進(jìn)位2.簡(jiǎn)單敘述上機(jī)步驟,調(diào)試方法。實(shí)驗(yàn)四查表程序設(shè)計(jì)一.實(shí)驗(yàn)?zāi)康?1、熟練掌握編

11、寫(xiě)匯編語(yǔ)言原程序的基本方法和基本框架。2、掌握查表法和查表指令XLAT。3、熟練使用DEBUG調(diào)試程序。二.實(shí)驗(yàn)內(nèi)容:用查表的方法將一位十六進(jìn)制數(shù)轉(zhuǎn)換成與它相應(yīng)的ASCII碼,并將結(jié)果存放到ASCI單元中。三.編程提示:既然指定用查表的方法,那么首先要建立一個(gè)表TABLE。我們?cè)诒碇邪凑帐M(jìn)制數(shù)從小到大的順序放入他們對(duì)應(yīng)的ASCII碼值。DA TA SEGMENTTABLE DB 30H,31H,32H,33H,34H,35H,36H,37HDB 38H,39H,41H,42H,43H,44H,45H,46H HEX DB X ;X為待轉(zhuǎn)換的十六進(jìn)制數(shù)ASCI DB ?;存放轉(zhuǎn)換后的ASCI

12、I碼DA TA ENDS四.實(shí)驗(yàn)要求:實(shí)驗(yàn)前要做好充分準(zhǔn)備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對(duì)程序結(jié)果的分析等五.實(shí)驗(yàn)報(bào)告:1、程序說(shuō)明。說(shuō)明程序的功能、結(jié)構(gòu)。2、調(diào)試說(shuō)明。包括上機(jī)調(diào)試的情況、上機(jī)調(diào)試步驟、調(diào)試所遇到的問(wèn)題是如何解決的,并對(duì)調(diào)試過(guò)程中的問(wèn)題進(jìn)行分析,對(duì)執(zhí)行結(jié)果進(jìn)行分析。3、寫(xiě)出源程序清單和執(zhí)行結(jié)果。實(shí)驗(yàn)五系統(tǒng)功能調(diào)用一.實(shí)驗(yàn)?zāi)康?1、掌握接受鍵盤(pán)數(shù)據(jù)的方法,并了解將鍵盤(pán)數(shù)據(jù)顯示時(shí),須轉(zhuǎn)為ASCII碼的原理。2、掌握DOS功能調(diào)用的編程方法。二.實(shí)驗(yàn)內(nèi)容:試編寫(xiě)一個(gè)匯編語(yǔ)言程序,要求對(duì)鍵盤(pán)輸入的小寫(xiě)字母用大寫(xiě)字母顯示出來(lái)。三.編程提示:利用DOS功能調(diào)用INT21H的

13、1號(hào)功能從鍵盤(pán)輸入字符和2號(hào)功能在顯示器上顯示一個(gè)字符。四.實(shí)驗(yàn)要求:實(shí)驗(yàn)前要做好充分準(zhǔn)備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對(duì)程序結(jié)果的分析等。五.實(shí)驗(yàn)報(bào)告:1、程序說(shuō)明。說(shuō)明程序的功能、結(jié)構(gòu)。2、調(diào)試說(shuō)明。包括上機(jī)調(diào)試的情況、上機(jī)調(diào)試步驟、調(diào)試所遇到的問(wèn)題是如何解決的,并對(duì)調(diào)試過(guò)程中的問(wèn)題進(jìn)行分析,對(duì)執(zhí)行結(jié)果進(jìn)行分析。3、寫(xiě)出源程序清單和執(zhí)行結(jié)果。實(shí)驗(yàn)六分支程序設(shè)計(jì)一.實(shí)驗(yàn)?zāi)康?1、掌握分支程序的結(jié)構(gòu)。2、掌握分支程序的設(shè)計(jì)、調(diào)試方法。二.實(shí)驗(yàn)內(nèi)容:假設(shè)有一組數(shù)據(jù):5,-4,0,3,100,-51,請(qǐng)編一程序,判斷:每個(gè)數(shù)大于0,等于0,還是小于0;并輸出其判斷結(jié)果。即: 1 當(dāng)x

14、>0y= 0 當(dāng)x=0-1 當(dāng)x<0三.實(shí)驗(yàn)要求:實(shí)驗(yàn)前要做好充分準(zhǔn)備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對(duì)程序結(jié)果的分析等。四.編程提示:1、首先將原始數(shù)據(jù)裝入起始地址為XX的字節(jié)存儲(chǔ)單元中。2、將判斷結(jié)果以字符串的形式存放在數(shù)據(jù)區(qū)中,以便在顯示輸出時(shí)調(diào)用。3、其中判斷部分可采用CMP指令,得到一個(gè)分支結(jié)構(gòu),分別輸出“y=0”, “y=1”, “y=-1”。4、程序中存在一個(gè)循環(huán)結(jié)構(gòu),循環(huán)6次,調(diào)用6次分支結(jié)構(gòu)后結(jié)束。五.思考題:程序中的原始數(shù)據(jù)是以怎樣的形式存放在數(shù)據(jù)區(qū)中的?請(qǐng)用DEBUG 調(diào)試程序觀察并分析。六.實(shí)驗(yàn)報(bào)告:1、程序說(shuō)明。說(shuō)明程序的功能、結(jié)構(gòu)。2、調(diào)試說(shuō)

15、明。包括上機(jī)調(diào)試的情況、上機(jī)調(diào)試步驟、調(diào)試所遇到的問(wèn)題是如何解決的,并對(duì)調(diào)試過(guò)程中的問(wèn)題進(jìn)行分析,對(duì)執(zhí)行結(jié)果進(jìn)行分析。3、畫(huà)出程序框圖。4、寫(xiě)出源程序清單和執(zhí)行結(jié)果。5、回答思考題。實(shí)驗(yàn)七循環(huán)程序設(shè)計(jì)一.實(shí)驗(yàn)?zāi)康?.掌握循環(huán)程序設(shè)計(jì)的方法(兩重性循環(huán)結(jié)構(gòu)2.掌握正確分配與使用寄存器。二.實(shí)驗(yàn)內(nèi)容與要求以GRADE為首地址的10個(gè)字的數(shù)組中保存有學(xué)生成績(jī)。建立一個(gè)10個(gè)字的RNAK 數(shù)組,并根據(jù)GRADE中的學(xué)生成績(jī)將學(xué)生名次填入RANK數(shù)組中(提示:一個(gè)學(xué)生的名次等于成績(jī)高于等于該學(xué)生的人數(shù)加1。寄存器分配情況說(shuō)明如下:AX 存放當(dāng)前被測(cè)學(xué)生的成績(jī)BX 存放當(dāng)前被測(cè)學(xué)生的相對(duì)地址指針CX 內(nèi)循

16、環(huán)計(jì)數(shù)值DX 存放當(dāng)前被測(cè)學(xué)生的名次計(jì)數(shù)值SI 內(nèi)循環(huán)測(cè)試時(shí)的地址指針DI 外循環(huán)計(jì)數(shù)值三.程序框圖 圖7.1 程序框圖四.思考題1.改為通過(guò)鍵盤(pán)輸入方式提供學(xué)生成績(jī)。2.將成績(jī)與名次在屏幕上顯示。3.指出控制循環(huán)程序的方法,并劃分該程序的四個(gè)組成部分實(shí)驗(yàn)八子程序設(shè)計(jì)一.實(shí)驗(yàn)?zāi)康?.掌握程序設(shè)計(jì)方法,合理劃分層次2.掌握子程序的調(diào)用與返回的方法3.了解子程序的嵌套與遞歸二.實(shí)驗(yàn)內(nèi)容與要求編制一程序,要求鍵入一個(gè)班的學(xué)生成績(jī),并存放于50字的ERADE 數(shù)組中,然后根據(jù)ERADE中的成績(jī),把學(xué)生名次填入50字的RANK 數(shù)組中,再按學(xué)號(hào)順序把名次從終端上顯示出來(lái)。提示:程序MAIN功能:根據(jù)輸入

17、的學(xué)生成績(jī),計(jì)算并顯示出學(xué)生名次。程序INPUT功能:接收一個(gè)班級(jí)學(xué)生的成績(jī),各成績(jī)之間用空格隔開(kāi)。程序RANKP功能:計(jì)算一個(gè)班級(jí)學(xué)生的名次。(可參照循環(huán)程序(一中的程序段程序OUTPUT功能:輸出(顯示一個(gè)班級(jí)的學(xué)生名次程序DECIBIN功能:十進(jìn)制轉(zhuǎn)換二進(jìn)制,存入BX程序BINDEC功能:十進(jìn)制轉(zhuǎn)換二進(jìn)制,并在屏幕上顯示。程序DEC_DIV功能:BX的內(nèi)容除以CX的內(nèi)容,并在屏幕上顯示一位商。三.程序框圖: 圖8.1 程序流程圖四.步驟1.自編主程序與子程序。2.輸入本班級(jí)某門(mén)基礎(chǔ)課成績(jī)。五.思考題1.寫(xiě)出4位BCD碼轉(zhuǎn)二進(jìn)制數(shù)的算法。2.寫(xiě)出AX中進(jìn)二制數(shù)轉(zhuǎn)BCD碼的算法。3.將上述子程序結(jié)構(gòu)改為模塊化程序設(shè)計(jì)。實(shí)驗(yàn)九 綜合程序設(shè)計(jì) 一實(shí)驗(yàn)?zāi)康模?1、掌握分支、循環(huán)、子程序調(diào)用、DOS 功能調(diào)用等基本的程序結(jié)構(gòu)。 2、掌握綜合程序的編制及調(diào)試方法。 二實(shí)驗(yàn)內(nèi)容: 設(shè)有十個(gè)學(xué)生成績(jī)分別是 76,69,84,90,73,88,99,63,100 和 80 分。試編制一個(gè)子程序,統(tǒng)計(jì)低于 60 分,6069 分,7079 分,80 89 分,9099 分和 100 分的人數(shù),并輸

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論