輸入的一個(gè)班的學(xué)生成績(匯編語言)_第1頁
輸入的一個(gè)班的學(xué)生成績(匯編語言)_第2頁
輸入的一個(gè)班的學(xué)生成績(匯編語言)_第3頁
輸入的一個(gè)班的學(xué)生成績(匯編語言)_第4頁
輸入的一個(gè)班的學(xué)生成績(匯編語言)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 匯 編 語 言課程綜合性實(shí)驗(yàn)報(bào)告開課實(shí)驗(yàn)室: 年 月 日實(shí)驗(yàn)題目顯示學(xué)生名次表一、 實(shí)驗(yàn)?zāi)康倪M(jìn)行匯編語言程序設(shè)計(jì)應(yīng)用的綜合性訓(xùn)練。綜合運(yùn)用匯編語言循環(huán)程序和程序編程方法,鞏固提高匯編語言程序設(shè)計(jì)能力應(yīng)用水平。二、設(shè)備與環(huán)境PC兼容機(jī)、Windows操作系統(tǒng)、匯編程序masm611三、實(shí)驗(yàn)內(nèi)容編制一程序,要求接收從鍵盤輸入的一個(gè)班的學(xué)生成績,并存放于50字節(jié)的GRADE數(shù)組中,其中GRADE+N保存學(xué)號(hào)N+1的學(xué)生成績。然后根據(jù)GRADE中的學(xué)生成績,把學(xué)生名次填入50字節(jié)的RANK數(shù)組中,其中RANK+N的內(nèi)容是學(xué)號(hào)為N+1學(xué)生的名次。再按學(xué)號(hào)把學(xué)生順序把學(xué)生名次顯示出來四、實(shí)驗(yàn)結(jié)果及分析(

2、包括已完成什么功能,如何實(shí)現(xiàn)的、遇到的問題和解決辦法、流程圖和關(guān)鍵代碼解釋,收獲和體會(huì)等) (1)完成的功能:動(dòng)態(tài)輸入學(xué)生學(xué)號(hào)和成績,對(duì)學(xué)生成績進(jìn)行排序并設(shè)置名次,再按學(xué)號(hào)把學(xué)生成績和名次顯示出來。 (2)實(shí)現(xiàn)辦法:充分運(yùn)用宏匯編實(shí)現(xiàn)回車換行、數(shù)據(jù)的輸入和輸出,使用過程定義偽操作實(shí)現(xiàn)排名次和學(xué)生學(xué)號(hào)、成績和名次的顯示。(3)流程圖:開始 調(diào)用input子程序輸入學(xué)號(hào)和成績是否繼續(xù)輸入 Y N調(diào)用rank子程序成績排序并設(shè)置名次調(diào)用print子程序按學(xué)號(hào)顯示成績和名次結(jié)束(4)關(guān)鍵代碼:1、數(shù)據(jù)段定義:DATAS SEGMENT n db 0 mc db 50 dup (0) cj db 50

3、dup (?) xh db 50 dup (?) m1 db 13,10,Please input the ID: ,13,10,$ m2 db 13,10,Please input the mark:,13,10,$ m3 db 13,10,Do you want to continue ?,13,10,$ s1 db 13,10, *,13,10,$ s2 db 13,10,ID mark rank ,13,10,$ kongge db ,$DATAS ENDS 2、數(shù)據(jù)輸入、輸出宏定義: shuru macro mov ah,1 int 21h sub al,30h cbw mov bl

4、,10 mul bl mov dl,al mov ah,1 int 21h sub al,30h add dl,al endm shuchu macro num mov al,num cbw mov bl,10 div bl mov bl,ah mov dl,al add dl, 30h mov ah,2 int 21h mov dl,bl add dl,30h mov ah,2 int 21h endm3、排序并設(shè)置名次:rank proc near mov ah,0 mov al,1 mov si,0 mov cl,n mov ch,0 mov dl,99 mov bh,0e1: push

5、 cxe2: mov bl,cjsi cmp bl,dl jne e4 add mcsi,al add bh,1 cmp bh,1 je e6 jmp e4e3: sub al,1e4: add si,1 loop e2 cmp bh,0 jne e5 pop cx mov bh,0 sub dl,1 cmp dl,-1 mov si,0 je e7 jmp e1e5: pop ax pop cx mov bh,0 sub dl,1 cmp dl,-1 mov si,0 je e7 jmp e1 e6: add al,1 push ax jmp e3 e7: ret rank endp4、按學(xué)

6、號(hào)顯示成績和名次:print proc near output s1 output s2 mov cl,n mov ch,0 mov si,0exit: shuchu xhsi output kongge shuchu cjsi output kongge shuchu mcsi crlf add si,1 loop exit retprint endp(5)運(yùn)行結(jié)果截圖: (6)收獲和體會(huì):大一學(xué)習(xí)的是C語言,因此,在學(xué)匯編語言之初,面對(duì)格式之類的感覺很不適應(yīng)。C語言用的是一個(gè)又一個(gè)變量,而匯編語言則是利用一個(gè)又一個(gè)寄存器來實(shí)現(xiàn)。而寫代碼的時(shí)候,經(jīng)常會(huì)因?yàn)橐恍┓?hào),或者字長的失誤,完全是無心

7、之失而導(dǎo)致程序無法執(zhí)行。而回過來找錯(cuò)誤的時(shí)候,又往往忽略了這些細(xì)節(jié)而找不到錯(cuò)誤的根源。學(xué)習(xí)匯編是個(gè)艱辛的過程,從C語言到匯編的不適,到牢記大量的指令,并熟練應(yīng)用,都要花費(fèi)很多時(shí)間適應(yīng)。對(duì)有些指令的源操作數(shù)和目的操作數(shù),以及操作結(jié)果的存放位置都要熟記于心。否則,你將很難應(yīng)用這些指令,學(xué)習(xí)匯編的一個(gè)重要能力就是能夠熟練調(diào)試所寫程序,當(dāng)某個(gè)程序不能執(zhí)行時(shí),而又發(fā)現(xiàn)不了錯(cuò)誤,這就要對(duì)程序進(jìn)行逐步調(diào)試了。這樣更容易發(fā)現(xiàn)錯(cuò)誤點(diǎn)并牢記。教 師 評(píng) 價(jià)評(píng)定項(xiàng)目ABCD評(píng)定項(xiàng)目ABCD算法正確操作熟練程序結(jié)構(gòu)合理實(shí)驗(yàn)結(jié)果正確語法、語義正確文字流暢、報(bào)告規(guī)范其他:評(píng)價(jià)教師簽名:年 月 日附代碼:crlf macr

8、o mov ah,2 mov dl,10 int 21h mov ah,2 mov dl,13 int 21h endm output macro string mov dx,offset stringmov ah,9int 21hendmshuru macro mov ah,1int 21hsub al,30hcbwmov bl,10mul bl mov dl,al mov ah,1int 21hsub al,30h add dl,al endm shuchu macro num mov al,num cbw mov bl,10 div bl mov bl,ah mov dl,al add

9、dl, 30hmov ah,2int 21h mov dl,bladd dl,30hmov ah,2int 21h endm DATAS SEGMENTn db 0 mc db 50 dup (0) cj db 50 dup (?) xh db 50 dup (?) m1 db 13,10,Please input the ID: ,13,10,$ m2 db 13,10,Please input the mark:,13,10,$ m3 db 13,10,Do you want to continue ?,13,10,$ s1 db 13,10, *,13,10,$s2 db 13,10,I

10、D mark rank ,13,10,$kongge db ,$DATAS ENDS STACKS SEGMENTSTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AXagain: call input add n,1 output m3 mov ah,1 int 21h cmp al,y je again call rank call print MOV AH,4CH INT 21H input proc near output m1 shuru mov bl,n mov

11、 bh,0 mov xhbx,dl output m2 shuru mov bl,n mov bh,0 mov cjbx,dl retinput endprank proc near mov ah,0 mov al,1 mov si,0 mov cl,n mov ch,0 mov dl,99 mov bh,0e1: push cxe2: mov bl,cjsi cmp bl,dl jne e4 add mcsi,al add bh,1 cmp bh,1 je e6 jmp e4e3: sub al,1e4: add si,1 loop e2 cmp bh,0 jne e5 pop cx mov bh,0 sub dl,1 cmp dl,-1 mov si,0 je e7 jmp e1e5: pop ax pop cx mov bh,0 sub dl,1 cmp dl,-1 mov si,0 je e7 jmp e1 e6: add al,1 push ax jmp e3 e7: ret rank endpprint proc n

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論