




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微機(jī)原理與接口技術(shù) 課程設(shè)計(jì) 院 系:電氣與自動(dòng)化工程系 專 業(yè):通信工程 年級(jí)班級(jí): 學(xué) 號(hào): 姓 名: 指導(dǎo)教師: 設(shè)計(jì)日期: 2010-12-28 、 課程設(shè)計(jì)目的 每個(gè)同學(xué)在 1-2 周時(shí)間內(nèi),用匯編語言獨(dú)立完成一個(gè)程序題,以達(dá)到熟練運(yùn)用匯 編語言編程實(shí)現(xiàn)有比較完整功能的程序的目的。 二、課程設(shè)計(jì)要求 從鍵盤上輸入數(shù)字參與運(yùn)算, 并在屏幕上顯示結(jié)果, 至少實(shí)現(xiàn)加法減法運(yùn)算。 三、課題分析 該程序設(shè)計(jì)的關(guān)鍵是要根據(jù)四則運(yùn)算中( )、*、/ 、+、- 、= 的優(yōu)先級(jí)設(shè)置 符號(hào)的權(quán)值,其中(、 *、/ 、+、-、)、= 的權(quán)值分別設(shè)置為 5、4、4、3、3、1、 0,然后根據(jù)權(quán)值的大小進(jìn)行運(yùn)
2、算。程序使用數(shù)字標(biāo)志 SIGN1括號(hào)標(biāo)志SIGN2 分別來判斷數(shù)字是否輸入完畢和括號(hào)是否配對(duì), 另外程序定義兩個(gè)數(shù)據(jù)存儲(chǔ)區(qū)域 NUMB口 MARK其中NUM用來保存輸入的或運(yùn)算的數(shù)值,MARK用來保存輸入的 符號(hào)及其對(duì)應(yīng)的權(quán)值。程序不斷判斷輸入的符號(hào)是否是左括號(hào) ( ,當(dāng)遇到左 括號(hào)是在存儲(chǔ)區(qū)MAR保存其符號(hào),緊跟著將(的權(quán)值改為2并保存之,這 是為了使程序運(yùn)算括號(hào)內(nèi)的表達(dá)式,當(dāng)遇到右括號(hào)) 時(shí)括號(hào)內(nèi)運(yùn)算將結(jié)束。 需要注意的是程序執(zhí)行完括號(hào)內(nèi)表達(dá)式的運(yùn)算及乘除運(yùn)算后將在存儲(chǔ)區(qū)MAR中 覆蓋符號(hào)(、)、*、/ 及緊跟著的權(quán)值,使得程序在運(yùn)算整個(gè)四則運(yùn)算表達(dá)式時(shí) 當(dāng)括號(hào)內(nèi)表達(dá)式的運(yùn)算及乘除運(yùn)算結(jié)束
3、后存儲(chǔ)區(qū) MAR中只有 +、-運(yùn)算符 及緊跟著的權(quán)值,然后按照 +、 - 運(yùn)算符的左右順序從左到右進(jìn)行 +、 - 運(yùn) 算,當(dāng)最后遇到等號(hào) = 時(shí)輸出表達(dá)式的數(shù)值,然后再根據(jù)提示判斷是否繼 續(xù)執(zhí)行下一個(gè)四則運(yùn)算表達(dá)式。 - 1 - 四、流程圖 -2 - -3 - MOVCH,H JMP OTH7 五、程序源代碼 DATASSEGMENT ENDM STR1 DB CODESSEGMENT 0AH,0DH,* ASSUMECS:CODES,DS:DATAS *$ START: STR2 DB0AH,0DH, * CALL CLEAR *$ MOVAX,DATAS STR3 DB0AH,0DH, *
4、 MOVDS,AX Welcome you !*$ LEADI,NUMB STR4 DB0AH,0DH, * This is LEASI,MARK programe of sizeyunsuan *$ DISP STR1 STR5 DB0AH,0DH, * DISP STR2 Rang(-32768 to 32767) *$ DISP STR3 STR6 DB0AH,0DH, * JikeB082 DISP STR4 Hanyou 200807014225 *$ DISP STR5 STR7 DB0AH,0DH, * DISP STR6 *$ DISP STR7 STR8 DB DISP ST
5、R8 0AH,0DH,* CALL CR *$ MOVAX,0 MESG DB0AH,0DH, Do you want to MOVBX,0 continue? (y/n) $ MOVCX,0 SIGN1 DW0; 判斷數(shù)字是否 MOVDX,0 輸入完畢 START1: SIGN2 DW0; 判斷括號(hào)是否 CALL CR 配對(duì) INPUT: NUMB DW20 DUP(0) ; 保存輸入的數(shù) MOVAH,1 值 INT 21H MARK DB M ; 保存輸入的運(yùn) CMPAL, = 算符 JE PD ; 是等號(hào),進(jìn) DB10 DUP(0) 一步判斷輸入括號(hào)是否配對(duì) ERROR DB YOUR
6、INPUT IS WRONG$ CMPAL,28H DATASENDS JB INPUT DISP MACRO STR CMPAL,39H LEADX,STR JA INPUT MOVAH,9 CMPAL,2FH ; 判斷是數(shù) INT 21H 字還是符號(hào) ENDM JBE JUD ; 是符號(hào)轉(zhuǎn) CHOICE MACRO ASC,HAO,H; 宏定義,給運(yùn) 入響應(yīng)操作 算符賦權(quán)值 INC WORDPTRSIGN1 ; 將數(shù)字標(biāo)志 CMPAL,ASC 位加 1 JNE OTH 將 ASCII 碼 轉(zhuǎn)16進(jìn)制 MOVAH,0 XCHGAX,DIDECSI MULBXMOVCL,SI MOVBX,10
7、 XCHGAX,DI ADDDI,AX CALL MATCH 么運(yùn)算符并進(jìn)行相應(yīng)的計(jì)算 JMP AGAIN ; 判斷是什 JMP INPUT PD: CMPWORD PTR SIGN2,0 ; 判斷配對(duì)標(biāo) SAVE: 志位 CMPCH,0 ; 判斷是否 JE JUD 曰牡口. 是等號(hào) JMP BC JE OUTPUT JUD:CMPWORDPTR SIGN1,0 ;判斷數(shù)值指 CMPCH,1 針是否已經(jīng)下移一位 JE INPUT ; “ ) ”不保 JE FUH 存,輸入下一個(gè)數(shù) ADDDI,2 INC SI MOVWORDPTR SIGN1,0 ; 將數(shù)字標(biāo)志 MOVSI,AL ; 保存符號(hào)
8、 位復(fù) 0 INC SI FUH:CALL ADVANCE ; 設(shè)定優(yōu)先 CMPCH,5 ; 判斷是否 級(jí) 是左括號(hào) CMPCH,5 ; 判斷輸入 JNE GO_ON 的符號(hào)是否是左括號(hào) MOVCH,2 ; 改變 ( 的權(quán) JNE PY ; 不是則判 值 斷輸入的是否是右括號(hào) GO_ON: INC WORD PTR SIGN2 ; 是左括號(hào), MOVSI,CH ; 緊跟著保 括號(hào)標(biāo)志位加 1 存符號(hào)的權(quán)值 PY: JMP INPUT CMPCH,1 ; 判斷輸入 的是否是右括號(hào) BC: LEADX,ERROR JNE AGAIN MOVAH,9 DECWORD PTR SIGN2 ; 是右括號(hào)
9、, INT 21H 括號(hào)標(biāo)志位減 1 JMP J_SHU AGAIN: MATCHPROCNEAR ; 子程序,進(jìn) CMPBYTEPTRSI, M ;判斷運(yùn)算符 行相應(yīng)的運(yùn)算 存儲(chǔ)區(qū)是否為空如 23*56(8*19) PUSHAX /6 + 67 - 8= 1322 XORAX,AX JE SAVE XORBX,BX CMPCH,SI ;SI 的內(nèi) CMPCL,2AH ; 乘法運(yùn)算 容為前一個(gè)符號(hào)或其權(quán)值 JNE NEXT1 JA SAVE SUBDI,2 CMPBYTE PTRSI, ( XCHGBX,DI JNE YIDO SUBDI,2 DECSI XCHGAX,DI JMP INPUT
10、 IMUL BX YIDO: MOVDI,AX - 5 - ADDDI,2 JMP FINISH NEXT1:CMPCL,2FH ; 除法運(yùn)算 JNE NEXT2 SUBDI,2 XCHGBX,DI SUBDI,2 XCHGAX,DI CWD IDIV BX MOVDI,AX ADDDI,2 JMP FINISH NEXT2:CMPCL,2BH ; 加法運(yùn)算 JNE NEXT3 SUBDI,2 XCHGBX,DI SUBDI,2 ADDDI,BX ADDDI,2 JMP FINISH NEXT3:CMPCL,2DH ; 減法運(yùn)算 JNE FINISH SUBDI,2 XCHGBX,DI SUB
11、DI,2 SUBDI,BX ADDDI,2 FINISH: POPAX RET MATCH ENDP ; 清屏 ; 回車換行 ; 輸出運(yùn)算 ADVANCE PROC CHOICE 28H,1,5 ;( OTH1:CHOICE 29H,2,1 ;) OTH2:CHOICE 2AH,3,4 ;* OTH3:CHOICE 2FH,4,4 ;/ OTH4:CHOICE 2BH,5,3 ;+ OTH5:CHOICE 2DH,6,3 ;- OTH6:CHOICE 3DH,7,0 ;= OTH7:RET ADVANCE ENDP CLEAR PROC NEAR PUSHAX PUSHBX PUSHCX PU
12、SHDX MOVAX,0600H MOVBH,0FH MOVCX,0 MOVDX,184FH INT 10H POPAX POPBX POPCX POPDX RET CLEAR ENDP CR PROC NEAR PUSHAX PUSHDX MOVAH,2 MOVDL,0DH INT 21H MOVAH,2 MOVDL,0AH INT 21H POPDX POPAX RET CR ENDP OUTPUT: 結(jié)果 SUBDI,2 CMPWORD PTRDI,0 JGE W1 NEGWORD PTRDI MOVDL, - MOVAH,2 INT 21H W1: MOVBX,10000 MOVCX,
13、5 MOVSI,0 W2: MOVAX,DI -7 - CWD DIV BX MOVDI,DX CMPAL,0 JNE W3 CMPSI,0 JNE W3 CMPCX,1 JE W3 JMP W4 W3: MODL,AL ADDDL,30H M0AH,2 INT 21H MO01 W4: MOAX,BX MODX,0 MOBX,10 DIV BX MOBX,AX LOOP W2 CALL CR DISP MESG MOAH,1 INT 21H CMPAL, n JE J_SHU CMPAL, N JE J_SHU MOVWORD PTRDI+2,0 CALL CR LEADI,NUMB LEA
14、SI,MARK JMP START1 J_SHU: MOAH,4CH INT 21H CODESENDS ENDSTART 六、結(jié)果顯示 Uelcomepou ? This is prog|i?aniE nf s nlseiuMisuan Rang-3276S to 22767? JikeB082 Hdnsrou 200807914225 4 you uan七 to con inue? l?87=2i987 o you wan七 bo continue? 35G-/6*67-8-1322 o you wari七 七o cont: inue? 七、感想、收獲及體會(huì) 學(xué)習(xí)匯編語言:大一學(xué)習(xí)的是 C
15、 語言,因此,在學(xué)匯編語言之初,面對(duì)格 式之類的感覺很不適應(yīng)。 C 語言用的是一個(gè)又一個(gè)變量,而匯編語言則是利用一 個(gè)又一個(gè)寄存器來實(shí)現(xiàn)。 而寫代碼的時(shí)候, 經(jīng)常會(huì)因?yàn)橐恍┓?hào), 或者字長(zhǎng)的失 誤,完全是無心之失而導(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)行逐步
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《二零二五年度高速公路服務(wù)區(qū)成品油供應(yīng)合作協(xié)議》
- 2025年度解除健身器材租賃合同的法律服務(wù)
- 2025年度租賃房屋消防設(shè)施維護(hù)協(xié)議
- 二零二五年度新能源汽車半股轉(zhuǎn)讓與充電樁建設(shè)合同
- 2025年度模特個(gè)人品牌授權(quán)簽約合同
- 第五章 第二節(jié) 氮及其化合物教學(xué)設(shè)計(jì)-2023-2024學(xué)年高一上學(xué)期化學(xué)人教版2019必修第二冊(cè)
- 2025年度旅游服務(wù)合同解除通知函范本
- 二零二五年度股東分紅權(quán)與公司發(fā)展綁定協(xié)議
- 2025年度環(huán)保產(chǎn)業(yè)合伙公司股權(quán)合作協(xié)議
- 二零二五年度網(wǎng)約車平臺(tái)司機(jī)服務(wù)合同范本
- 路面工程重點(diǎn)、關(guān)鍵、和難點(diǎn)工程的施工方案(技術(shù)標(biāo))
- 港口集裝箱物流系統(tǒng)建模與仿真技術(shù)研究-教學(xué)平臺(tái)課件
- 合肥市城市大腦·數(shù)字底座白皮書2020
- 杭州灣跨海大橋項(xiàng)目案例ppt課件
- (完整版)光榮榜25張模板
- 工業(yè)催化劑作用原理—金屬氧化物催化劑
- 2022年三八婦女節(jié)婦女權(quán)益保障法律知識(shí)競(jìng)賽題庫(kù)及答案(共290題)
- 優(yōu)秀教材推薦意見(真實(shí)的專家意見)
- Of studies原文譯文及賞析
- QTD01鋼質(zhì)焊接氣瓶檢驗(yàn)工藝指導(dǎo)書
- 辛棄疾生平簡(jiǎn)介(課堂PPT)
評(píng)論
0/150
提交評(píng)論