汇编电子琴.doc_第1页
汇编电子琴.doc_第2页
汇编电子琴.doc_第3页
汇编电子琴.doc_第4页
汇编电子琴.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

STACKSSEGMENTSTACKDW100DUP(?)STACKS ENDSDATA SEGMENTDISPLAYDB * ,0DH,0AH,0DH,0AHDB * 1 Press 1-7 To Play * ,0DH,0AH,0DH,0AHDB * 2 Press C To Play Chang Tune * ,0DH,0AH,0DH,0AHDB * 3 Press Z To Play Zhong Tune * ,0DH,0AH,0DH,0AHDB * 4 Press D To Play Duan Tune * ,0DH,0AH,0DH,0AHDB * 5 Press L To Play Low Tune * ,0DH,0AH,0DH,0AHDB * 6 Press M To Play Middle Tune * ,0DH,0AH,0DH,0AHDB * 7 Press H To Play High Tune * ,0DH,0AH,0DH,0AHDB * 8 Press R To Replay * ,0DH,0AH,0DH,0AHDB * 9 Press Esc To Exit * ,0DH,0AH,0DH,0AHDB * ,0DH,0AH,$TABLE1DW1EEH,1B8H,188H,15DH,14AH,126H,106H; TABLE2DW3DCH,370H,310H,2BAH,293H,242H,20BH; TABLE3DW7B8H,6E0H,620H,575H,526H,497H,416H; DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSSTART: MOVAX,DATAMOVDS,AXMOVDX,OFFSET DISPLAY MOVAH,09HINT21HSCAN:MOVAH,0 ;读键盘INT16HMOVCX,4000MOVDI,3500H;设放置音节的首地址MOVDX,3500H;设复读首地址CMPAL,1BH;判断输入是否为退出JNELMOVAH,4CH;退出INT21H L:CMPAL,4CH;判断输入是否为L低音JNEMJMPSCAN1M:CMPAL,4DH;判断输入是否为M中音JNEHJMPSCAN2H:CMPAL,48H;判断输入是否为H高音JNESCAN1JMPSCAN3SCAN1:MOVAH,0;读键盘INT16HCMPAL,1BHJNEREP1MOVAH,4CH;退出INT21H REP1:CMPAL,52HJNEC1CALLREPLAYMOVDI,3500HC1:CMPAL,43H;判断输入是否为C长音JNEZ1MOVCX,7000JMPA1Z1:CMPAL,5AH;判断输入是否为Z中音JNED1MOVCX,4000JMPA1D1:CMPAL,44H;判断输入是否为D短音JNEA1MOVCX,2000JMPA1HELP1:JMPSCAN1A1:CMPAL,4DH;判断是否是中音 JNEB1JMPSCAN2B1:CMPAL,48H;判断是否是高音JNEKEY1JMPSCAN3KEY1:CMPAL,31H;1JNEKEY2MOVBX,00HCALLPLAY1JMPHELP1KEY2:CMPAL,32H;2JNEKEY3MOVBX,02HCALLPLAY1JMPHELP1KEY3:CMPAL,33H;3JNEKEY4MOVBX,04HCALLPLAY1JMPHELP1KEY4:CMPAL,34H;4JNEKEY5MOVBX,06HCALLPLAY1JMPHELP1KEY5:CMPAL,35H;5JNEKEY6MOVBX,08HCALLPLAY1JMPHELP1KEY6:CMPAL,36H;6JNEKEY7MOVBX,0AHCALLPLAY1JMPHELP1KEY7:CMPAL,37H;7JNEHELP1MOVBX,0CHCALLPLAY1JMPHELP1PLAY1PROCMOV AL,0B6H;8253工作方式3OUT43H,ALMOVSI,OFFSET TABLE1;取低音首地址MOVAX,BX+SIMOVDI,AXINCDIINCDIINCDXINCDXOUT42H,AL;送初值MOVAL,AHOUT42H,ALMOVAL,80H;开8255OUT63H,ALMOVAL,03H;PB.0PB.1口送1OUT61H,ALCALLDELAYMOVAL,02H; PB.1口送0OUT61H,ALRETPLAY1ENDPSCAN2:MOVAH,0;读键盘INT16HCMPAL,1BHJNEREP2MOVAH,4CH;退出INT21H REP2:CMPAL,52H;判断是否重放JNEC2CALLREPLAYMOVDI,3500HC2:CMPAL,43H;判断输入是否为C长音JNEZ2MOVCX,7000JMPA2Z2:CMPAL,5AH;判断输入是否为Z中音JNED2MOVCX,4000JMPA2D2:CMPAL,44H;判断输入是否为D短音JNEA2MOVCX,2000JMPA2HELP2:JMPSCAN2A2:CMPAL,4CH;判断是否是低音JNEB2JMPSCAN1B2:CMPAL,48H;判断是否是高音JNEKEY11JMPSCAN3KEY11:CMPAL,31H;1JNEKEY12MOVBX,00HCALLPLAY2JMPHELP2KEY12:CMPAL,32H;2JNEKEY13MOVBX,02HCALLPLAY2JMPHELP2KEY13:CMPAL,33H;3JNEKEY14MOVBX,04HCALLPLAY2JMPHELP2KEY14:CMPAL,34H;4JNEKEY15MOVBX,06HCALLPLAY2JMPHELP2KEY15:CMPAL,35H;5JNEKEY16MOVBX,08HCALLPLAY2JMPHELP2KEY16:CMPAL,36H;6JNEKEY17MOVBX,0AHCALLPLAY2JMPHELP2KEY17:CMPAL,37H;7JNEHELP2MOVBX,0CHCALLPLAY2JMPHELP2PLAY2PROCMOV AL,0B6H;8253工作方式3OUT43H,ALMOVSI,OFFSET TABLE2;取中音首地址MOVAX,BX+SIMOVDI,AXINCDIINCDIINCDXINCDXOUT42H,AL;送初值MOVAL,AHOUT42H,ALMOVAL,80H;开8255OUT63H,ALMOVAL,03H;PB.0PB.1口送1OUT61H,ALCALLDELAYMOVAL,02H; PB.1口送0OUT61H,ALRETPLAY2ENDPSCAN3:MOVAH,0;读键盘INT16HCMPAL,1BHJNEREP3MOVAH,4CH;退出INT21H REP3:CMPAL,52H;判断是否重放JNEC3CALLREPLAYMOVDI,3500HC3:CMPAL,43H;判断输入是否为C长音JNEZ3MOVCX,7000JMPA3Z3:CMPAL,5AH;判断输入是否为Z中音JNED3MOVCX,4000JMPA3D3:CMPAL,44H;判断输入是否为D短音JNEA3MOVCX,2000JMPA3HELP3:JMPSCAN3A3:CMPAL,4CH;判断是否是低音JNEB3JMPSCAN1B3:CMPAL,4DH;判断是否是中音JNEKEY31JMPSCAN2KEY31:CMPAL,31H;1JNEKEY32MOVBX,00HCALLPLAY3JMPHELP3KEY32:CMPAL,32H;2JNEKEY33MOVBX,02HCALLPLAY3JMPHELP3KEY33:CMPAL,33H;3JNEKEY34MOVBX,04HCALLPLAY3JMPHELP3KEY34:CMPAL,34H;4JNEKEY35MOVBX,06HCALLPLAY3JMPHELP3KEY35:CMPAL,35H;5JNEKEY36MOVBX,08HCALLPLAY3JMPHELP3KEY36:CMPAL,36H;6JNEKEY37MOVBX,0AHCALLPLAY3JMPHELP3KEY37:CMPAL,37H;7JNEHELP3MOVBX,0CHCALLPLAY3JMPHELP3PLAY3PROCMOV AL,0B6H;8253工作方式3OUT43H,ALMOVSI,OFFSET TABLE3;取高音首地址MOVAX,BX+SIMOVDI,AXINCDIINCDIINCDXINCDXOUT42H,AL;送初值MOVAL,AHOUT42H,ALMOVAL,80H;开8255OUT63H,ALMOVAL,03H;PB.0PB.1口送1OUT61H,ALCALLDELAYMOVAL,02H; PB.1口送0OUT61H,ALRETPLAY3ENDPDELAYPROCPUSHBXPUSHDXMOVDX,CXMOVBX,20000; 长中短音判断延时DELAYY:PUSHAXPOPAXLOOPDELAYYMOVCX,DXDECBXJNZDELAYYPOPDXPOPBXRETDELAYENDPDELAY1PROCPUSHBXPUSHDXMOVDX,CXMOVBX,10000;重放延时DELAYY1:PUSHAXPOPAXLOOPDELAYY1MOVCX,DXDECBXJNZDELAYY1POPDXPOPBXRETDELAY1ENDPREPLAYPROC;重放子程序PUSHCXPUSHDIPUSHSIPUSHAXMOVDI,3500HRE:MOVAX,DIINCDIINCD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论