音乐演奏程序设计源代码
来源:互联网 发布:apache php cgi 配置 编辑:程序博客网 时间:2024/04/28 17:12
DATA SEGMENT PARA 'DATA'
INFO1 DB 0DH,0AH,'WELCOME YOU TO COME HERE!$'
INFO2 DB 0DH,0AH,'this is a music program!$'
INFO3 DB 0DH,0AH,'please select!$'
INFO4 DB 0DH,0AH,'INPUT ERROR!$'
INFO5 DB 0DH,0AH,'PLEASE INPUT AGAIN!$'
MUSLIST DB 0DH,0AH,'A MUSIC1'
DB 0DH,0AH,'B MUSIC2'
DB 0DH,0AH,'C MUSIC3'
DB 0DH,0AH,'Q EXIT'
db 0dh,0ah,'$'
MUS_FREG1 DW 330,294,262,294,3 DUP (330)
DW 3 DUP (294),330,392,392
DW 330,294,262,294,4 DUP (330)
DW 294,294,330,294,262,-1
MUS_TIME1 DW 6 DUP (25*8),50*8
DW 2 DUP (25*8,25*8,50*8)
DW 12 DUP (25*8),100*8
MUS_FREG2 DW 330,392,330,294,330,392,330,294,330
DW 330,392,330,294,262,294,330,392,294
DW 262,262,220,196,196,220,262,294,332,262,-1
MUS_TIME2 DW 3 DUP(50),25,25,50,25,25,100
DW 2 DUP(50,50,25,25),100
DW 3 DUP(50,25,25),100
MUS_FREG3 DW 262,262,294,262,349
DW 330,262,262,294,262
DW 392,349,262,262,523
DW 440,349,262,262,466
DW 466,440,262,392,349,-1
MUS_TIME3 DW 50,50,100,100,100
DW 100,100,50,50,100,100
DW 100,100,100,50,50,100
DW 100,100,100,100,100,50
DW 50,100,100,100,100,100
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DB 200 DUP ('STACK')
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE
MAIN PROC FAR
MOV AX,DATA
MOV DS,AX
MOV aH, 0
MOV AL,4
INT 10H
MOV AH,0BH
MOV BH,0
MOV BL,4
INT 10H
MOV AH,0BH
MOV BH,01H
MOV BL,00
INT 10H
;*****定义一个宏*****
SHOW MACRO b
LEA DX,b
MOV AH,9
INT 21H
ENDM
;**********************
show INFO1
show INFO2
show INFO3
show MUSLIST
INPUT: MOV AH,01H
INT 21H
CMP AL,'Q'
JZ retu
CMP AL,'A'
JNZ B0
CALL MUSIC1
JMP EXIT1
B0: CMP AL,'B'
JNZ C0
CALL MUSIC2
JMP EXIT1
C0: CMP AL,'C'
JNZ exit
CALL MUSIC3
EXIT1: show INFO5
JMP INPUT
EXIT:
call clear
show INFO4
show INFO5
show INFO1
show INFO2
show INFO3
show MUSLIST
jmp input
RETU: MOV AH,4CH
INT 21H
MAIN ENDP
MUSIC1 PROC NEAR
PUSH DS
SUB AX,AX
PUSH AX
LEA SI,MUS_FREG1
LEA BP,DS:MUS_TIME1
FREG1: MOV DI,[SI]
CMP DI,-1
JE END_MUS1
MOV DX,DS:[BP]
MOV BX,14000
CALL GENSOUND
ADD SI,2
ADD BP,2
JMP FREG1
END_MUS1:
RET
MUSIC1 ENDP
GENSOUND PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV AL,0B6H
OUT 43H,AL
MOV DX,12H
MOV AX,533H*896
DIV DI
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
IN AL,61H
MOV AH,AL
OR AL,3
OUT 61H,AL
WAIT1: MOV CX,0ffffH
DELAY1: LOOP DELAY1
DEC BX
JNZ WAIT1
MOV AL,AH
OUT 61H,AL
POP DI
POP DX
POP CX
POP BX
POP AX
RET
GENSOUND ENDP
MUSIC2 PROC NEAR
PUSH DS
SUB AX,AX
PUSH AX
LEA SI,MUS_FREG2
LEA BP,DS:MUS_TIME2
FREG2: MOV DI,[SI]
CMP DI,-1
JE END_MUS2
MOV DX,DS:[BP]
MOV BX,14000
CALL GENSOUND
ADD SI,2
ADD BP,2
JMP FREG1
END_MUS2:
RET
MUSIC2 ENDP
MUSIC3 PROC NEAR
PUSH DS
SUB AX,AX
PUSH AX
LEA SI,MUS_FREG3
LEA BP,DS:MUS_TIME3
FREG3: MOV DI,[SI]
CMP DI,-1
JE END_MUS3
MOV DX,DS:[BP]
MOV BX,14000
CALL GENSOUND
ADD SI,2
ADD BP,2
JMP FREG1
END_MUS3:
RET
MUSIC3 ENDP
clear proc near
push ax
push bx
push cx
push dx
mov ah,6
mov al,0
mov ch,0
mov cl,0
mov dh,24
mov dl,79
mov bh,7
int 10h
pop dx
pop cx
pop bx
pop ax
ret
clear endp
CODE ENDS
END MAIN
- 音乐演奏程序设计源代码
- 音乐演奏程序设计源代码
- 实战:用单片机演奏音乐
- 使用windows的beep函数演奏音乐
- MSP430学习笔记5-利用蜂鸣器演奏音乐
- 关于“世上只有妈妈好”的单片机音乐演奏程序
- 用汇编语言设计接口程序——音乐演奏程序
- 用独立键盘来实现8音符,手动演奏音乐
- 详解IO控制鸣蜂器演奏乐典实现方法(关于“世上只有妈妈好”的单片机音乐演奏程序)
- DOS下演奏音乐,初学Dos时另人十分心奋的东西
- 在iPad上也能用拨片和鼓棒演奏音乐了
- 音乐播放源代码
- 音乐播放器源代码
- 俄罗斯歌手 Bnmac 这首歌比较早的了,在莫斯科音乐会上演奏的,超级佩服这个男高音.
- WEB音乐播放器源代码
- 《Windows程序设计》源代码
- 动画程序设计源代码
- Linux程序设计:源代码控制
- 句柄和指针的区别和联系
- What is DB time in AWR?
- 话说北欧的税收
- 信号和回调函数的原理@GTK+ 2.0 中文教程连载
- 音乐演奏程序设计源代码
- 音乐演奏程序设计源代码
- 测试一下。
- 搭建家庭无线Ad-hoc网络
- 公共函数单元
- 使用Axis1开发Web Service程序
- C#中MessageBox用法大全(附效果图)
- 2010两个热点话题:物联网、低碳经济
- Windows服务安装、卸载
- Java 中一个int型数组的求最大值最小值