匯編語言課程設(shè)計(jì)_第1頁
匯編語言課程設(shè)計(jì)_第2頁
匯編語言課程設(shè)計(jì)_第3頁
匯編語言課程設(shè)計(jì)_第4頁
匯編語言課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、太原電力高等??茖W(xué)校課程設(shè)計(jì)任務(wù)書設(shè)計(jì)題目 匯編語言課程設(shè)計(jì)系 別 信息工程系專 業(yè) 計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)班 級(jí) 姓 名 指導(dǎo)教師 設(shè)計(jì)任務(wù)下達(dá)日期2010年 07 月 02 日設(shè)計(jì)時(shí)間2010年07月05日 至 2010年07月09日課程設(shè)計(jì)任務(wù)書一、目的和意義本課程設(shè)計(jì)是80X86匯編語言程序設(shè)計(jì)課程的后繼教學(xué)環(huán)節(jié), 通過對一個(gè)較大型的、綜合性的應(yīng)用程序進(jìn)行閱讀、修改、添加功能等工作, 使學(xué)生對匯編語言程序設(shè)計(jì)有更進(jìn)一步的認(rèn)識(shí), 提高閱讀理解復(fù)雜程序的能力和程序設(shè)計(jì)能力。二、題目(可從下面題目中任選一個(gè)) 1、加減乘除四則混合運(yùn)算 實(shí)現(xiàn)加、減、乘、除的計(jì)算。該程序接收的是16進(jìn)制數(shù)。 2、打字練

2、習(xí) 在菜單主界面下按回車鍵出現(xiàn)由26個(gè)字母組成的亂序行,這時(shí)其中任一字母落下,在鍵盤上敲入該字母,如果輸入正確,字母消失;按ESC鍵返回主界面;按空格見暫停;按E退出。 3、字符圖形程序”中國北京”或”山西大學(xué)工程學(xué)院”或”太原電力高等專科學(xué)?!钡茸謽?顯示上述任一字樣的程序,按“q”鍵退出。 4、代碼轉(zhuǎn)換程序 實(shí)現(xiàn)字母或數(shù)制之間的轉(zhuǎn)化:可實(shí)現(xiàn)小寫字母向大寫字母的轉(zhuǎn)換;實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換;實(shí)現(xiàn)二進(jìn)制數(shù)向十六進(jìn)制數(shù)的轉(zhuǎn)換;實(shí)現(xiàn)十六進(jìn)制數(shù)向二進(jìn)制數(shù)的轉(zhuǎn)換;實(shí)現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換。按“q”鍵退出。三、設(shè)計(jì)要求1、畫出主程序粗略的流程圖和各個(gè)模塊的詳細(xì)流程圖,每個(gè)功能模塊用文字說明他

3、們的功能(與對應(yīng)流程圖放在一起);2、 自己對自己所實(shí)現(xiàn)的程序的進(jìn)一步設(shè)想;3、 對于有設(shè)想但最終未實(shí)現(xiàn)的功能的大致編程思路的闡述;4、 論述在設(shè)計(jì)過程中遇到的并且對你具有啟發(fā)性的問題。5、 嚴(yán)禁抄襲,發(fā)現(xiàn)雷同,雙方扣分。6、 上交其上內(nèi)容(包括電子版和紙質(zhì)版)。四、主要參考資料1、匯編語言程序設(shè)計(jì)教材2、自己所查詢的其他資料五、進(jìn)度要求1、設(shè)計(jì)時(shí)間: 2010年07月05日至2010年07月09日,共5天2、完成設(shè)計(jì)說明書時(shí)間: 2010年07月05日至2010年07月09日,共5天3、提交時(shí)間: 2010年07月09日 下午4、上機(jī)時(shí)間安排: 設(shè)計(jì)每天的上午8:0012:00六、其它要求說

4、明書應(yīng)采用A4規(guī)格的紙張書寫,字跡清晰;所提交的圖表及文字內(nèi)容應(yīng)相互對應(yīng),圖文襯托;全部內(nèi)容應(yīng)自己獨(dú)立完成,不可抄襲他人的成果。一、 設(shè)計(jì)題目加減乘除四則混合運(yùn)算實(shí)現(xiàn)加、減、乘、除的計(jì)算。二、 總體設(shè)計(jì)從鍵盤輸入一個(gè)多位十進(jìn)制數(shù),按加號(hào)“+”,再輸入另一個(gè)十進(jìn)制數(shù);按等號(hào)“=”后顯示結(jié)果。其余運(yùn)算同上結(jié)果為負(fù)時(shí),顯示成帶負(fù)號(hào)“”的十進(jìn)制數(shù)形式。三、 設(shè)計(jì)流程圖09,+|-|*|/=都不是都不是Q/qQ/q09開始輸入一個(gè)字符09,Q/q?判斷出錯(cuò)再輸入一個(gè)字符09,=,Q/q,+|-|*|/?輸出結(jié)果結(jié)束四、 功能模塊取第一二個(gè)輸入數(shù)分別為A,B并將運(yùn)算符放入S中A1: CMP S,0 JNZ

5、 WR DEC BX MOV COUNTA,BX MOV AL,D MOV S,AL JMP LOOP1A2: CMP S,0 JZ XS0 DEC BX MOV COUNTB,BX CALL ASC_BIN CMP S,'+' JZ P1 CMP S,'-' JZ P2 CMP S,'*' JZ P3 CMP S,'/' JZ P4A3: MOV DL,'=' MOV AH,2 INT 21H JMP A2加法,A+B高位存入H,低位存入LP1: CALL P01 JMP SLP2: CALL P02 JMP S

6、LP3: CALL P03 JMP SLP4: CALL P04 JMP SLXS0: LEA SI,AB ADD SI,BX MOV AL,'$' MOV SI,AL LEA SI,AB mov dx,si MOV AH,9 INT 21H JMP SLP01 PROC 減法,若A<B則交換兩數(shù),結(jié)果顯示為負(fù)否則正常執(zhí)行A-B,高位0存入H,低位存入L P02 PROC MOV AX,A CMP AX,B JA CNT CMP AX,B JZ CNT MOV BX,B MOV A,BX MOV B,AX MOV DL,'-' MOV AH,2 INT 2

7、1HCNT:MOV AX,A SUB AX,B MOV DX,0 MOV L,AX MOV H,0 CALL XS RETP02 ENDP 乘法,A*B,結(jié)果高位存入H,低位存入L P03 PROC MOV DX,0 MOV AX,A MUL B MOV L,AX MOV H,DX CALL XS RETP03 ENDP除法,A/B,并顯示余數(shù),高位0存入H,低位存入L P04 PROC MOV DX,0 MOV AX,A DIV B PUSH DX MOV H,0 MOV L,AX CALL XS LEA DX,STR3 MOV AH,9 INT 21H mov c1,0 POP DX MO

8、V H,0 MOV L,DX CALL XS RETP04 ENDP五、程序的進(jìn)一步設(shè)想(未實(shí)現(xiàn)功能的思路)本程序只能對正數(shù)間的四則計(jì)算,但在做減法運(yùn)算時(shí),結(jié)果可為負(fù),在做除法運(yùn)算時(shí),可以顯示余數(shù),輸入一個(gè)算式后,按空格鍵,則轉(zhuǎn)為等號(hào)顯示結(jié)果,按W就會(huì)進(jìn)行清屏,按Q就會(huì)退出程序。未能實(shí)現(xiàn)加減乘除的混合運(yùn)算,改進(jìn)方法:首先對輸入的字符進(jìn)行優(yōu)先級(jí)的判斷,并且能判斷出帶有括號(hào)的字符, 以實(shí)現(xiàn)混合運(yùn)算,而后是對輸入字符進(jìn)行轉(zhuǎn)換,將輸入的數(shù)字轉(zhuǎn)換為16進(jìn)制作為輸出的結(jié)果,而本程序只能接受和輸出為10進(jìn)制間的四則運(yùn)算。五、 課設(shè)心得。為期一周的匯編語言課程設(shè)計(jì)馬上就要結(jié)束了。對于這周我有很多心得體會(huì)。其中

9、最大的感悟是:自己平時(shí)學(xué)的東西是在是太少了,平時(shí)匯編語言的知識(shí)掌握的并不牢固,同時(shí)在實(shí)踐的時(shí)候,我覺得自己的心態(tài)真的不是很好,但當(dāng)靜下心來仔細(xì)把問題讀懂和頭腦中有了大致思路的時(shí)候,這種擔(dān)憂就完全消失了。本次匯編語言課程設(shè)計(jì)是利用我們平時(shí)所學(xué)的匯編知識(shí)編寫一個(gè)四則運(yùn)算的小程序,剛拿到題目的時(shí)候還有點(diǎn)擔(dān)憂。其實(shí)這次課程設(shè)計(jì)并不要求你把書上各種指令及其工能掌握的很好并且能熟練的運(yùn)用匯編語言編程,而恰恰是利用這次課程設(shè)計(jì)的機(jī)會(huì)來提高這方面的能力。這就是一個(gè)心態(tài)問題,看你有沒有擺正心態(tài),看你有沒有面對挫折的勇氣,如果一開始就沒擺正心態(tài),思維就會(huì)堵塞,后面就更無法做下去了。這次課程設(shè)計(jì)讓我更加懂得以后在面

10、臨困難與挫折的時(shí)候要有平和的心態(tài),要有冷靜的頭腦,坦然的面對,這樣才能解決問題。有了整體思路后,編寫程序就變得簡單的多了,但也遇到了很多的問題,后經(jīng)過老師的幫助和同學(xué)的討論,終于完成了。本次匯編語言課程設(shè)計(jì)加深了我對匯編語言的理解和運(yùn)用,一些以前不太理解的指令及其用法現(xiàn)在都很好的掌握了,還有分支程序和子程序的運(yùn)用,尤其是程序的結(jié)構(gòu)化設(shè)計(jì)思想,有了結(jié)構(gòu)化設(shè)計(jì)思想,你的思路就會(huì)更加清晰。通過本次匯編語言課程設(shè)計(jì),也讓我更加明白實(shí)踐的重要性,如果整天的學(xué)習(xí)課本上的理論知識(shí)而不拿來用那肯定是很煩的,況且匯編語言這門課本身學(xué)起來就很煩,尤其是要去理解各種指令的功能,還要學(xué)習(xí)相應(yīng)的硬件知識(shí)。再者,學(xué)習(xí)理論

11、知識(shí)的目的還是要拿來運(yùn)用,通過實(shí)踐來鞏固所學(xué)的理論知識(shí)。并且通過這次課程設(shè)計(jì)實(shí)踐,讓我一改往日的厭學(xué)情緒,尤其是當(dāng)程序運(yùn)行正確的時(shí)候,那種來自內(nèi)心的成就感,讓我更加有信心學(xué)好匯編語言了。六、 主要參考資料沈美明,溫冬嬋 .IBM-PC匯編語言程序設(shè)計(jì)(第2版) . 北京:清華大學(xué)出版社李珍香.匯編語言課程設(shè)計(jì)案例精編. 北京:中國水利水電出版社錢曉捷新版匯編語言程序設(shè)計(jì)北京:電子工業(yè)出版社指導(dǎo)教師評(píng)語表評(píng) 語:成績評(píng)定指導(dǎo)教師簽名: 年 月 日STACK SEGMENT STACK 'STACK'DW 64 DUP(?)STACK ENDSDATA SEGMENTSTR1 DB

12、 'JiSuan A + - * / B ',0DH,0AH,'Input Q Quit',0dh,0ah,'Input W Clean',0dh,0ah,'Please Input :',0DH,0AH,'$'STR2 DB 0DH,0AH,'Input error,please input again or quit:',0DH,0AH,'$'STR3 DB '.$'AB DB 12 DUP(?)A DW 0B DW 0C2 DB 15 DUP(?)C0 DB 1

13、4 DUP(?)C1 DW 0D DB ?S DB 0COUNTA DW ?COUNTB DW ?H DW 0L DW 0DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK CLEAN macro ;清屏 mov ah,6 mov al,0 mov bh,1fh mov cx,0 mov dx,184fh int 10h endmSTART: MOV AX,DATA MOV DS,AX LEA DX,STR1 MOV AH,9 INT 21H ;輸出字符串STR1SL: MOV DL,0DH MOV AH,2 INT 21H MOV DL

