用匯編語(yǔ)言編寫(xiě)計(jì)算機(jī)鋼琴程序_第1頁(yè)
用匯編語(yǔ)言編寫(xiě)計(jì)算機(jī)鋼琴程序_第2頁(yè)
用匯編語(yǔ)言編寫(xiě)計(jì)算機(jī)鋼琴程序_第3頁(yè)
用匯編語(yǔ)言編寫(xiě)計(jì)算機(jī)鋼琴程序_第4頁(yè)
用匯編語(yǔ)言編寫(xiě)計(jì)算機(jī)鋼琴程序_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2009年10月用匯編語(yǔ)言編寫(xiě)計(jì)算機(jī)鋼琴程序摘要:匯編語(yǔ)言是學(xué)習(xí)計(jì)算機(jī)尤其是微型計(jì)算機(jī)原理,以及進(jìn)行微型計(jì)算機(jī)開(kāi)發(fā)應(yīng)用不可缺少的一部分,用匯編語(yǔ)言編寫(xiě)計(jì)算機(jī)鋼琴程序可以增加學(xué)生學(xué)習(xí)匯編語(yǔ)言程序設(shè)計(jì)課程的趣味性。本文給出了一種具體設(shè)計(jì)與實(shí)現(xiàn)的方法。關(guān)鍵詞:匯編語(yǔ)言計(jì)算機(jī)鋼琴程序中圖分類(lèi)號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:B文章編號(hào):1002-2422(2009)05-0125-03CompilingAComputerPianoProAbstract:Assemblylanguageisanindispensablepartofstudyingthecomputer,especiallytheprincipleofmicrocomputer,aswellasthedevelopmentandapplicationofmicrocomputerUsingassemblylanguagetocKeywordAssemblyLanguageComputerPia隨著計(jì)算機(jī)的出現(xiàn),匯編語(yǔ)言程序設(shè)計(jì)的教學(xué)就開(kāi)始在國(guó)內(nèi)外各高校進(jìn)行。計(jì)算機(jī)高級(jí)語(yǔ)言的發(fā)展和可視化開(kāi)發(fā)工具的流行,使得匯編語(yǔ)言的作用似乎在下降,目前微型計(jì)算機(jī)和嵌入式系統(tǒng)的廣泛應(yīng)用又給匯編語(yǔ)言程序設(shè)計(jì)課程注入了新的活力。然而,匯編語(yǔ)言程序設(shè)計(jì)課程的教學(xué)效果一直不是十分理想。目前現(xiàn)狀是教師教得累,學(xué)生也學(xué)得辛苦。究其原因主要是匯編程序本身并沒(méi)有提供任何函數(shù)功能,學(xué)生難以編寫(xiě)具有輸入操作、顯示輸出結(jié)果的程序,使得程序調(diào)試不直觀,教學(xué)內(nèi)容深?yuàn)W,學(xué)習(xí)過(guò)程枯燥。卻步。加上學(xué)生對(duì)匯編語(yǔ)言有一種誤解,認(rèn)為匯編語(yǔ)言是低級(jí)的、沒(méi)用的,不愿意認(rèn)真學(xué)習(xí)。事實(shí)上,匯編語(yǔ)言是在"低層"但它不低級(jí)。在匯編語(yǔ)言程序設(shè)計(jì)教學(xué)過(guò)程中,重視程序交互設(shè)計(jì)可以提高學(xué)生的學(xué)習(xí)興趣。用匯編語(yǔ)言編寫(xiě)計(jì)算機(jī)鋼琴程序,在計(jì)算機(jī)上顯示鋼琴琴鍵,用鍵盤(pán)數(shù)字鍵對(duì)應(yīng)各音階,使計(jì)算機(jī)成為可直接演奏的鋼琴,這種交互程序的設(shè)計(jì)與調(diào)試可以大大增加學(xué)生學(xué)習(xí)匯編語(yǔ)言程序設(shè)計(jì)課程的興趣。在計(jì)算機(jī)上顯示鋼琴琴鍵,需要使用BIOS中斷調(diào)用INT10H,子功能值(顏色),(CX、DX)=圖形坐標(biāo)。通數(shù)值,可以使其輸出不同頻率的波形,當(dāng)與門(mén)打開(kāi)后,經(jīng)過(guò)放大器放大的作用,便可驅(qū)動(dòng)揚(yáng)聲器發(fā)出不同頻率的音調(diào),利用延時(shí)程序控制聲音持續(xù)的時(shí)間,關(guān)閉與門(mén)就可切斷揚(yáng)聲器。要使計(jì)算機(jī)成為可直接演奏的鋼琴,則需INT16H的1號(hào)功能來(lái)檢查鍵盤(pán)緩沖區(qū)是否為空,并可接收鍵入的字符,程序中建立一張表,表上字符與頻率值、音階高度及延時(shí)構(gòu)成一個(gè)對(duì)應(yīng)關(guān)系。表1音符、頻率值及音階高度對(duì)應(yīng)表12345678音符1234567i頻率值鋼琴琴鍵顯示設(shè)計(jì)如圖1所示。NO調(diào)用揚(yáng)聲器發(fā)出音調(diào)過(guò)程及畫(huà)出置8253為計(jì)數(shù)器2的方式開(kāi)始設(shè)置屏幕顯示萬(wàn)式為圖形方式繪制鋼琴琴鍵圖置8255為方式0,輸出圖3鋼琴?gòu)椬喔饕綦A高度顯示效果圖程序源代碼如下:階高度收稿日期:2009-07-13*汪本慧廣州華南商貿(mào)職業(yè)學(xué)院講師(廣州510650)。START:MOVAX,DATAMOVDS,AXMOVAH,0MOVAL,12H;圖形方式MOVAH,6MOVBH,4;紅色背景MOVAL,0;清屏MOVCH,0MOVCL,0MOVDL,79MOVSI,280REDRAW:MOVDI,26MOVCX,26DECDXCMPDX,SIJBNEXTMOVBL,0PAINT:MOVAL,7;印出點(diǎn)的顏色白色->AL,畫(huà)白色琴鍵MOVBH,0INCCXCMPCX,DIJBEPAINTADDDI,74ADDCX,28INCBLCMPBL,7JBEPAINTJMPREDRAWNEXT:MOVSI,280MOVDX,400REDRAW1:MOVDI,63ADDDI,46MOVCX,63DECDXCMPDX,SIJBNEXT1MOVBL,0PAINT1:MOVAL,0;印出點(diǎn)的顏色黑色->AL,畫(huà)黑色琴鍵MOVAH,OCHMOVBH,0CMPBL,2JEJUMPCMPBL,6JEJUMPJUMP:INCCXCMPCX,DIJBEPAINT1ADDDI,74ADDCX,28INCBLCMPBL,7JBEPAINT1JMPREDRAW1NEXT1:MOVAL,80H;對(duì)8255進(jìn)行初始化,方式0,輸出OUT63H,ALMOVAL,0B7H;對(duì)8253計(jì)數(shù)器2進(jìn)行初始化OUT43H,ALCHECK:MOVAH,01H;檢查鍵盤(pán)緩沖區(qū)是否為空J(rèn)ZCHECK;緩沖區(qū)為空,跳到CHECK重復(fù)檢查SUBAL,30HCMPAL,09HCALLSOUND;是音階符字符,則調(diào)用揚(yáng)聲器發(fā)音子過(guò)程JMPCHECKSOUNDPROCNEAR;揚(yáng)聲器發(fā)音子過(guò)程PUSHAXPUSHBXPUSHCXPUSHDXPUSHSIMOVAH,0MOVSI,AX;保護(hù)AL于SI中,以待后MOVBX,OFFSETTABLEXLAT;查表轉(zhuǎn)換,得到音符頻率參數(shù)->ALMOVDI,AX;查表得到的內(nèi)容保存DIMOVDX,12HMOVAX,00HDIVDI;用120000H音符頻率參數(shù),得計(jì)數(shù)OUT42H,AL;置計(jì)數(shù)器2初值的低位MOVAL,AHOUT42H,AL;置計(jì)數(shù)器2初值的高位INAL,61HORAL,3OUT61H,AL;打開(kāi)與門(mén),揚(yáng)聲器發(fā)出用戶鍵入的音階音CALLSCALE;調(diào)用音階高度繪畫(huà)子過(guò)程ANDAL,OFCHMOVAL,OHMOVAH,OCHINT21HPOPSIPOPDXPOPCXPOPBXPOPAXRETSOUNDENDPSCALEPROCNEAR;音階高度繪畫(huà)子過(guò)程PUSHAXPUSHBXPUSHCXPUSHDXPUSHDIMOVAX,SIMOVBH,ALMOVBL,0PUSHBXMOVBX,OFFSETHEIGHTXLAT;查表得音階高度值一>ALPOPBXMOVAH,0PUSHAXMOVDX,278MOVCX,34DECBHMOVAL,BHMOVBL,74MULBLADDCX,AXPOPAXINCBHMOVSI,CXMOVDI,DXSUBDI,AXNEXTLINE1:PUSHSIMOVCX,SIPOPSINEXTPOINT1:MOVAL,4MOVAH.OCHMOVBH.0INCCXCMPCX,SI2009年10月2009年10月趙康*姜賽達(dá)大多數(shù)情況下,都會(huì)指定一個(gè)表的主關(guān)鍵字和表的外鍵作為連接的關(guān)鍵列。外鍵必須和它所相關(guān)的主關(guān)ONSearchConditionUSINGcolumnname由上可以看出,這里的FROM子句就比較復(fù)雜了(這JBENEXTPOINT1CMPDX,DIJAENEXTLINE1PUSHBXMOVBX,3000DELAY:MOVCX,OFFFHDELAYO:LOOPDELAYOMOVDX,DIMOVDI,278NEXTLINE2:PUSHSIMOVCX,SI收稿日期:2009-08-28NEXTPOINT2:MOVAL,0MOVAH,OCHMOVBH,OJBENEXTPOINT2ADDDX,3CMPDX,DIJBENEXTLINE2POPAXOVER:MOVAH,4CH

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論