音乐点播程序.docx
- 文档编号:1672738
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:17
- 大小:134.33KB
音乐点播程序.docx
《音乐点播程序.docx》由会员分享,可在线阅读,更多相关《音乐点播程序.docx(17页珍藏版)》请在冰点文库上搜索。
音乐点播程序
汇编程序设计课程设计报告
题目:
音乐点播程序
班级:
计算机科学与技术
姓名:
郭军华
指导老师:
段新娥
日期:
2010.12
《汇编语言程序设计》课程设计
前言
随着计算机的不断更新发展,计算机在各个领域的应用越来越多,更多的软件开发人员和相关技术人员在程序设计的过程中应用汇编程序或编制汇编语言。
而汇编语言做为计算机专业大学生必修之课,每个做为本专业的学生对汇编的理解和学习就显的尤为重要。
汇编语言是计算机能够提供给用户使用的最快而又最好最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显的必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可了。
汇编语言是理解整个计算机系统的最佳起点和最有效途径,人们经常认为汇编语言的应用范围很小,而忽视它的重要性。
其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。
所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。
所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。
机器的逻辑功能,软件系统功能构筑其上,硬件系统功能运行于下。
汇编语言直接描述机器指令,比机器指令容易记忆和理解。
通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。
学习汇编语言,向上可以理解软件,向下能够感知硬件,是我们理解整个计算机系统的最佳起点。
这次课程设计是在教学及实验基础上,对课程所学理论知识的深化和提高。
通过具体的问题分析、设计、调试、运行程序,在实际问题中锻炼提高自己,增加对本门课程内容的理解,锻炼我们的动手能力。
目录
一.背景分析及意义3
二.总体设计思想3
三.完成主要功能4
四.软硬件要求5
五.程序流程图6
六.设计总结7
七.参考文献8
八.源程序9
一.背景分析及意义
随着计算机的不断更新发展,计算机在各个领域的应用越来越多,更多的软件开发人员和相关技术人员在程序设计的过程中应用汇编程序或编制汇编语言。
而汇编语言做为计算机专业大学生必修之课,每个做为本专业的学生对汇编的理解和学习就显的尤为重要。
汇编语言是计算机能够提供给用户使用的最快而又最好最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显的必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可了。
这次课程设计是在学习汇编语言与实践相结合的一次综合应用。
通过具体的问题分析、设计、调试、运行程序。
在实际问题中锻炼提高自己,增加了对本门课程内容的理解,锻炼了动手能力。
就这个程序具体而言:
知道了音调与频率和时间的关系,就可以按照乐曲的曲谱将每个音符的频率和持续时间定义成两个数据表;然后编写程序依次取出表中的频率值和时间值,调用GENSOUNDF程序发出各种声音。
这个程序最终通过菜单所提示的信息选取所要欣赏的音乐,是执行此程序后,会很有速且有效的使扬声器接通并发出音频为896Hz的声音。
二.总体设计思想
ROMBIOS中的BEEP子程序能根据BL中给出的时间计数植控制8254定时器,产生持续时间计数值控制8254定时器,产生持续时间为1个或几个0.5秒,频率为896Hz的声音。
通过对BEEP的修改,可产生任一频率的声音。
用汇编语言写的GENSOUNG,能使Pc机发出指定频率和指定延时的声音。
它是一个很好的通用发声程序。
组成乐曲的每个音符的频率值和持续时间定义成两个数据表,然后编程依次取出表中的频率值和时间值,调用GENSOUND程序发出各种声音。
本程序就是通过GENSOUNG程序演奏乐曲的例子。
该乐曲点播程序由一个乐曲点播主程序和五个子程序组成。
(1)歌曲设置程序;
(2)打开另一个显示窗口程序;
(3)接收键盘输入程序;
(4)返回程序;
(5)发声程序。
由这几个程序完成乐曲的演奏。
三.完成的主要功能
这个程序能够实现音乐的播放。
运行时按下1-4键演奏乐曲“1:
Happybirthdaytoyou;2:
Maryhadalittlelamb;3:
Taihuboat;4:
Exit;选择曲目序号进行歌曲播放;退出程序。
程序运行将显示如下
运行图1
四.软硬件要求
汇编语言对硬件的配置要求不是很高。
这个音乐发声程序也有这个特点。
只要是在Dos系统下window98,window2000,windowsxp环境均可,要有汇编软件Masm615。
这个程序有些地方就是在自己的电脑中完成的。
五.程序流程图
音乐演奏程序流程图如图2所示
音乐流程图2
六.设计总结
在为期两周的课程设计中,我设计了音乐发声程序。
从选题到程序成形可以运行,我收获了好多。
在开始的时候遇到了许多的困难,程序出错难以演示后来经过老师的指导和自己的修改,终于完成了一个小的综合性课程程序。
这里对黄老师的帮助表示感谢。
这个过程中我深感自己的专业知识不足所带来的困难,使我知道要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。
通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。
这是继数据结构课程设计后的又一次课程设计。
通过这次学习,对汇编语言有了更近一步的了解,对软件的编写也有了一定的认识。
在设计的时由于查书对书中的知识也有实质性的理解。
这是一次理论与实践相结合的学习,在这次学习中加强了我的上机操作能力,加强了我对汇编这门课程的认识,增强了我的学习积极性。
汇编语言和vc++同样是关于计算机编程的,是计算机语言。
他们都有自己的功能和用途。
而汇编语言是一种面向机器的程序设计语言,是和计算机硬件结合最密切的语言,虽然程序设计语言的发展很快,但它是用户能够使用的最快和最能发挥硬件功能的唯一的一种计算机语言。
在汇编语言中使计算机发声的方法作为一个小的实用程序,具体的显示了汇编语言的用途。
使我有了在以后的其他程序中可以更熟练的运用此方法来控制计算机的发声进行汇编课程设计的想法。
在日后的学习中我要加强汇编语言的综合应用程序设计方法,提高汇编语言实际应用能力、增加计算机各方面的知识和运用能力。
学好每一门专业课,能够熟悉的应用计算机的更多功能。
另外,作为计算机专业的学生上机操作非常重要。
在这次课程设计中我们就一起在机房设计自己程序,自己动手解决问题。
同时实验过程中我们做同一题目的几个人在遇到问题的时候,能够积极进行讨论,发表自己的意见,增加了我的团队意识,同时也培养了我勇于面对困难以及解决问题的能力。
这是我平时在课堂上所学不到的。
这也是作为当代大学生更是计算机专业的学生应该具备的能力和素质。
总知,这次课程设计作为学习的一个开端,指导我整个学习方向和态度。
我要将这次学习当做一个很好的起点,再接再厉争取学到更多的知识。
七.参考文献
[1]《IBM-PC汇编语言程序设计》,沈美明温冬婵编著。
清化大学出版社,2010年5月第25次印刷。
[2]东阳生等编著:
“宏汇编语言MASM6实用大全”,科学出版社,1993
[3]《汇编语言课程设计案例精编》李珍香,刘红梅等编著。
中国水利水电出版社
[4]陆中华等编:
“汇编语言程序设计”,科学出版社,1994
八.源程序
;**************************************************
STACKSEGMENTPARASTACK'STACK'
DB64DUP('STACK...')
STACKENDS
;**************************************************
DSEGSEGMENTPARA'DATA'
MESS1DB50DUP(''),'Nowthemusicis<
MESS2DB50DUP(''),'Nowthemusicis<
MESS3DB50DUP(''),'Nowthemusicis<
MENUDB5DUP(13,10)
DB5DUP(''),'Class:
Computer05-6Name:
lixiaNO.:
14',13,10
DB5DUP(''),'',13,10
DB5DUP(''),'',13,10
DB5DUP(''),'',13,10
DB5DUP(''),'~~~~~~~~~~~',13,10
DB5DUP(''),'~~~~~~~~~~~~~~~~~~~~~~~',13,10
DB5DUP(''),'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~',13,10
DB5DUP(''),'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~',13,10
DB5DUP(''),'~~~~~~1:
Happybirthdaytoyou;~~~~',13,10
DB5DUP(''),'~~~~~~2:
Maryhadalittlelamb;~~~~',13,10
DB5DUP(''),'~~~~~3:
Taihuboat;~~~',13,10
DB5DUP(''),'~~~4:
Exit;~~~~~~~~~~~',13,10
DB5DUP(''),'~~~~~~~~~~~~~~~~~~',13,10
DB5DUP(''),'~~~~~~~~~~~~~~~~~~~~~~~~',13,10
DB5DUP(''),'~~~~~~~~~~~~~~~~~~~~',13,10
DB5DUP(''),'~~~~~~~~~~~~~~~~',13,10
DB5DUP(''),'~~~~~~~~~~~~',13,10
DB5DUP(''),'~~~~~~~~',13,10
DB5DUP(''),'~~~~',13,10
DB5DUP(''),'',13,10
DB5DUP(''),'',13,10
DB5DUP(''),'pleasechiocethenumberofmusic:
','$',13,10
changeDB125DUP(''),'error!
pleasechangeantherNO.:
','$'
MUS_FREGdw262,262,294,262,349,330
dw262,262,294,262,392,349
dw262,262,523,440,349,330,294
dw466,466,440,262,392,349
dw-1
MUS_TIMEdw50,50,100,100,100,200
dw50,50,100,100,100,200
dw50,50,100,100,100,100,300
dw50,50,100,100,100,200
mus_freg1dw330,294,262,294,330,330,330
dw294,294,294,330,392,392
dw330,294,262,294,330,330,330,330
dw294,294,330,294,262
dw-1
mus_time1dw6dup(25),50
dw2dup(25,25,50)
dw12dup(25),100
mus_freg2dw330,392,330,294,330,392,330,294,330
dw330,392,330,294,262,294,330,292,294
dw262,262,220,196,196,220,262,294,330,262
dw-1
mus_time2dw50,50,50,25,25,50,25,25,100
dw50,50,50,50,25,25,25,25,100
dw50,50,50,25,25,25,25,25,25,25,100
DSEGENDS
;**************************************************
CODESEGMENTPARA'DATA'
assumecs:
code,ds:
dseg,ss:
stack
musicprocfar
movax,dseg
movds,ax
rotate:
callclearscreen
LEADX,MENU
movah,9
int21h
chg:
movah,1
int21h
cmpal,'1'
jeone
cmpal,'2'
jetwo
cmpal,'3'
jethree
cmpal,'4'
jeendmus
LEADX,change
movah,9
int21h
jmpchg
ONE:
callclearscreen
leadx,mess1
movah,09
int21h
LEASI,MUS_FREG
LEABP,DS:
MUS_TIME
JMPSOUND
TWO:
callclearscreen
leadx,mess2
movah,09
int21h
LEASI,MUS_FREG1
LEABP,DS:
MUS_TIME1
JMPSOUND
THREE:
callclearscreen
leadx,mess3
movah,09
int21h
LEASI,MUS_FREG2
LEABP,DS:
MUS_TIME2
SOUND:
;callq0
freq:
movdi,[si]
cmpdi,-1
jerotate
movbx,ds:
[bp]
callsoundf
addsi,2
addbp,2
jmpfreq
JMProtate
ENDMUS:
movax,4c00h
int21h
musicendp
;***************************************************
soundfprocnear
pushax
pushbx
pushcx
pushdx
pushdi
moval,0b6h
out43h,al
movdx,12h
movax,348ch
divdi
out42h,al
moval,ah
out42h,al
inal,61h
movah,al
oral,3
out61h,al
wait1:
movcx,663
callwaitf
delay:
loopdelay
decbx
jnzwait1
moval,ah
out61h,al
popdi
popdx
popcx
popbx
popax
ret
soundfendp
CLEARSCREENPROCNEAR
MOVAH,6
MOVAL,0
MOVDL,79
MOVBH,7
MOVCH,0
MOVCL,0
MOVDH,24
int10h
MOVDX,0
MOVAH,2
INT10H
RET
CLEARSCREENENDP
q0procnear
movah,2
subbh,bh
movdh,0
movdl,0
int10h
ret
q0endp
waitfprocnear
pushax
waitf1:
inal,61h
andal,10h
cmpal,ah
jewaitf1
movah,al
loopwaitf1
popax
ret
waitfendp
;***************************************************
codeends
endmusic
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 音乐 点播 程序
![提示](https://static.bingdoc.com/images/bang_tan.gif)