📄 王华成(音乐模块).txt
字号:
;*****************************************************
;音乐数据段
;*****************************************************
MDATA_SEG SEGMENT PARA
;======================================================================================
mus_freq 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,330,262
DW -1
mus_time DW 3 DUP(500),250,250,500,250,250,1000 ;定义延迟时间
DW 2 DUP(500,500,250,250),1000
DW 3 DUP(500,250,250),1000
;======================================================================================
MDATA_SEG ENDS
;------------------------------------------------------------------------------------------------
beepit PROC NEAR ; 定义意外事件声音
MOV DI,800 ;定义声音频率
MOV BX,1000 ;定义延迟时间
CALL beep ;调用频率子程序
RET
beepit ENDP
;--------------------------------
beep PROC NEAR ;自定义频率子程序
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV AL,0b6h ;向43H端口送特定数初始化
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
delay: LOOP delay
DEC BX
JNZ WAIT1
MOV AL,AH
OUT 61h,AL
POP DI
POP DX
POP CX
POP BX
POP AX
RET
beep ENDP
;-------------------------------------------------------
music PROC NEAR ;音乐子程序
MOV DX,SEG mdata_seg
MOV DS,DX
LEA SI,mus_freq
LEA BP,DS: mus_time
freq: MOV DI,[SI]
CMP DI,-1
JE END_mus
MOV BX,DS:[BP]
CALL beep
ADD SI,2
ADD BP,2
JMP freq
END_mus:
RET
music ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -