📄 music.asm
字号:
data SEGMENT
tabf DW -1,262,350,352,350,441,393,350,393,441
DW 350,352,441,525,589,588,589,525,441
DW 440,350,393,350,393,441,350,293,294,262
DW 350,589,525,441,440,350,393,350,393,589
DW 525,441,440,525,589,700,525,441,440,350
DW 393,350,393,441,350,294,292,262,350,0
tabt DB 4,4,6,2,4,4,6,2,4,4
DB 6,2,4,4,12,1,3,6,2
DB 4,4,6,2,4,4,6,2,4,4
DB 12,4,6,2,4,4,6,2,4,4
DB 6,2,4,4,12,4,6,2,4,4
DB 6,2,4,4,6,2,4,4,12
n EQU 15
ttt DW 0
data ENDS
code SEGMENT
ASSUME CS:code,DS:data
beg:MOV AX,data
MOV DS,AX
open:IN AL,61h
OR AL,03h
OUT 61h,AL
aga:MOV SI,OFFSET tabf
MOV DI,OFFSET tabt
last:CMP WORD PTR[SI],0
JE aga
MOV DX,12h
MOV AX,34deh
DIV WORD PTR[SI]
OUT 42h,AL
MOV AL,AH
OUT 42h,AL
CALL delay
ADD SI,2
INC DI
MOV AH,1
INT 16h
JZ last
close:IN AL,61h
AND AL,0fch
OUT 61h,AL
MOV AH,4ch
INT 21h
delay PROC
MOV AL,n
MUL BYTE PTR[DI]
MOV ttt,AX
MOV AH,2dh
MOV CX,0
MOV DX,0
INT 21h
read:MOV AH,2ch
INT 21h
MOV AL,100
MUL DH
MOV DH,0
ADD AX,DX
CMP AX,ttt
JC read
RET
delay ENDP
code ENDS
END beg
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -