匯編模擬電子琴程序1_第1頁
匯編模擬電子琴程序1_第2頁
匯編模擬電子琴程序1_第3頁
匯編模擬電子琴程序1_第4頁
匯編模擬電子琴程序1_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、匯編語言程序設(shè)計課程設(shè)計報告題目: 模擬電子琴(音樂播放項目子程序) 指導(dǎo)老師: 學(xué)生姓名: 學(xué) 號: 專 業(yè): 班 級: 2011年6月20日目錄:(一)程序設(shè)計任務(wù) 1.1題目···························3 1.2要求·······

2、;····················3 (二)課題背景 2.1匯編語言的優(yōu)點·················3 2.2課題意義········

3、···············32.3程序設(shè)計目的···················3(三)運行環(huán)境·············

4、········4 (四)程序概要設(shè)計 4.1課程設(shè)計基礎(chǔ)知識(附圖)········4,5 4.2程序設(shè)計思想···················6 (五)程序設(shè)計流程圖及功能圖·····

5、3;·6,7 (六)程序代碼及其說明·············8,9 (七)實現(xiàn)界面(圖)················10,11 (八)總結(jié)與體會············

6、83;······12 (九)參考文獻(xiàn)·····················12(一) 程序設(shè)計任務(wù):1.1題目:模擬電子琴1.2要求:設(shè)計一個可模擬發(fā)聲的電子琴程序,并實現(xiàn)功能,附加顯示。(二) 課題背景: 2.1匯編語言的優(yōu)點:匯編語言由于采用了助記符號來編寫程序,比用機器語言的二進(jìn)制代碼編程要方便些,在一定程度上簡化了

7、編程過程。匯編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應(yīng),基本保留了機器語言的靈活性。使用匯編語言能面向機器并較好地發(fā)揮機器的特性,得到質(zhì)量較高的程序。用匯編語言等非機器語言書寫好的符號程序稱為源程序,運行時匯編程序要將源程序翻譯成目標(biāo)程序。目標(biāo)程序是機器語言程序,它一經(jīng)被安置在內(nèi)存的預(yù)定位置上,就能被計算機的CPU處理和執(zhí)行。匯編語言像機器指令一樣,是硬件操作的控制信息,因而仍然是面向機器的語言,使用起來還是比較繁瑣費時,通用性也差。但是,匯編語言用來編制系統(tǒng)軟件和過程控制軟件,其目標(biāo)程序占用內(nèi)存空間少,運行速度快,有著高級語言不可替代的用途。設(shè)計一個可模擬發(fā)聲的電子

8、琴程序,作為音樂播放項目的子程序。2.2課題意義:有人這樣說過:時間多么重要,錯過了就永遠(yuǎn)錯過。時間多么堅定,因為時間從不回頭。時間多么關(guān)鍵,就在那一刻把握。時間就是一切,作為學(xué)生的我們更應(yīng)該有很強的時間意識,剛剛學(xué)完匯編語言,借此機會用匯編語言編制了一個時鐘的程序。進(jìn)一步鞏固所學(xué)的知識,熟練應(yīng)用匯編語言進(jìn)行一些程序的制作,進(jìn)一步培養(yǎng)對編程的興趣。為以后的工作打下基礎(chǔ)。檢驗自己的學(xué)習(xí)成果。我自己學(xué)到的知識應(yīng)用到實際當(dāng)中,做一些對自己生活和學(xué)習(xí)有用的程序,達(dá)到學(xué)以至用的目的。2.3程序設(shè)計目的:利用匯編功能實現(xiàn)一個小的電子琴程序,主要功能是根據(jù)鍵盤上的按鍵發(fā)出不同的音符,每個音符由它的音調(diào)和頻率

9、以及時間來決定。(3) 運行環(huán)境: 硬件:8086以上CPU,內(nèi)存256M以上。 軟件:WINDOWS操作系統(tǒng),MASM,LINK匯編編譯鏈接件。(四)程序概要設(shè)計:4.1課程設(shè)計基礎(chǔ)知識(附圖):8253A內(nèi)部結(jié)構(gòu):8253外部引腳圖: 計數(shù)器內(nèi)部結(jié)構(gòu):8253A端口地址: 4.2程序設(shè)計思想:音樂發(fā)聲是根據(jù)頻率和它的延時實現(xiàn)的,不同的音符有不同的頻率和時間,根據(jù)任務(wù)要求先設(shè)計一個可視菜單,應(yīng)用系統(tǒng)顯示功能,設(shè)置一定的顯示方式,在對每個音符1-7定義應(yīng)有的頻率和時間,插入發(fā)聲子程序,利用DOS功能輸入相應(yīng)數(shù)字發(fā)出相應(yīng)的音,整個程序利用棧來實現(xiàn),這樣就做成了一個簡單的模擬電子琴程序。顯示菜單(

10、四)程序設(shè)計流程圖:實現(xiàn)功能健康離開家牛津布定義時間定義頻率編譯音符設(shè)置文本方式 程序設(shè)計功能圖:開 始清 屏顯示提示 輸入NAL=1?NYAL=2?NY發(fā)出DO聲 發(fā)出RI聲AL=3? NYAL=4? Y發(fā)出MI聲AL=5? 播放童年播放童年 N發(fā)出FA聲N NYAL=6? NY發(fā)出SO聲AL=7? Y發(fā)出LA聲 發(fā)出SI聲 NAL=回車? Y 退出程序 (六)程序代碼及其說明:EXTRNSOUND:FAR,CLEANMP:FAR,SET:FAR ;當(dāng)代碼段長時,不能放在同一段時要標(biāo)示為FARpublicmpa;模擬電子鋼琴程序STACKSEGMENTPARASTACK'STACK&

11、#39;定義堆棧段DB64 DUP('STACK')STACKENDSDSEGSEGMENTPARA'DATA'定義數(shù)據(jù)段WARDB 13,10,5 DUP(' '),'WARING ! Please press the right number!',13,10,'$'TsDB 5 DUP(' '),'Press the key 1-7 to Play the panio!',13,10DB 5 DUP(' '),'Press Enter to exit to

12、 the main menu!','$'DSEG ENDSCODESEGMENTPARA'CODE'定義代碼段ASSUME CS:CODE,DS:DSEG,SS:STACKMpa proc farpushdi;寄存器入棧push DSpush DXpush CXpush BXpush AXSTART:MOVAX,DSEG;初始化數(shù)據(jù)段MOVDS,AX;MOVaH, 0 ;設(shè)置顯示方式為2(文本80*25);MOVAL,2 ;INT10H;*顯示宏定義DISPLAYMACRO b LEA DX,b MOV AH,9 INT 21H ENDM SRR:CAL

13、LCLEANMPCALLSETDISPLAYTs;顯示提示play:MOVAH,7INT21H;開始演奏cmpal,0dhjeexmp;退出程序CMPAL,'1'JEONECMPAL,'2'JETWO CMPAL,'3'JETHREECMPAL,'4'JEFOURCMPAL,'5'JEFIVECMPAL,'6'JESIXcmpal,'7'jeSEVENDISPLAYWAR;輸入錯誤提示jmpplayONE:movdi,262JMPMCCTWO:movdi,294JMPMCCTHREE

14、:movdi,330JMPMCCFOUR:movdi,349JMPMCCFIVE:movdi,392JMPMCCSIX:movdi,440jmpmccSEVEN:movdi,494jmpmccMCC:movbx,400CALLSOUNDJMPplayexmp:pop ax;寄存器出棧pop bxpop cxpop dxpop dspopdiret;程序返回mpaENDPCODEENDSENDSTART(7) 實現(xiàn)界面(圖)(八)總結(jié)與體會:以前從沒有學(xué)過關(guān)于匯編語言的知識,起初學(xué)起來感覺很有難度。當(dāng)知道要做課程設(shè)計的時候心里面感覺有些害怕和擔(dān)心, 擔(dān)心自己不會或者做不好。但是當(dāng)真的要做的時候也只好進(jìn)自己作大的努力去做, 做到自己最好的。我們在這個過程中有很多自己的感受,我想很多同學(xué)都會和我有一樣的感受,那就是感覺匯編語言真的是很神奇,很有意思。我們從開始的擔(dān)心和害怕漸漸變成了享受,享受著匯編帶給我們的快樂??粗约鹤龀鰜淼臇|西,心里面的感覺真的很好。雖然我們做的東西都還很簡單,但是畢竟是我們自己親手做出來的。很有成就感。 在這次課程設(shè)計中,我真正體會到了合作的重要性,遇到很多問題時,當(dāng)我看書查資料不能解決時,這是去找同學(xué)討論一下,收獲

溫馨提示

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

評論

0/150

提交評論