大學匯編語言實驗指導_第1頁
大學匯編語言實驗指導_第2頁
大學匯編語言實驗指導_第3頁
大學匯編語言實驗指導_第4頁
大學匯編語言實驗指導_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、匯編語言實驗 一、實驗?zāi)康模?、熟練匯編語言運行環(huán)境和方法。2、了解如何使用匯編語言編制程序。3、熟悉 DEBUG常用的命令的使用方法。4、會使用DEBUG命令調(diào)試程序。二、實驗內(nèi)容:STRING1和STRING2相同,則輸出MATCH,不相同則輸出2、學會對匯編語言程序進行匯編、連接和運行。3、學會用DEBUG中的D命令,E命令,R命令,G命令,F(xiàn)命令,U命令,A命令以及T命令。三、實驗要求:1、實驗前要做好充分準備,包括匯編程序清單、調(diào)試步驟、調(diào)試方法,以及對程序結(jié)果的分析等。DEBUG調(diào)試程序和執(zhí)行程序。四、實驗報告:1、程序說明。說明程序的功能、結(jié)構(gòu)。檢查兩個字符串是否相同2、調(diào)試說明

2、。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試所遇果進行分析。運行e28forward3、寫出源程序清單和執(zhí)行結(jié)果。實驗清單:datarea segmentstring1 db Move the cursor backwordstring2 db Move the cursor backwordmess1 db Match.,13,10,$mess2 db No match!,13,10,$datarea endsprognam segmentmain proc farassume cs:prognam,ds:datarea,es:datareastart:push dssub ax,dxpush

3、axmov ax,datareamov ds,axmov es,axlea si,string1lea di,string2cldmov cx,25repz cmpsbjz matchlea dx,mess2jmp short displea dx,mess1match:disp:mov ah,09int 21hmov ah,4chint 21hmain endpprognam endsend start一、實驗?zāi)康模?、熟悉循環(huán)、DOS功能調(diào)用等基本的程序結(jié)構(gòu)。二、實驗內(nèi)容:三、編程提示:1、定義如下的數(shù)據(jù)結(jié)構(gòu):grade DW 88,75,95,63,98,78,87,73,90,60ra

4、nk DW 10 DUP(?)data ENDS2、通過雙重循環(huán)實現(xiàn):對于數(shù)組的每個元素(學生成績),查找數(shù)組中比該元素值大的元素個數(shù)I,則I-1即為該學生的名次,并將名次依次保存在以rank為首地址的字數(shù)組中。四、實驗報告:1、程序說明。說明程序的功能、結(jié)構(gòu)。功能:將給出的數(shù)組每個元素在數(shù)組的大小位置找出來,放到rank數(shù)組中數(shù)據(jù)定義塊:data segmentgrade dw 88h,75h,95h,63h,98h,78h,87h,73h,90h,60hrankdw 10 DUP(?)count dw ?data ends代碼塊:code segmentassume cs:code,ds:

5、datamain proc farstart:mov ax,datamov ds,axxorax,axmov si,axmov count,ax外層循環(huán):lea1lea1:leabx,grademov cx,rank-gradesarxorleacx,1ax,axdi,grade內(nèi)層循環(huán)lea2,lea3.lea4lea2:mov dx,dicmp bx+si,dxmov dx,word ptr bx+sijllea4add di,2loop lea2lea3:mov si,countmov rank+si,axaddcount,2mov si,countcmp count,rank-grad

6、e返回語句:jelea5lea1jmplea4:inc axadd di,2loop lea2jmp lea3lea5:mov ah,4chint21hmain endpcode endsend start2、調(diào)試說明。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試所遇果進行分析。3、畫出程序框圖。4、寫出源程序清單和執(zhí)行結(jié)果清單:data segmentgrade dw 88h,75h,95h,63h,98h,78h,87h,73h,90h,60hrankdw 10 DUP(?)count dw ?data endscode segmentassume cs:code,ds:datamain pro

7、c farstart:mov ax,datamov ds,axxorax,axmov si,axmov count,axlea1:leabx,grademov cx,rank-gradesarxorleacx,1ax,axdi,gradelea2:mov dx,dicmp bx+si,dxmov dx,word ptr bx+sijllea4add di,2loop lea2lea3:mov si,countmov rank+si,axaddcount,2mov si,countcmp count,rank-gradejelea5lea1jmplea4:inc axadd di,2loop l

8、ea2jmp lea3lea5:5、體會和意見。一、實驗?zāi)康模?、熟悉分支、DOS功能調(diào)用等基本的程序結(jié)構(gòu)。二、實驗內(nèi)容:(JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT三、編程提示:1、定義如下的數(shù)據(jù)結(jié)構(gòu) 3 ? 3 DOS系統(tǒng)功能調(diào)用實現(xiàn)從鍵盤輸入月份數(shù)值(可能是一位也可能是二位),將月份值的ASCII轉(zhuǎn)換成數(shù)值,根據(jù)此數(shù)值確定月份英文名在字符串數(shù)組montab中的位置,將該位置連續(xù)三個字節(jié)拷貝到alfmonDOS系統(tǒng)功能調(diào)用顯示alfmon為起始的字符串。四、實驗報告:1、程序說明。說明程序的功能、結(jié)構(gòu)。2、調(diào)試說明。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試

9、所遇果進行分析。3、畫出程序框圖。4、寫出源程序清單和執(zhí)行結(jié)果。data segmentplease db please enter the momth:,13,10,$max DB 3act DB ?mon DB 3 DUP(?)alfmon DB ?,13,10,$montabDBJAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DECdata endscode segmentassume ds:data,cs:code,es:datamain proc farstart:mov ax,datamov ds,axmov es,axlen0:lea dx

10、,pleasemov ah,09hint 21hlea dx,maxmov ah,0ahint 21hmov cl,byte ptr actxor ax,axxor bx,bxxor ch,chlea si,monlen1:mov dl,10mul dlmov bl,byte ptr sisub bl,30hadd ax,bxadd si,1loop len1len2:mov dl,3mul dllea si,montabsub ax,3add si,axlea di,alfmonmov cx,3cldrep movsblea dx,alfmonmov ah,09hint21h5、體會和意見。

11、 一、實驗?zāi)康模?、熟悉分支、循環(huán)、子程序調(diào)用、DOS 功能調(diào)用等基本的程序結(jié)構(gòu)。2、掌握子程序調(diào)用的參數(shù)傳遞。3、掌握綜合程序的編制及調(diào)試方法。二、實驗內(nèi)容:從鍵盤輸入一個四位的十進制數(shù)(如 4525D),然后在屏幕上以十六進制形式將其顯示出來(11ADH)。三、編程提示:1、采用 DOS功能調(diào)用從鍵盤輸入一串字符。2、設(shè)計一個子程序?qū)㈡I盤緩沖區(qū)中的字符轉(zhuǎn)換為數(shù)值,即4-4、5-5、2-2、5-5,再將其轉(zhuǎn)化為數(shù)值4525保存到BX寄存器中。 BX循環(huán)依次取 BX 中四位二進制 N 數(shù),將其轉(zhuǎn)化為對應(yīng)十六進制數(shù)的ASCII碼,再通過DOS系統(tǒng)調(diào)用將其顯示出來。四、實驗報告:1、程序說明。說明

12、程序的功能、結(jié)構(gòu)。2、調(diào)試說明。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試所遇果進行分析。3、畫出程序框圖。4、寫出源程序清單和執(zhí)行結(jié)果。data segmentplease db please enter the number:,13,10,$answer db the answer is:,13,10,$max DB 5act DB ?mon DB 4 DUP(?)temp db 4 DUP(?),13,10,$tem dw 10hdata endscode segmentassume ds:data,cs:code,es:datastart:mov ax,datamov ds,axmov e

13、s,axlen0:leadx,pleasemov ah,09hint 21hlea dx,maxmov ah,0ahint 21hcall change1call change2lea dx,answermov ah,09hint 21hlea dx,tempmov ah,09hint 21hexit:mov ah,4chint 21hchange1 procmov cl,byte ptr actxor ax,axxor bx,bxxor ch,chleasi,monlen1:mov dx,10mul dxmov bl,byte ptr sisub bl,30hadd ax,bxadd si,

