




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一背景分析及意义随着计算机的不断更新发展,计算机在各个领域的应用越来越多,更多的软件开发人员和相关技术人员在程序设计的过程中应用汇编程序或编制汇编语言。而汇编语言做为计算机专业大学生必修之课,每个做为本专业的学生对汇编的理解和学习就显的尤为重要。汇编语言是计算机能够提供给用户使用的最快而又最好最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显的必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可了。这次课程设计是在学习汇编语言与实践相结合的一次综合应用。通过具体的问题分析、设计、调试、运行程序。在实际问题中锻炼提高自己,增加了对本门课程内容的理解,锻炼了动手能力。就这个程序具体而言:知道了音调与频率和时间的关系,就可以按照乐曲的曲谱将每个音符的频率和持续时间定义成两个数据表;然后编写程序依次取出表中的频率值和时间值,调用GENSOUNDF程序发出各种声音。这个程序最终通过菜单所提示的信息选取所要欣赏的音乐,是执行此程序后,会很有速且有效的使扬声器接通并发出音频为896 Hz的声音。二总体设计思想ROM BIOS 中的BEEP子程序能根据BL中给出的时间计数植控制8254定时器,产生持续时间计数值控制8254定时器,产生持续时间为1个或几个0.5 秒,频率为896Hz的声音。通过对BEEP的修改,可产生任一频率的声音。用汇编语言写的GENSOUNG,能使Pc 机发出指定频率和指定延时的声音。它是一个很好的通用发声程序。组成乐曲的每个音符的频率值和持续时间定义成两个数据表,然后编程依次取出表中的频率值和时间值,调用GENSOUND程序发出各种声音。本程序就是通过GENSOUNG程序演奏乐曲的例子。该乐曲点播程序由一个乐曲点播主程序和五个子程序组成。(1)歌曲设置程序;(2)打开另一个显示窗口程序;(3)接收键盘输入程序;(4)返回程序;(5)发声程序。由这几个程序完成乐曲的演奏。三完成的主要功能这个程序能够实现音乐的播放。运行时按下1-4键演奏乐曲“1:Happy birthday to you; 2:Mary had a little lamb; 3:Taihu boat; 4:Exit; 选择曲目序号进行歌曲播放;退出程序。 程序运行将显示如下运行图1四软硬件要求汇编语言对硬件的配置要求不是很高。这个音乐发声程序也有这个特点。只要是在Dos系统下 window98, window 2000,windows xp环境均可,要有汇编软件Masm615。这个程序有些地方就是在自己的电脑中完成的。五程序流程图音乐演奏程序流程图如图2所示 接收键盘输入是“1”是“2”是“3”是“4”显示出错信息Call music3Call music2Call music1开始提示信息退出音乐流程图2六使用说明这个程序是关于发声的程序。通过设计音乐播放的具体程序展示了这个原理。这个程序共包括了显示程序,歌曲选择,歌曲的播放 返回等几部分组成的。开始时定义了演奏乐曲的频率表和时间节拍表,为形成一个完整的音乐曲目做了准备。接下来向计数器写入控制字并且接通扬声器,设置次数循环将节拍转入程序,调用发声程发声。这个序通过按键1,2,3即可实现播放1:Happy birthday to you; 2:Mary had a little lamb; 3:Taihu boat; 4:Exit; 选择曲目进入歌曲播放; 选择退出选项所对应的功能号后退出程序。利用计算机控制发声的原理,可以编写演奏乐曲的程序。乐曲是按照一定的高低、长短和强弱关系组成的音调。在一首乐曲中,每个音符的音高和音长与频率和节拍有关。组成乐曲的每个音符的频率值和持续时间是乐曲程序发声所需要的两个数据。音符的频率可以乐谱中查到,但实际上送入计数器的是输入频率与音符频率相除的值,通用发声程序SOUNDF的前半部分就是完成这个计算,并将计数值送入计数器的功能。音符的持续时间是根据乐曲的速度及每个音符的节拍数来确定的。在4/4中,四分音符为1拍,每小节4拍,全音符持续4拍,二分音符持续2拍,四分音符持续1拍,八分音符持续半拍等。如果给全音符分配1s(100*10ms)的时间,则二分音符的持续时间为0.5s(50*10ms),四分音符的持续时间为0.25s(25*10ms),八分音符的持续时间为0.125s(12.5*10ms)。知道了音调与频率和时间的关系,就可以按照乐曲的曲谱将每个音符的频率和持续时间定义成两个数据表;然后编写程序依次取出表中的频率值和时间值,调用SOUNDF程序发出各种声音。本程序应用了BIOS中断功能的字符显示功能和乐曲演奏程序。并利用计算机控制发声原理,在计算机中有一个可编程时间间隔定时器,它能根据程序提供的记数值和工作模式,产生各种形状和各种频率的记数定时脉冲,提供给系统的各个部分使用。该乐曲点播程序由一个乐曲主程序和五个子程序组成。其中的一个子程序为乐曲演奏子程序,一个是打开另一个窗口显示程序,一个是接收字符程序,一个返回程序,一个发声程序。主程序对演奏子程序、打开另一个窗口程序、接收字符程序、返回程序做内部调用,发声子程序是外部调用,它是一个公用子程序。设计总结在为期两周的课程设计中,我设计了音乐发声程序。从选题到程序成形可以运行,我收获了好多。在开始的时候遇到了许多的困难,程序出错难以演示后来经过老师的指导和自己的修改,终于完成了一个小的综合性课程程序。这里对黄老师的帮助表示感谢。这个过程中我深感自己的专业知识不足所带来的困难,使我知道要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。这是继数据结构课程设计后的又一次课程设计。通过这次学习,对汇编语言有了更近一步的了解,对软件的编写也有了一定的认识。在设计的时由于查书对书中的知识也有实质性的理解。这是一次理论与实践相结合的学习,在这次学习中加强了我的上机操作能力,加强了我对汇编这门课程的认识,增强了我的学习积极性。汇编语言和vc+同样是关于计算机编程的,是计算机语言。他们都有自己的功能和用途。而汇编语言是一种面向机器的程序设计语言,是和计算机硬件结合最密切的语言,虽然程序设计语言的发展很快,但它是用户能够使用的最快和最能发挥硬件功能的唯一的一种计算机语言。在汇编语言中使计算机发声的方法作为一个小的实用程序,具体的显示了汇编语言的用途。使我有了在以后的其他程序中可以更熟练的运用此方法来控制计算机的发声进行汇编课程设计的想法。在日后的学习中我要加强汇编语言的综合应用程序设计方法,提高汇编语言实际应用能力、增加计算机各方面的知识和运用能力。学好每一门专业课,能够熟悉的应用计算机的更多功能。另外,作为计算机专业的学生上机操作非常重要。在这次课程设计中我们就一起在机房设计自己程序,自己动手解决问题。同时实验过程中我们做同一题目的几个人在遇到问题的时候,能够积极进行讨论,发表自己的意见,增加了我的团队意识,同时也培养了我勇于面对困难以及解决问题的能力。这是我平时在课堂上所学不到的。这也是作为当代大学生更是计算机专业的学生应该具备的能力和素质。总知,这次课程设计作为学习的一个开端,指导我整个学习方向和态度。我要将这次学习当做一个很好的起点,再接再厉争取学到更多的知识。参考文献1IBM-PC 汇编语言程序设计,沈美明 温冬婵编著。清化大学出版社,2008年3月第8次印刷。2东阳生等编著:“宏汇编语言MASM6实用大全”,科学出版社,19933汇编语言课程设计案例精编李珍香,刘红梅等编著。中国水利水电出版社4陆中华等编:“汇编语言程序设计”,科学出版社,1994附: 源程序;* STACK SEGMENT PARA STACK STACK DB 64 DUP(STACK.) STACK ENDS;* DSEG SEGMENT PARA DATAMESS1 DB 50 DUP( ),Now the music is ,13,10,$ MESS2 DB 50 DUP( ),Now the music is ,13,10,$ MESS3 DB 50 DUP( ),Now the music is ,13,10,$ MENU DB 5 DUP(13,10) DB 5 DUP( ),Class:Computer 05-6 Name:lixia NO.:14 ,13,10 DB 5 DUP(), ,13,10 DB 5 DUP(), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), 1:Happy birthday to you; ,13,10 DB 5 DUP( ), 2:Mary had a little lamb; ,13,10 DB 5 DUP( ), 3:Taihu boat; ,13,10 DB 5 DUP( ), 4:Exit; ,13,10DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ), ,13,10 DB 5 DUP( ),please chioce the number of music:,$,13,10 change DB 125 DUP( ),error! please change anther NO.: ,$ MUS_FREG dw 262,262,294,262,349,330 dw 262,262,294,262,392,349 dw 262,262,523,440,349,330,294 dw 466,466,440,262,392,349 dw -1 MUS_TIME dw 50,50,100,100,100,200 dw 50,50,100,100,100,200 dw 50,50,100,100,100,100,300 dw 50,50,100,100,100,200 mus_freg1 dw 330,294,262,294,330,330,330 dw 294,294,294,330,392,392 dw 330,294,262,294,330,330,330,330 dw 294,294,330,294,262 dw -1 mus_time1 dw 6 dup(25),50 dw 2 dup(25,25,50) dw 12 dup(25),100 mus_freg2 dw 330,392,330,294,330,392,330,294,330 dw 330,392,330,294,262,294,330,292,294 dw 262,262,220,196,196,220,262,294,330,262 dw -1 mus_time2 dw 50,50,50,25,25,50,25,25,100 dw 50,50,50,50,25,25,25,25,100 dw 50,50,50,25,25,25,25,25,25,25,100 DSEG ENDS;* CODE SEGMENT PARA DATA assume cs:code,ds:dseg,ss:stack music proc far mov ax,dseg mov ds,ax rotate:call clearscreenLEA DX,MENU mov ah, 9 int 21hchg: mov ah,1 int 21h cmp al,1 je one cmp al,2 je two cmp al,3 je three cmp al,4 je endmus LEA DX,change mov ah, 9 int 21h jmp chg ONE: call clearscreen lea dx,mess1 mov ah,09 int 21h LEA SI,MUS_FREG LEA BP,DS:MUS_TIME JMP SOUND TWO:call clearscreen lea dx,mess2 mov ah,09 int 21h LEA SI,MUS_FREG1 LEA BP,DS:MUS_TIME1 JMP SOUNDTHREE:call clearscreen lea dx,mess3 mov ah,09 int 21h LEA SI,MUS_FREG2 LEA BP,DS:MUS_TIME2 SOUND: ; call q0freq: mov di,si cmp di,-1 je rotate mov bx,ds:bp call soundf add si,2 add bp,2 jmp freq JMP rotateENDMUS: mov ax,4c00h int 21h music endp;*soundf proc near push ax push bx push cx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南充顺庆区中烟工业2025秋招生产管理岗位面试模拟题及答案
- 泰安市烟草公司2025秋招面试结构化模拟题30问及话术
- 曲靖市烟草公司2025秋招面试结构化模拟题30问及话术
- 金平县中烟工业2025秋招新型烟草研发岗位面试模拟题及答案
- 实施管理咨询方案
- 中国邮政2025博尔塔拉蒙古自治州秋招直播电商专员岗位面试模拟题及答案
- 中国邮政2025新乡市秋招寄递物流运营类岗位高频笔试题库含答案
- 中国邮政2025鞍山市秋招电子商务与数字营销类岗位面试模拟题及答案
- 中国邮政2025贺州市秋招风险控制岗位面试模拟题及答案
- 私人借贷担保合同3篇
- 幼小衔接音乐课件
- 高标准农田建设项目实施的组织与管理方案
- 路基路面压实度评定自动计算表-标准-
- 积滞病中医护理方案
- 《免疫细胞疗法》课件
- 《遥感技术及其在环境监测中的应用》课件
- 博物馆与社区合作模式-深度研究
- 猕猴桃工业流程
- 学习五线谱认识音名唱名课件
- 2025年江西司法警官职业学院高职单招数学历年(2016-2024)频考点试题含答案解析
- 2025年中国科学玩具未来发展趋势分析及投资规划建议研究报告
评论
0/150
提交评论