📄 music.asm
字号:
data segment
assume ds:data
freq dw 0,4552,4029,3617,3415
dw 3042,2710,2415,2279
note db 3,2,1,2,3,3,3,2,2,2
db 3,5,5,3,2,1,2,3,3,3
db 3,2,2,3,2,1,-1
dl_time db 4,4,4,4,4,4,8,4,4,8
db 4,4,8,4,4,4,4,4,4,4
db 4,4,4,4,4,8
data ends
code segment
assume cs:code
main proc far
mov ax,data
mov ds,ax
mov al,10110110b
out 43h,al
mov bx,0
play:
mov al,note[bx]
mov ah,dl_time[bx]
inc bx
push bx
push ax
cbw
shl ax,1
mov bx,ax
mov ax,freq[bx]
out 42h,al
mov al,ah
out 42h,al
in al,61h
or al,3
out 61h,al
mov ah,0
int 1ah
pop ax
mov al,ah
cbw
add ax,dx
mov bx,ax
delay:
mov ah,0
int 1ah
cmp bx,dx
jnz delay
in al,61h
and al,0fch
out 61h,al
pop bx
cmp note[bx],-1
jnz play
mov ah,4ch
int 21h
main endp
code ends
end main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -