中南大學(xué)-計(jì)算機(jī)原理與匯編課程設(shè)計(jì)報(bào)告_第1頁
中南大學(xué)-計(jì)算機(jī)原理與匯編課程設(shè)計(jì)報(bào)告_第2頁
中南大學(xué)-計(jì)算機(jī)原理與匯編課程設(shè)計(jì)報(bào)告_第3頁
中南大學(xué)-計(jì)算機(jī)原理與匯編課程設(shè)計(jì)報(bào)告_第4頁
中南大學(xué)-計(jì)算機(jī)原理與匯編課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上姓名:學(xué)號:班級:指導(dǎo)老師:賀建飚計(jì)算機(jī)原理與匯編課程設(shè)計(jì)報(bào)告匯編語言課程設(shè)計(jì)一、設(shè)計(jì)目的:課程設(shè)計(jì)是計(jì)算機(jī)原理與匯編語言教學(xué)過程中的重要環(huán)節(jié)。本課程設(shè)計(jì)主要目的是使計(jì)算機(jī)專業(yè)學(xué)生深入學(xué)習(xí)計(jì)算機(jī)原理與匯編語言知識(shí),進(jìn)一步提高學(xué)生計(jì)算機(jī)原理與匯編語言綜合能力和程序設(shè)計(jì)技能,鍛煉運(yùn)用計(jì)算機(jī)原理與匯編語言解決實(shí)際問題的能力。二、設(shè)計(jì)要求:1認(rèn)真查閱資料,獨(dú)立完成設(shè)計(jì)任務(wù),每道題都必須上機(jī)通過。 2獨(dú)立思考,培養(yǎng)綜合分析問題解決問題和調(diào)試程序的能力。 3按時(shí)完成課程設(shè)計(jì),寫出課程設(shè)計(jì)報(bào)告。3、 設(shè)計(jì)內(nèi)容及原理設(shè)計(jì)內(nèi)容:1使用到子程序 100 以內(nèi)的素?cái)?shù),以十進(jìn)制形式輸出。2用

2、遞歸計(jì)算50以內(nèi)Fibonacci 數(shù),以十進(jìn)制形式輸出。3編寫一拷貝程序,要求在命令行指定源文件名和目標(biāo)文件名。設(shè)計(jì)原理:1結(jié)合幾種含有特定功能的子程序以完成設(shè)計(jì)要求。2建立循環(huán)程序遞歸計(jì)算Fibonacci 數(shù)。3根據(jù)輸入判斷文件是否存在并執(zhí)行拷貝過程。四、設(shè)計(jì)思路 1使用到子程序 100 以內(nèi)的素?cái)?shù),以十進(jìn)制形式輸出。按照設(shè)計(jì)要求,可以建立3個(gè)子程序,一個(gè)判斷素?cái)?shù)子程序,一個(gè)顯示素?cái)?shù)子程序,一個(gè)將素?cái)?shù)以十進(jìn)制形式輸出子程序,然后在主程序中調(diào)用子程序,程序框架得以構(gòu)建。2用遞歸計(jì)算50以內(nèi)Fibonacci 數(shù),以十進(jìn)制形式輸出。按照設(shè)計(jì)要求,可以建立循環(huán)子程序,遞歸計(jì)算Fibonacci

3、 數(shù),以十進(jìn)制形式輸出,再將新Fibonacci 數(shù)與50比較,大于50則退出循環(huán),程序結(jié)束。3編寫一拷貝程序,要求在命令行指定源文件名和目標(biāo)文件名。在數(shù)據(jù)段中編寫各種提示語句,在代碼段中加入各種判斷語句及中斷跳轉(zhuǎn)語句,程序運(yùn)行時(shí),即可根據(jù)命令行輸入的指定源文件名和目標(biāo)文件名執(zhí)行相應(yīng)的功能。5、 實(shí)現(xiàn)步驟 1使用到子程序 100 以內(nèi)的素?cái)?shù),以十進(jìn)制形式輸出。程序代碼如下:DATAS SEGMENT count dw 0;存放素?cái)?shù)的個(gè)數(shù) sushu db 100 dup(?);存放素?cái)?shù) msgsushu db 'all prime numbers below 100 are:'

4、,'$'顯示素?cái)?shù)的提示信息 msgcount db 0dh,0ah,'count of prime numbers is:',0dh,0ah,'$'顯示素?cái)?shù)個(gè)數(shù)的提示信息 DATAS ENDS CODE SEGMENT assume cs:CODE, ds:DATASMAIN PROC FAR ;主程序入口 call jisuanlea dx,msgsushu;顯示素?cái)?shù)的提示信息 mov ah,9 int 21h call dispsushu;顯示素?cái)?shù) lea dx,msgcount;顯示素?cái)?shù)個(gè)數(shù)的提示信息 mov ah,9 int 21h ca

5、ll dispcount;顯示素?cái)?shù)個(gè)數(shù) mov ah,1;按任意鍵退出 int 21h mov ax, 4c00h ;程序結(jié)束,返回到操作系統(tǒng)系統(tǒng) int 21h MAIN ENDP jisuan proc near mov ax, datasmov ds, ax lea di,sushu mov bh,0 mov bl,2;求從2到100的素?cái)?shù)、素?cái)?shù)個(gè)數(shù),BL從2到100變化 next11: cmp bl,100 ja tj mov dl,2;如果BL不能被DL從2到BL-1整除的話,則BL為素?cái)?shù) next12: cmp dl,bl jae next13 mov ax,bx div dl c

6、mp ah,0 jz next14;整除則不是素?cái)?shù) inc dl jmp next12 next13: inc count;是素?cái)?shù),則將個(gè)數(shù)加1 mov di,bl;是素?cái)?shù),則存入相應(yīng)單元中 inc di next14: inc bl jmp next11 tj:ret jisuan endp dispsushu proc near lea si,sushu mov cx,count next21: mov ax,count;每行10個(gè)素?cái)?shù) sub ax,cx mov bl,10 div bl cmp ah,0 jnz next22 mov dl,0dh;每行10個(gè)素?cái)?shù),行末加回車換行 mov

7、 ah,2 int 21h mov dl,0ah mov ah,2 int 21h next22: mov bl,si;取出一個(gè)素?cái)?shù) mov bh,0 call disp10;以十進(jìn)制形式輸出 mov dl,20h;每個(gè)素?cái)?shù)之間加一個(gè)空格,便于區(qū)分 mov ah,2 int 21h inc si loop next21 ret dispsushu endp dispcount proc near mov bx,count;取出素?cái)?shù)個(gè)數(shù) call disp10;以十進(jìn)制形式輸出 ret dispcount endp disp10 proc near;該子程序的作用是將BX中的數(shù)以十進(jìn)制形式輸出

8、push cx mov cx,10d call dec_div mov cx,1d call dec_div pop cx ret dec_div proc near mov ax,bx mov dx,0 div cx mov bx,dx mov dl,al add dl,30h mov ah,2 int 21h ret dec_div endp disp10 endp CODE ENDS END MAIN程序運(yùn)行結(jié)果:2用遞歸計(jì)算50以內(nèi)Fibonacci 數(shù),以十進(jìn)制形式輸出。程序代碼如下:ASSUME CS:CODES, DS:DATASDATAS SEGMENT M2 DB 13, 1

9、0, 'Fibonacci numbers which below 50 are: $' N1 DW 0 N2 DW 1 DATAS ENDSCODES SEGMENTSTART: MOV AX, DATAS MOV DS, AX LEA DX, M2 MOV AH, 9 INT 21H MOV DL, '1' MOV AH, 2 INT 21H MOV DL, ' ' INT 21HLP: MOV AX, N1 ADD AX, N2 MOV BX, N2 MOV N1, BX MOV N2, AX CMP N2,50 JA EXIT CALL

10、OUTPUT MOV DL, ' ' MOV AH, 2 INT 21H CMP N2,50 JNA LPEXIT: MOV AH, 4CH INT 21H ;返回DOS;-OUTPUT: MOV BX, 10 MOV CX, 0OL1:MOV DX, 0 DIV BX ADD DL, '0' PUSH DX INC CX CMP AX, 0 JNZ OL1 MOV AH, 2OL2:POP DX INT 21H JA EXIT LOOP OL2 RETCODES ENDSEND START程序運(yùn)行結(jié)果:3編寫一拷貝程序,要求在命令行指定源文件名和目標(biāo)文件名。程

11、序代碼如下:data SEGMENTmess1 DB 'Please input the path and name of source file:',0DH,0AH,24H mess2 DB 0DH,0AH,'Please input the path and name of object file:',07H,0DH,0AH,24Hfnf DB 0DH,0AH,'File has not existed!',07H,0DH,0AH,24Hfdf DB 0DH,0AH,'Object file has existed!',07H

12、,0DH,0AH,24Hfde DB 0DH,0AH,'Object path has not existed!',07H,0DH,0AH,24H fre DB 0DH,0AH,'Reading error.',07H,0DH,0AH,24Hfwe DB 0DH,0AH,'Writting error.',07H,0DH,0AH,24Hfcs DB 0DH,0AH,'File copyed succeed.',0DH,0AH,24Hfbuffer DB 128 DB ?fname DB 128 DUP (?)fnum_s DW ?

13、 fnum_d DW ? buffer DB 512 DUP (?) data ENDS code SEGMENT ASSUME CS:code,DS:data start: MOV AX,data MOV DS,AX PUSH DS POP ES full0: LEA DX,mess1 MOV AH,9 INT 21H CLD MOV CX,128 MOV AL,0 LEA DI,fname REP STOSB LEA DX,fbuffer MOV AH,0AH INT 21H MOV BL,fbuffer+1 ;將輸入文件名的最后一個(gè)回車符換成0,因?yàn)榻⒌奈募荒馨ú豢梢娮址?XOR

14、 BH,BH MOV SI,OFFSET fname ADD SI,BX MOV BYTE PTR SI,0 LEA DX,fname MOV AX,3D00H INT 21H JNC open ;打開成功 LEA DX,fnf MOV AH,9 INT 21H JMP full0 ;重新輸入 open: MOV fnum_s,AX ;打開成功,保存源文件號 full1: LEA DX,mess2 MOV AH,9INT 21H CLD ;充0,將上次輸入的文件名清零 MOV CX,128 ;文件名最大128字符,包括回車符 MOV AL,0 LEA DI,fname REP STOSB LE

15、A DX,fbuffer ;輸入文件名 MOV AH,0AH ;鍵盤輸入到緩沖區(qū) DS:DX=緩沖區(qū)首地址 INT 21H MOV BL,fbuffer+1 XOR BH,BH MOV SI,OFFSET fname ADD SI,BX MOV BYTE PTR SI,0 LEA DX,fname MOV AX,3D00H INT 21H JC setup ;打開不成功 LEA DX,fdf MOV AH,9 INT 21H JMP exit setup: LEA DX,fname MOV AH,3CH ;建立新文件 INT 21H JNC save ;建立成功 LEA DX,fde MOV

16、AH,9 INT 21H JMP exit save: MOV fnum_d,AX ;保存新文件號 MOV AX,3D01H ;以只寫方式打開新文件 INT 21H readf: MOV BX,fnum_s ;取源文件號 MOV CX,512 ;讀出512個(gè)字符 MOV DX,OFFSET buffer MOV AH,3FH INT 21H JNC writef ;讀成功,則寫 LEA DX,fre ;不成功,顯示錯(cuò)誤信息,關(guān)閉文件,并結(jié)束程序 MOV AH,9 INT 21H JMP exit writef: MOV BX,fnum_d ;取新文件號 MOV CX,AX ;按實(shí)際讀入字?jǐn)?shù)寫文

17、件 MOV AH,40H INT 21H JNC cmpcx ;寫成功 LEA DX,fwe ;不成功,顯示錯(cuò)誤信息,關(guān)閉文件,并結(jié)束程序 MOV AH,9 INT 21H JMP exit cmpcx: CMP CX,512 ;判斷實(shí)際讀入的字?jǐn)?shù)是不是512 JE readf ;如果是512,說明還沒讀到文件尾 ; LEA DX,fcs ;顯示復(fù)制成功 MOV AH,9 INT 21H ; exit: MOV AH,3EH ;關(guān)閉文件 INT 21H MOV BX,fnum_s MOV AH,3EH INT 21H MOV AX,4C00H INT 21H ; code ENDS END start程序運(yùn)行結(jié)果:情況一:源文件不存在情況二:目標(biāo)文件已存在情況三:復(fù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論