分支结构实验报告Word格式文档下载.docx
- 文档编号:7813228
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:11
- 大小:92.57KB
分支结构实验报告Word格式文档下载.docx
《分支结构实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《分支结构实验报告Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。
开发环境………………………………………………………………1
功能描述…………………………………………………………1
系统功能结构框图…………………………………………….2
程序代码……………………………………………………3
运行结果………………………………………………………11
课程设计体会…………………………………………………………12
参考文献…………………………………………………………13
题目:
键盘控制发声程序
----电子琴
一、开发环境
1.硬件环境
微型计算机一台
2.软件环境
WindowsXP操作系统
使用工具MASM5.0,要进行汇编语言的编辑和运行,需要以下工作环境:
⑴编辑程序,如EDIT.EXE、WORD
⑵汇编程序,如MASM.EXE
⑶连接程序,如LINK.EXE
⑷调试程序,如DEBUG.EXE
二、功能描述
利用q、w、e、r、t、y、u、1-7作演奏音符制任意音乐的程序。
三、系统功能结构图
(续上图):
四、程序代码
;
利用q、w、e、r、t、y、u、1-7演奏音符的程序,能记录所演奏的音乐,能回放所演奏的音乐
**********************************************************
DATASEGMENT
msgDB0DH,0AH,'
'
DB0DH,0AH,'
[1234567]'
[qwertyu]'
_________________'
*************************************'
NOTICE'
Press1-7tomakemusicandplayit.'
Press9tointerrupt.'
********************************'
'
$'
;
音调(后面用到-1判断音乐播是否放完)
sound_0DW-1
sound_11DW441,-1
sound_12DW495,-1
sound_13DW556,-1
sound_14DW589,-1
sound_15DW661,-1
sound_16DW742,-1
sound_17DW833,-1
sound_1DW882,-1
sound_2DW990,-1
sound_3DW1112,-1
sound_4DW1178,-1
sound_5DW1322,-1
sound_6DW1484,-1
sound_7DW1655,-1
timeDW25
DATAENDS
STACKSEGMENT
Db200DUP('
STACK'
);
将音符放入堆栈中
STACKENDS
CODESEGMENT
ASSUMEDS:
DATA,SS:
STACK,CS:
CODE;
段说明
START:
MOVAX,DATA
MOVDS,AX
MOVaH,00;
初始化显示方式
MOVAL,00
INT10H
------------------定义一个显示宏
SHOWMACROb
LEADX,b
MOVAH,9;
将以"
$"
结尾的字符串显示在屏幕上,并将入口参数字符串的首地址的段基址和偏移地址分别放入DS和DX中
INT21H
ENDM
------------------定义一个声音宏
onesoundmacrosoundis,jumpis,letteris
CMPAL,letteris
JNZjumpis
LEASI,soundis
LEABP,DS:
time
CALLMUSIC
JMPinput
--------------------
showmsg;
显示音符和提示
INPUT:
MOVAH,01H
INT21H;
从键盘输入一个字符并显示
CMPAL,'
9'
jnzgo
movah,4ch;
若输入9则返回DOS,终止制作音乐
int21h
go:
onesoundsound_11,a0,'
q'
a0:
onesoundsound_12,b0,'
w'
b0:
onesoundsound_13,c0,'
e'
c0:
onesoundsound_14,d0,'
r'
d0:
onesoundsound_15,e0,'
t'
e0:
onesoundsound_16,f0,'
y'
f0:
onesoundsound_17,g0,'
u'
g0:
onesoundsound_1,h0,'
1'
h0:
onesoundsound_2,i0,'
2'
i0:
onesoundsound_3,j0,'
3'
j0:
onesoundsound_4,k0,'
4'
k0:
onesoundsound_5,l0,'
5'
l0:
onesoundsound_6,m0,'
6'
m0:
onesoundsound_7,n0,'
7'
n0:
onesoundsound_0,o0,al
o0:
jmpinput
---------------------发声(将堆栈中的音符数据送到端口地址)
GENSOUNDPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHDI
时间间隔定时器(计数器2的初始化过程)
MOVAL,0B6H
OUT43H,AL;
给公用的控制寄存器(地址为43H)赋值
MOVDX,12H
MOVAX,348ch;
频率除数
DIVDI
OUT42H,AL
MOVAL,AH
INAL,61H;
扬声器驱动(61H为输出寄存器分配I/O端口号)
MOVAH,AL
ORAL,3
OUT61H,AL;
打开扬声器
WAIT1:
MOVCX,3314;
等待下一音符的到来
callwaitf
DELAY1:
DECBX;
声音的延迟
JNZWAIT1
MOVAL,AH;
关闭扬声器
OUT61H,AL
POPDI
POPDX
POPCX
POPBX
POPAX
RET
GENSOUNDENDP
*******************************
waitfprocnear
pushax
waitf1:
inal,61h
andal,10h
cmpal,ah
jewaitf1
movah,al
loopwaitf1;
CX=0时退出循环,继续键入音符制作音乐
popax
ret
waitfendp
******************************
MUSICPROCNEAR
PUSHDS
SUBAX,AX
FREG:
MOVDI,[SI]
CMPDI,-1;
音乐是否放完
JEEND_MUS
MOVBX,DS:
[BP];
将音符放入堆栈
CALLGENSOUND;
调发声子程序
ADDSI,2
ADDBP,2
JMPFREG
END_MUS:
MUSICENDP
CODEENDS
ENDSTART
五、运行结果
图1生成OBJ文件
图2生成EXE文件
图3运行结果
六、课程设计体会
这次课程设计使我对汇编语言有了更进一步的了解和熟悉,实际操作编写程序,并使之能在计算机上正确运行真的有点困难。
平时觉得只要把课本上的知识学会就好了,没想到一付诸实际就全没了头脑。
课程设计只是书本上知识的灵活运用,与所学的有相当大的联系,但又高于所学的。
一个看似简单的题目,要动手把它设计出来就十分困难。
所以以后要注意把从课本上所学到的知识与实际联系起来,灵活运用,举一反三。
同时通过本次汇编语言程序的课程设计,我学到了许多课上老师没讲到的知识,开拓了我的眼界。
课程设计不但让我巩固了所学知识,也使我把理论与实际从真正意义上结合起来,更重要的是增强了学习的兴趣,培养了我们借助互联网络搜集、查阅相关文献资料和组织材料的综合学习能力。
七、参考文献
[1]沈美明、温冬蝉编,IBM-PC汇编语言程序设计,北京:
清华大学出版社,2001.
[2]网址:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分支 结构 实验 报告