📄 piano.asm
字号:
DATA SEGMENT
TABLE DW 4B00H,9104H,5000H,8113H,4D00H,7228H,4800H,6815H,5230H,6085H,532EH,5421H,1C0DH,4828H,4F31H,4452H,5032H,4056H,5133H,3614H
DW 4B34H,3417H,4C35H,3042H,4D36H,2710H,4737H,2415H,4838H,2280H,4939H,2031H,4E2BH,1810H,352FH,1708H,372AH,1522H,4A2DH,1356H
ALERT DB 20H,20H,20H,20H,20H,20H,20H,20H,20H,20H,0EH,20H,'.',':',':','MUSIC',':',':','.',20H,0EH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA DX,ALERT
MOV AH,09H
INT 21H
LAB: MOV AL,10110111B
OUT 43H,AL
MOV AH,0
INT 16H
CMP AH,01H
JE EXIT
LEA DI,TABLE
MOV CX,40
CLD
REPNE SCASW
MOV SI,DI
LODSW
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
IN AL,61H
MOV AH,AL
OR AL,03H
OUT 61H,AL
CALL WAITF
MOV AL,AH
OUT 61H,AL
JMP LAB
EXIT: MOV AH,4CH
INT 21H
WAITF PROC NEAR
PUSH CX
PUSH AX
MOV CX,30000
LAB: IN AL,61H
AND AL,10H
CMP AL,AH
JE LAB
MOV AH,AL
LOOP LAB
POP AX
POP CX
RET
WAITF ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -