匯編語言 加減混合運(yùn)算課件_第1頁
匯編語言 加減混合運(yùn)算課件_第2頁
匯編語言 加減混合運(yùn)算課件_第3頁
匯編語言 加減混合運(yùn)算課件_第4頁
匯編語言 加減混合運(yùn)算課件_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、安徽省巢湖學(xué)院計(jì)算機(jī)與信息工程學(xué)院課程設(shè)計(jì)報(bào)告課程名稱 微型計(jì)算機(jī)系統(tǒng)原理及應(yīng)用 課題名稱 實(shí)現(xiàn)加減混合運(yùn)算 專業(yè)班級(jí) 11計(jì)本(3)班 學(xué) 號(hào) 1 1 0 1 1 2 1 4 姓 名 王能 聯(lián)系方式指導(dǎo)教師 葉海燕 完成日期: 2014年1月 2日微機(jī)原理課程設(shè)計(jì):實(shí)現(xiàn)加減混合運(yùn)算目 錄課程設(shè)計(jì)任務(wù)書I微機(jī)原理及應(yīng)用課程設(shè)計(jì)成績評定表IV目 錄I一 設(shè)計(jì)任務(wù)描述11.1設(shè)計(jì)目的11.2設(shè)計(jì)題目1二 概要設(shè)計(jì)12.1設(shè)計(jì)主要內(nèi)容12.2設(shè)計(jì)思路流程圖22.3程序運(yùn)行結(jié)果2三 程序代碼3四 總結(jié)體會(huì)10五 致謝11- 1 -1、 設(shè)計(jì)任務(wù)描述1.1課程設(shè)計(jì)目的進(jìn)行程序設(shè)

2、計(jì)的方法和技能的基本訓(xùn)練,鞏固在課堂上學(xué)到的有關(guān)程序設(shè)計(jì)的基本知識(shí)和基本方法,通過實(shí)際動(dòng)手能力的培養(yǎng),進(jìn)一步熟悉匯編語言的結(jié)構(gòu)和使用方法,打到獨(dú)立編制和調(diào)試一定滾魔的匯編語言程序水平。1.2課程設(shè)計(jì)題目四則混合運(yùn)算設(shè)計(jì)程序,實(shí)現(xiàn)從鍵盤上輸入一個(gè)加減混合運(yùn)算式,輸入等號(hào)后,在下一行上顯示十進(jìn)制計(jì)算結(jié)果。顯示示例:Input:3+5+7+8=23二、概要設(shè)計(jì)2.1設(shè)計(jì)主要內(nèi)容根據(jù)題目的要求,該程序設(shè)計(jì)的關(guān)鍵是要根據(jù)四則運(yùn)算中()、*、/、+、-、=的優(yōu)先設(shè)置符號(hào)的權(quán)值,其中/、*、+、-、=的權(quán)值分別設(shè)置為4、4、3、3、1,然后根據(jù)權(quán)值大小進(jìn)行運(yùn)算。程序使用數(shù)字標(biāo)志SIGN1、括號(hào)標(biāo)志SIGN2

3、分別來判斷數(shù)字是否輸入完畢和括號(hào)是否配對,另外程序定義兩個(gè)數(shù)據(jù)存儲(chǔ)區(qū)域 NUMB和MARK,其中NUMB用來保存輸入的或運(yùn)算的數(shù)值,MARK用來保存輸入的符號(hào)及其對應(yīng)的權(quán)值??梢园颜麄€(gè)源程序大致劃分為幾個(gè)基本結(jié)構(gòu):程序加法、減法、乘法、除法、顯示結(jié)果五個(gè)部分。首先用1號(hào)功能以輸入字符的形式接收輸入的算式,再判斷輸入字符ASCII碼,如果是+、-、*、/、=或數(shù)字,則跳轉(zhuǎn)到相應(yīng)功能模塊,并把輸入的字符轉(zhuǎn)為數(shù)值傳入BX寄存器,在各功能模塊中繼續(xù)用1號(hào)功能輸入字符,執(zhí)行以上操作,將輸入號(hào)符轉(zhuǎn)為數(shù)據(jù)存入DX中,由于*、/優(yōu)先級(jí)要高,加、減模塊的實(shí)現(xiàn)中要根據(jù)輸入運(yùn)算符號(hào)進(jìn)行將BX入棧操作,如果是相同優(yōu)先

4、級(jí)運(yùn)算符,則直接將BX,DX中的數(shù)據(jù)進(jìn)行相應(yīng)運(yùn)算,輸入=則輸出運(yùn)算結(jié)果,這時(shí)輸出字符串Continue?,用戶輸入y/n執(zhí)行繼續(xù)計(jì)算和退出操作。2.2 設(shè)計(jì)思路流程圖開始AL=-AL=從鍵盤輸入字符YAL=+從鍵盤輸入加數(shù)并執(zhí)行加運(yùn)算NY從鍵盤輸入加數(shù)并執(zhí)行減運(yùn)算從鍵盤輸入加數(shù)并執(zhí)行乘運(yùn)算YAL=*從鍵盤輸入加數(shù)并執(zhí)行除運(yùn)算NAL=/YNN輸出結(jié)果Y結(jié)束2.3 程序運(yùn)行結(jié)果輸入要計(jì)算的式子,按等號(hào)輸出結(jié)果,計(jì)算機(jī)提示是否繼續(xù)輸入,輸入字符y,繼續(xù)輸入,鍵入n退出程序,如果鍵入字符為其他,則反回提示輸入。三、程序代碼- 10 -CODES SEGMENTASSUME CS:CODES,DS:DA

5、TAS,SS:STACKSNEXTLINE MACRO ;顯示換行宏 MOV AH,2 MOV DL,10 INT 21H MOV AH,2 MOV DL,13 INT 21H ENDMSTART: MOV AX,DATAS MOV DS,AX MOV BX,0INPUT1: MOV AH,1 ;從鍵盤輸入一個(gè)字符 INT 21H CMP AL,+ ;判斷是否為+ JZ ADDITION CMP AL,- ;判斷是否為- JZ SUBTRATION CMP AL,* ;判斷是否為* JZ MULTIPLICATION CMP AL,/ 判斷是否為/ JZ DIVISION CMP AL,= 判

6、斷是否為= JZ RESULT CMP AL,58 判斷輸入是否為數(shù)字 JS L1 JMP INPUT1L1: CMP AL,47節(jié) JNS L2 JMP INPUT1L2: SUB AL,48 如果輸入為數(shù)字,將數(shù)值計(jì)入BX MOV CL,AL MOV AX,BX MOV CH,10 MUL CH ADD AL,CL MOV BX,AX JMP INPUT1 ADDITION: 輸入+后,進(jìn)入加法運(yùn)算 MOV DX,0INPUT2: MOV AH,1 從鍵盤輸入字符 INT 21HCMP AL,+ 判斷是否為+ JZ L23 CMP AL,- 判斷是否為- JZ L24 CMP AL,* 判

7、斷是否為* JZ L25 CMP AL,/ 判斷是否為/ JZ L26 CMP AL,= 判斷是否為= JZ L27 CMP AL,58 判斷是否為數(shù)字 JS L21 JMP INPUT2L21: CMP AL,47 JNS L22 JMP INPUT2 如果不是數(shù)字,則跳轉(zhuǎn)到INPUT2L22: SUB AL,48 將輸入字符轉(zhuǎn)換為數(shù)值 MOV CL,AL MOV AX,DX MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT2L23: ADD BX,DX 執(zhí)行加運(yùn)算 JMP ADDITIONL24: ADD BX,DX JMP SUBTRATION

8、L25: ADD BX,DX JMP MULTIPLICATIONL26: ADD BX,DX JMP DIVISIONL27: ADD BX,DX JMP RESULT SUBTRATION: 如果輸入-,則執(zhí)行減法 MOV DX,0INPUT3: MOV AH,1 INT 21H CMP AL,+ 判斷是否為+ JZ L33 CMP AL,- 判斷是否為- JZ L34 CMP AL,* 判斷是否為* JZ L35 CMP AL,/ 判斷是否為/ JZ L36 CMP AL,= 判斷是否為= JZ L37 CMP AL,58 判斷是否為數(shù)字 JS L31 JMP INPUT3L31: CM

9、P AL,47 JNS L32 JMP INPUT3L32: SUB AL,48 將字符轉(zhuǎn)換為數(shù)值 MOV CL,AL MOV AX,DX MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT3L33: SUB BX,DX 執(zhí)行減法操作 JMP ADDITIONL34: SUB BX,DX JMP SUBTRATIONL35: SUB BX,DX JMP MULTIPLICATIONL36: SUB BX,DX JMP DIVISIONL37: SUB BX,DXJMP RESULTMULTIPLICATION: MOV DX,0INPUT4: MOV

10、AH,1 INT 21H判斷是否為+判斷是否為- CMP AL,+ JZ L43 CMP AL,- JZ L44 CMP AL,* 判斷是否為* JZ L45 CMP AL,/ 判斷是否為/ JZ L46 CMP AL,= 判斷是否為= JZ L47 CMP AL,58 判斷是否為數(shù)字 JS L41 JMP INPUT4L41: CMP AL,47 JNS L42 JMP INPUT4L42: SUB AL,48 將字符轉(zhuǎn)換為數(shù)值 MOV CL,AL MOV AX,DX 將字輸入數(shù)字加入數(shù)值 MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT4L43:

11、 MOV AX,BX 將BX移入AX MUL DX 與DX中的數(shù)進(jìn)行乘運(yùn)算 MOV BX,AX 將AX中的數(shù)值返回BX JMP ADDITIONL44: MOV AX,BX 將BX移入AX MUL DX 與DX中的數(shù)進(jìn)行乘運(yùn)算 MOV BX,AX 將AX中的數(shù)值返回BX JMP SUBTRATIONL45: MOV AX,BX 將BX移入AX MUL DX 與DX中的數(shù)進(jìn)行乘運(yùn)算 MOV BX,AX 將AX中的數(shù)值返回BXJMP MULTIPLICATIONL46: MOV AX,BX 將BX移入AX MUL DX 與DX中的數(shù)進(jìn)行乘運(yùn)算 MOV BX,AX 將AX中的數(shù)值返回BX JMP D

12、IVISIONL47: MOV AX,BX 將BX移入AX MUL DX 與DX中的數(shù)進(jìn)行乘運(yùn)算 MOV BX,AX 將AX中的數(shù)值返回BX JMP RESULT DIVISION: MOV DX,0INPUT5: MOV AH,1 INT 21H 判斷是否為+判斷是否為-判斷是否為*判斷是否為/判斷是否為=判斷是否為數(shù)字 CMP AL,+ JZ L53 CMP AL,- JZ L54 CMP AL,* JZ L55 CMP AL,/ JZ L56 CMP AL,= JZ L57 CMP AL,58 JS L51 JMP INPUT5L51: CMP AL,47 JNS L52 JMP INP

13、UT5L52: SUB AL,48 MOV CL,AL MOV AX,DX MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT5L53: MOV AX,BXDIV DX MOV AH,0 MOV BX,AX JMP ADDITIONL54: MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP SUBTRATIONL55: MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP MULTIPLICATIONL56: MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP DIVI

14、SIONL57: MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP RESULTRESULT: 顯示結(jié)果 MOV CH,10 MOV CL,100R1: 將BX中的計(jì)算結(jié)果以十進(jìn)制輸出 MOV AX,BX DIV CL MOV DL,AL MOV DH,AH MOV AL,AH MOV AH,0 MOV BX,AX ADD DL,48 MOV AH,2 INT 21H MOV AH,0 MOV AL,CL DIV CH MOV CL,ALCMP CL,1 JZ R2 JMP R1R2: MOV DL,DH ADD DL,48 MOV AH,2 INT 21HS2:

15、 NEXTLINE LEA DX,STRING 詢問是否繼續(xù)輸入 MOV AH,9 INT 21H MOV AH,1 INT 21H CMP AL,y 輸入y則跳轉(zhuǎn)到S1 JE S1 CMP AL,n 輸入n則跳轉(zhuǎn)到S3,即結(jié)束程序 JE S3 JNE S2 S3: MOV AH,4CH INT 21HCODES ENDS四、總結(jié)體會(huì)通過這次的課程設(shè)計(jì),讓我們對匯編語言有了更進(jìn)一步的認(rèn)識(shí),加強(qiáng)了我們用匯編語言的能力。并經(jīng)過修改,完成了簡單的設(shè)計(jì)。 匯編語言程序設(shè)計(jì)是一門很抽象的科學(xué),學(xué)起來也比較難,但隨著學(xué)習(xí)的推進(jìn),以及上機(jī)編程,逐漸感到輕松,在這次課程設(shè)計(jì)中,讓我更加熟悉了匯編語言的一些基本

16、的指令;掌握了匯編語言的一些基本的中斷調(diào)用功能,可以用匯編語言調(diào)用各種中斷調(diào)用功能,并由此實(shí)現(xiàn)對硬件的控制;熟練的利用子程序和宏進(jìn)行編程。 在設(shè)計(jì)過程中,不斷對程序進(jìn)行修改,改進(jìn),增強(qiáng)了自己分析問題解決問題的能力:在不斷的調(diào)試中,也讓自己發(fā)現(xiàn)了自己存在的一些錯(cuò)誤以及一些調(diào)試時(shí)應(yīng)注意的問題,同時(shí)也更深的理解了寄存器,存儲(chǔ)器等工作原理以及一些指令執(zhí)行后對它們的改變,例如,int指令會(huì)改變al的值,在編程時(shí)應(yīng)注意這方面的問題。在編寫過程中,讓我深刻的體會(huì)到了科學(xué)的嚴(yán)謹(jǐn)性。有時(shí)一個(gè)逗號(hào)或者寫錯(cuò)一個(gè)字母這樣一點(diǎn)點(diǎn)小錯(cuò)誤,就會(huì)產(chǎn)生很大的錯(cuò)誤,導(dǎo)致調(diào)試的失敗。 當(dāng)設(shè)計(jì)一步步接近成功,每一個(gè)子程序的調(diào)試成功,都讓自己感到喜悅,從中體會(huì)到編程的樂趣,有一種成就感,也讓自己樹立了信心,增強(qiáng)了對匯編語言程序設(shè)計(jì)的興趣。五、致謝在這個(gè)課程設(shè)計(jì)

溫馨提示

  • 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

提交評論