14、,0AH MOV AH,2 INT 21H ;回車換行 MOV S,0 MOV C1,0 LEA SI,AB MOV AH,1 INT 21H ;輸入一個(gè)字符 MOV SI,AL MOV D,AL CMP D,'Q' ;為Q或q則終止 JZ Q CMP D,'q' JZ Q CMP D,'W' ;為W或w則終止 JZ W CMP D,'w' JZ w CMP AL,30H JB WR CMP D,39H JA WR ;判斷數(shù)字不在0 - 9則出錯(cuò) MOV BX,0 ;BX清零LOOP1: INC BX MOV AH,1 INT 2

15、1H MOV SI+BX,AL MOV D,AL CMP D,'Q' JZ Q CMP D,'q' JZ Q CMP D,'W' JZ W CMP D,'w' JZ W CMP D,'+' JZ A1 CMP D,'-' JZ A1 CMP D,'*' JZ A1 CMP D,'/' JZ A1 CMP D,'=' JZ A2 CMP D,' ' JZ A3 CMP D,30H JB WR CMP D,39H JA WR JMP LOO

16、P1Q: JMP QUITW: CLEANWR: LEA DX,STR2 MOV AH,9 INT 21H JMP SL ;出錯(cuò)則返回重新輸入運(yùn)算式A1: CMP S,0 JNZ WR DEC BX MOV COUNTA,BX ;取第一個(gè)輸入的數(shù)A MOV AL,D MOV S,AL ;將運(yùn)算符+|-|*|/放入S JMP LOOP1A2: CMP S,0 JZ XS0 DEC BX MOV COUNTB,BX ;取第二個(gè)輸入的數(shù)B CALL ASC_BIN ;將A,B轉(zhuǎn)換成二進(jìn)制后進(jìn)行四則運(yùn)算 CMP S,'+' JZ P1 CMP S,'-' JZ P2 C

17、MP S,'*' JZ P3 CMP S,'/' JZ P4A3: MOV DL,'=' MOV AH,2 INT 21H JMP A2P1: CALL P01 JMP SLP2: CALL P02 JMP SLP3: CALL P03 JMP SLP4: CALL P04 JMP SLXS0: LEA SI,AB ADD SI,BX MOV AL,'$' MOV SI,AL LEA SI,AB mov dx,si MOV AH,9 INT 21H JMP SLP01 PROC ;加法,A+B高位存入H,低位存入L MOV DX,

18、0 MOV AX,A ADD AX,B ADC DX,0 MOV L,AX MOV H,DX CALL XS ;用來將二進(jìn)制轉(zhuǎn)換成十進(jìn)制輸出,并返回重新輸入運(yùn)算式 RETP01 ENDPP02 PROC ;減法,若A<B則交換兩數(shù),結(jié)果顯示為負(fù)否則正常執(zhí)行A-B,高位0存入H,低位存入L MOV AX,A CMP AX,B JA CNT CMP AX,B JZ CNT MOV BX,B MOV A,BX MOV B,AX MOV DL,'-' MOV AH,2 INT 21HCNT:MOV AX,A SUB AX,B MOV DX,0 MOV L,AX MOV H,0 C

19、ALL XS RETP02 ENDPP03 PROC ;乘法,A*B,結(jié)果高位存入H,低位存入L MOV DX,0 MOV AX,A MUL B MOV L,AX MOV H,DX CALL XS RETP03 ENDPP04 PROC ;除法,A/B,并顯示余數(shù),高位0存入H,低位存入L MOV DX,0 MOV AX,A DIV B PUSH DX MOV H,0 MOV L,AX ;顯示商 CALL XS LEA DX,STR3 MOV AH,9 INT 21H mov c1,0 POP DX MOV H,0 MOV L,DX ;顯示余數(shù) CALL XS RETP04 ENDPASC_BIN PROC ;將十進(jìn)制轉(zhuǎn)換成二進(jìn)制 INC COUNTA MOV CX,COUNTA MOV AX,0 MOV BX,10 LEA SI,ABLOOP01: MOV DL,SI AND DL,0FH MOV SI,DL MUL BX MOV DL,SI MOV DH,0 ADD AX,DX INC SI LOOP LOOP01 MOV DX,SI LEA SI,AB SUB DX,SI MOV SI,DX CMP SI,COUNTA JNZ LOOP02 MOV A,AX MOV AX,COUNTB DEC COUNTA SUB AX,COUNTA MOV C

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論