14、1loop len1mov bx,axretchange1 endpchange2 procxorxorxorleaax,axcx,cxdx,dxsi,temp+4mov cx,4mov ax,bxlen4:div temcmp dx,9ja len6add dx,30hjmp len7len6:add dx,40hsub dx,9len7:mov byte ptr si,dlxor dx,dxdec siloop len4retchange2 endpcodeend start5、體會和意見。一、實驗?zāi)康模?、掌握分支、循環(huán)、子程序調(diào)用、DOS 功能調(diào)用等基本的程序結(jié)構(gòu)。二、實驗內(nèi)容:設(shè)有十

15、個學生成績分別是 76,69,84,90,73,88,99,63,79 分和100三、編程提示:1、成績分等部分采用分支結(jié)構(gòu),統(tǒng)計所有成績則用循環(huán)結(jié)構(gòu)完成,顯示統(tǒng)計結(jié)果采用DOS功能調(diào)用。2、統(tǒng)計學生成績和顯示統(tǒng)計結(jié)果兩部分內(nèi)容用子程序結(jié)構(gòu)來完成。四、實驗報告:1、程序說明。說明程序的功能、結(jié)構(gòu)。2、調(diào)試說明。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試所遇果進行分析。3、畫出程序框圖。4、寫出源程序清單和執(zhí)行結(jié)果。change macro tempadd temp,30hmov dl,tempmov ah,02hint 21hendmdata segmentgrand db 76,69,84,90

16、,73,88,99,63,100,80sum1 db 0sum2 db 0sum3 db 0sum4 db 0sum5 db 0sum6 db 0sum db 10data endscode segmentassume ds:data,cs:codestart:mov ax,datamov ds,axmov es,axcall alucall showmov ah,4chint 21halu procmov si,-1str:cmp sum,0jz exitinc sidec sumcmp grandsi,60jb len1cmp grandsi,70jb len2cmp grandsi,80

17、jb len3cmp grandsi,90jb len4cmp grandsi,100jb len5jmp len6len1:inc sum1jmp strlen2:inc sum2jmp strlen3:inc sum3jmp strlen4:inc sum4jmp strlen5:inc sum5jmp strlen6:inc sum6jmp strexit:retalu endpshow procchange sum1change sum2change sum3change sum4change sum5change sum6retshow endp5、體會和意見。 順序顯示學生名次(2

18、)一、實驗?zāi)康模?、掌握分支、循環(huán)、子程序調(diào)用、DOS 功能調(diào)用等基本的程序結(jié)構(gòu)。2、掌握綜合程序的編制及調(diào)試方法。二、實驗內(nèi)容:按學號順序從鍵盤輸入學生成績 (成績之間用逗號分隔)保存在組,最后,按學號順序顯示每個學生的名次。三、編程提示:1、設(shè)計一個子程序 INPUT 接受鍵盤輸入的每個學生成績,并存 INPUT子程序調(diào)用DECIBIN成績保存在BX BX到回車表示成績輸入完畢。2、設(shè)計 RANKP 子程序根據(jù)成績數(shù)組計算每個學生名次,并將名次寫入名次數(shù)組(這部分功能請參考實驗二)。 OUTPUT形式的名次轉(zhuǎn)換成ASCIIBINDEC實現(xiàn)轉(zhuǎn)換。四、實驗報告:1、程序說明。說明程序的功能、結(jié)

19、構(gòu)。2、調(diào)試說明。包括上機調(diào)試的情況、上機調(diào)試步驟、調(diào)試所遇果進行分析。3、畫出程序框圖。4、寫出源程序清單和執(zhí)行結(jié)果。data segmentgrade db 50 dup(?)rank db 50 dup(?)count dw ?ts1 db please enter grade,13,10,$ts2 db the rank is:,13,10,$data endscode segmentassume ds:data,cs:code,es:datastart:mov ax,datamov ds,axmov es,axcall inputcall rank1call outputmov ah,4chint 21hinput proclea dx,ts1mov ah,09hint 21hxor si,sibegin1:xor ax,axxor bx,bxxor cx,cxxor d

溫馨提示

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

評論

0/150

提交評論