prog8_10.asm
来自「汇编语言-王爽 源代码 加 卜艳萍版源代码」· 汇编 代码 · 共 72 行
ASM
72 行
stack segment stack
dw 100 dup(?)
stack ends
data segment
string db 0dh,0ah,'this is a music program!$'
mdata1 dw 330,392,330,294,330,392,330,294,330
dw 330,292,330,294,262,294,330,392,294
mdata2 dw 50,50,50,25,25,50,25,25,100
dw 50,50,25,25,50,50,25,25,100
dw 50,25,25,50,25,25,50,25,25,100
data ends
code segment
assume cs:code,ds:data,ss:stack
main proc far
mov ax,data
mov ds,ax
lea dx,string
mov ah,9
int 21h
call mplay
mov ah,4ch
int 21h
main endp
mplay proc near
lea si,mdata1
lea bp,ds:mdata2
lop: mov di,[si]
cmp di,-1
je endplay
mov bx,ds:[bp]
call soundplay
add si,2
add bp,2
jmp lop
endplay:ret
mplay endp
soundplay 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,8ff0h
delay1:loop delay1
dec bx
jnz wait1
mov al,ah
out 61h,al
pop di
pop dx
pop cx
pop bx
pop ax
ret
soundplay endp
code ends
end main
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?