匯編語(yǔ)言實(shí)驗(yàn)指導(dǎo)_第1頁(yè)
匯編語(yǔ)言實(shí)驗(yàn)指導(dǎo)_第2頁(yè)
匯編語(yǔ)言實(shí)驗(yàn)指導(dǎo)_第3頁(yè)
匯編語(yǔ)言實(shí)驗(yàn)指導(dǎo)_第4頁(yè)
匯編語(yǔ)言實(shí)驗(yàn)指導(dǎo)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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)介

匯編語(yǔ)言實(shí)驗(yàn)實(shí)驗(yàn)一匯編運(yùn)行環(huán)境及方法、簡(jiǎn)單程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模?、熟練匯編語(yǔ)言運(yùn)行環(huán)境和方法。2、了解如何使用匯編語(yǔ)言編制程序。3、熟悉DEBUG常用的命令的使用方法。4、會(huì)使用DEBUG命令調(diào)試程序。二、實(shí)驗(yàn)內(nèi)容:1、比擬兩個(gè)字符串STRING1和STRING2所含的字符是否相同,假設(shè)相同,那么輸出MATCH,不相同那么輸出NOMATCH。 2、學(xué)會(huì)對(duì)匯編語(yǔ)言程序進(jìn)行匯編、連接和運(yùn)行。 3、學(xué)會(huì)用DEBUG中的D命令,E命令,R命令,G命令,F(xiàn)命令,U命令,A命令以及T命令。三、實(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)。檢查兩個(gè)字符串是否相同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)行分析。運(yùn)行e28’forward’3、寫(xiě)出源程序清單和執(zhí)行結(jié)果。實(shí)驗(yàn)清單:datareasegmentstring1db'Movethecursorbackword'string2db'Movethecursorbackword'mess1db'Match.',13,10,'$'mess2db'Nomatch!',13,10,'$'datareaendsprognamsegmentmainprocfarassumecs:prognam,ds:datarea,es:datareastart:pushdssubax,dxpushaxmovax,datareamovds,axmoves,axleasi,string1leadi,string2cldmovcx,25repzcmpsbjzmatchleadx,mess2jmpshortdispmatch:leadx,mess1disp:movah,09int21hmovah,4chint21hmainendpprognamendsendstart實(shí)驗(yàn)二循環(huán)程序設(shè)計(jì)-學(xué)生成績(jī),求每個(gè)學(xué)生的名次一、實(shí)驗(yàn)?zāi)康模?、熟悉循環(huán)、DOS功能調(diào)用等根本的程序結(jié)構(gòu)。2、熟悉多重循環(huán)結(jié)構(gòu)及算法技巧。3、熟練使用DEBUG常用命令查看程序運(yùn)行結(jié)果,以及通過(guò)修改代碼或數(shù)據(jù)來(lái)改變程序運(yùn)行結(jié)果。二、實(shí)驗(yàn)內(nèi)容:設(shè)有十個(gè)學(xué)生成績(jī)分別是88,75,95,63,98,78,87,73,90和60分。試編制一個(gè)程序,求每個(gè)學(xué)生和名次。三、編程提示:1、定義如下的數(shù)據(jù)結(jié)構(gòu):dataSEGMENTgradeDW88,75,95,63,98,78,87,73,90,60rankDW10DUP(?)dataENDS2、通過(guò)雙重循環(huán)實(shí)現(xiàn):對(duì)于數(shù)組的每個(gè)元素(學(xué)生成績(jī)),查找數(shù)組中比該元素值大的元素個(gè)數(shù)I,那么I-1即為該學(xué)生的名次,并將名次依次保存在以rank為首地址的字?jǐn)?shù)組中。四、實(shí)驗(yàn)報(bào)告:1、程序說(shuō)明。說(shuō)明程序的功能、結(jié)構(gòu)。功能:將給出的數(shù)組每個(gè)元素在數(shù)組的大小位置找出來(lái),放到rank數(shù)組中數(shù)據(jù)定義塊:datasegmentgradedw88h,75h,95h,63h,98h,78h,87h,73h,90h,60hrankdw10DUP(?)countdw?dataends代碼塊:codesegmentassumecs:code,ds:datamainprocfarstart:movax,datamovds,axxorax,axmovsi,axmovcount,ax外層循環(huán):lea1lea1:leabx,grademovcx,rank-gradesarcx,1xorax,axleadi,grade內(nèi)層循環(huán)lea2,lea3.lea4lea2:movdx,[di]cmp[bx+si],dxmovdx,wordptr[bx+si]jllea4adddi,2looplea2lea3:movsi,countmov[rank+si],axaddcount,2movsi,countcmpcount,rank-grade返回語(yǔ)句:jelea5jmplea1lea4:incaxadddi,2looplea2jmplea3lea5:movah,4chint21hmainendpcodeendsendstart2、調(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、畫(huà)出程序框圖。4、寫(xiě)出源程序清單和執(zhí)行結(jié)果清單:datasegmentgradedw88h,75h,95h,63h,98h,78h,87h,73h,90h,60hrankdw10DUP(?)countdw?dataendscodesegmentassumecs:code,ds:datamainprocfarstart:movax,datamovds,axxorax,axmovsi,axmovcount,axlea1:leabx,grademovcx,rank-gradesarcx,1xorax,axleadi,gradelea2:movdx,[di]cmp[bx+si],dxmovdx,wordptr[bx+si]jllea4adddi,2looplea2lea3:movsi,countmov[rank+si],axaddcount,2movsi,countcmpcount,rank-gradejelea5jmplea1lea4:incaxadddi,2looplea2jmplea3lea5:movah,4chint21hmainendpcodeendsendstart。5、體會(huì)和意見(jiàn)。實(shí)驗(yàn)三分支程序設(shè)計(jì)-從鍵盤(pán)輸入月份數(shù)值,顯示月份的英文字母一、實(shí)驗(yàn)?zāi)康模?、熟悉分支、DOS功能調(diào)用等根本的程序結(jié)構(gòu)。2、使用DEBUG的A命令、E命令以及R命令修改內(nèi)存中程序代碼、數(shù)據(jù)以及存放器的內(nèi)容,使得程序輸出不同的結(jié)果。二、實(shí)驗(yàn)內(nèi)容:從鍵盤(pán)輸入月份值,如(1-12),顯示月份的英文名稱(chēng)('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC')。三、編程提示:1、定義如下的數(shù)據(jù)結(jié)構(gòu)moninLABELBYTEmaxDB3actDB?monDB3DUP(?)alfmonDB'???',13,10,'$'montabDB‘JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'2、使用DOS系統(tǒng)功能調(diào)用實(shí)現(xiàn)從鍵盤(pán)輸入月份數(shù)值(可能是一位也可能是二位),將月份值的ASCII轉(zhuǎn)換成數(shù)值,根據(jù)此數(shù)值確定月份英文名在字符串?dāng)?shù)組montab中的位置,將該位置連續(xù)三個(gè)字節(jié)拷貝到alfmon單元中,再通過(guò)DOS系統(tǒng)功能調(diào)用顯示alfmon為起始的字符串。四、實(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、畫(huà)出程序框圖。4、寫(xiě)出源程序清單和執(zhí)行結(jié)果。datasegmentpleasedb'pleaseenterthemomth:',13,10,'$'maxDB3actDB?monDB3DUP(?)alfmonDB'???',13,10,'$'montabDB'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'dataendscodesegmentassumeds:data,cs:code,es:datamainprocfarstart:movax,datamovds,axmoves,axlen0:leadx,pleasemovah,09hint21hleadx,maxmovah,0ahint21hmovcl,byteptr[act]xorax,axxorbx,bxxorch,chleasi,monlen1:movdl,10muldlmovbl,byteptr[si]subbl,30haddax,bxaddsi,1looplen1len2:movdl,3muldlleasi,montabsubax,3addsi,axleadi,alfmonmovcx,3cldrepmovsbleadx,alfmonmovah,09hint21hexit:movah,4chint21hmainendpcodeendsendstart5、體會(huì)和意見(jiàn)。實(shí)驗(yàn)四子程序設(shè)計(jì)-從鍵盤(pán)輸入一個(gè)四位十進(jìn)制無(wú)符號(hào)數(shù),并將其從屏幕上顯示出來(lái)一、實(shí)驗(yàn)?zāi)康模?、熟悉分支、循環(huán)、子程序調(diào)用、DOS功能調(diào)用等根本的程序結(jié)構(gòu)。2、掌握子程序調(diào)用的參數(shù)傳遞。3、掌握綜合程序的編制及調(diào)試方法。二、實(shí)驗(yàn)內(nèi)容:從鍵盤(pán)輸入一個(gè)四位的十進(jìn)制數(shù)(如4525D),然后在屏幕上以十六進(jìn)制形式將其顯示出來(lái)(11ADH)。三、編程提示:1、采用DOS功能調(diào)用從鍵盤(pán)輸入一串字符。2、設(shè)計(jì)一個(gè)子程序?qū)㈡I盤(pán)緩沖區(qū)中的字符轉(zhuǎn)換為數(shù)值,即’4’->4、’5’->5、’2’->2、3、設(shè)計(jì)一子程序?qū)X中的二進(jìn)制數(shù)以十六進(jìn)制形式顯示。即用循環(huán)依次取BX中四位二進(jìn)制N數(shù),將其轉(zhuǎn)化為對(duì)應(yīng)十六進(jìn)制數(shù)的ASCII碼,再通過(guò)DOS系統(tǒng)調(diào)用將其顯示出來(lái)。四、實(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、畫(huà)出程序框圖。4、寫(xiě)出源程序清單和執(zhí)行結(jié)果。datasegmentpleasedb'pleaseenterthenumber:',13,10,'$'answerdb'theansweris:',13,10,'$'maxDB5actDB?monDB4DUP(?)tempdb4DUP(?),13,10,'$'temdw10hdataendscodesegmentassumeds:data,cs:code,es:datastart:movax,datamovds,axmoves,axlen0:leadx,pleasemovah,09hint21hleadx,maxmovah,0ahint21hcallchange1callchange2leadx,answermovah,09hint21hleadx,tempmovah,09hint21hexit:movah,4chint21hchange1procmovcl,byteptr[act]xorax,axxorbx,bxxorch,chleasi,monlen1:movdx,10muldxmovbl,byteptr[si]subbl,30haddax,bxaddsi,1looplen1movbx,axretchange1endpchange2procxorax,axxorcx,cxxordx,dxleasi,[temp+4]movcx,4movax,bxlen4:divtemcmpdx,9jalen6adddx,30hjmplen7len6:adddx,40hsubdx,9len7:movbyteptr[si],dlxordx,dxdecsilooplen4retchange2endpcodeendstart5、體會(huì)和意見(jiàn)。實(shí)驗(yàn)五綜合程序-統(tǒng)計(jì)不同成績(jī)段學(xué)生的人數(shù)〔2〕一、實(shí)驗(yàn)?zāi)康模?、掌握分支、循環(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分,60~69分,70~79分,80~89分,90~99分和100分的人數(shù),并輸出顯示統(tǒng)計(jì)結(jié)果。三、編程提示:1、成績(jī)分等局部采用分支結(jié)構(gòu),統(tǒng)計(jì)所有成績(jī)那么用循環(huán)結(jié)構(gòu)完成,顯示統(tǒng)計(jì)結(jié)果采用DOS功能調(diào)用。2、統(tǒng)計(jì)學(xué)生成績(jī)和顯示統(tǒng)計(jì)結(jié)果兩局部?jī)?nèi)容用子程序結(jié)構(gòu)來(lái)完成。四、實(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、畫(huà)出程序框圖。4、寫(xiě)出源程序清單和執(zhí)行結(jié)果。changemacrotempaddtemp,30hmovdl,tempmovah,02hint21hendmdatasegmentgranddb76,69,84,90,73,88,99,63,100,80sum1db0sum2db0sum3db0sum4db0sum5db0sum6db0sumdb10dataendscodesegmentassumeds:data,cs:codestart:movax,datamovds,axmoves,axcallalucallshowmovah,4chint21haluprocmovsi,-1str:cmpsum,0jzexitincsidecsumcmpgrand[si],60jblen1cmpgrand[si],70jblen2cmpgrand[si],80jblen3cmpgrand[si],90jblen4cmpgrand[si],100jblen5jmplen6len1:incsum1jmpstrlen2:incsum2jmpstrlen3:incsum3jmpstrlen4:incsum4jmpstrlen5:incsum5jmpstrlen6:incsum6jmpstrexit:retaluendpshowprocchangesum1changesum2changesum3changesum4changesum5changesum6retshowendpcodeendsendstart5、體會(huì)和意見(jiàn)。實(shí)驗(yàn)六綜合程序-輸入學(xué)生成績(jī),計(jì)算學(xué)生名次,按學(xué)號(hào)順序顯示學(xué)生名次〔2〕一、實(shí)驗(yàn)?zāi)康模?、掌握分支、循環(huán)、子程序調(diào)用、DOS功能調(diào)用等根本的程序結(jié)構(gòu)。2、掌握綜合程序的編制及調(diào)試方法。二、實(shí)驗(yàn)內(nèi)容:按學(xué)號(hào)順序從鍵盤(pán)輸入學(xué)生成績(jī)(成績(jī)之間用逗號(hào)分隔)保存在成績(jī)數(shù)組中,計(jì)算每個(gè)學(xué)生的名次,并按學(xué)號(hào)順序存入內(nèi)存中名次數(shù)組,最后,按學(xué)號(hào)順序顯示每個(gè)學(xué)生的名次。三、編程提示:1、設(shè)計(jì)一個(gè)子程序INPUT接受鍵盤(pán)輸入的每個(gè)學(xué)生成績(jī),并存入成績(jī)數(shù)組。其中INPUT子程序調(diào)用DECIBIN子程序,將每個(gè)學(xué)生的成績(jī)保存在BX存放器中。當(dāng)遇到逗號(hào)時(shí)將BX內(nèi)容寫(xiě)入成績(jī)數(shù)組,遇到回車(chē)表示成績(jī)輸入完畢。2、設(shè)計(jì)RANKP子程序根據(jù)成績(jī)數(shù)組計(jì)算每個(gè)學(xué)生名次,并將名次寫(xiě)入名次數(shù)組(這局部功能請(qǐng)參考實(shí)驗(yàn)二)。3、設(shè)計(jì)OUTPUT子程序輸知名次數(shù)組中學(xué)生名次,注意要將數(shù)值形式的名次轉(zhuǎn)換成ASCII碼表示后再顯示,此功能通過(guò)子程序BINDEC實(shí)現(xiàn)轉(zhuǎn)換。四、實(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、畫(huà)出程序框圖。4、寫(xiě)出源程序清單和執(zhí)行結(jié)果。datasegmentgradedb50dup(?)rankdb50dup(?)countdw?ts1db'pleaseentergrade',13,10,'$'ts2db'therankis:',13,10,'$'dataendscodesegmentassumeds:data,cs:code,es:datastart:movax,datamovds,axmoves,axcallinputcallrank1calloutputmovah,4chi

溫馨提示

  • 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)論