music.asm
来自「硬件端口发声程序」· 汇编 代码 · 共 70 行
ASM
70 行
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 + =
减小字号Ctrl + -
显示快捷键?