?? music.asm
字號(hào):
;---------------------data definition---------------------------
data segment
freq_tab dw 262,294,330,349,392,440,494,523,466
tone db '1A1A2Z1Z4Z3a1A1A2Z1Z5Z4a1A1A8Z6Z4Z3Z2z9A9A6Z1Z5Z4a',0,0
data ends
;----------------------------code-------------------------------
code segment
assume cs:code,ds:data
main proc near
mov ax,data
mov ds,ax
mov si,offset tone
call PlayMusic
mov ax,4C00H
int 21H
main endp
PlayMusic proc near
lodsb
cmp al,0
jz exit
sub al,'1'
xor ah,ah
mov di,ax
shl di,1
mov bx,freq_tab[di]
lodsb
sub al,40h
xor cx,cx
mov cl,al
call sound
jmp PlayMusic
exit:
ret
PlayMusic endp
sound proc near
push ax
push bx
push dx
mov al,0B6H
out 43H,al
mov dx,12H
mov ax,348CH
div bx
out 42H,al
mov al,ah
out 42H,al
in al,61H
mov ah,al
or al,3
out 61H,al
_wait:
call delay100ms
loop _wait
mov al,ah
out 61h,al
pop dx
pop bx
pop ax
ret
sound endp
delay100ms proc near
push cx
push ax
mov cx,5500
delay:
in al,61H
and al,10H
cmp al,ah
je delay
mov ah,al
loop delay
pop ax
pop cx
ret
delay100ms endp
code ends
end main
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -