;音乐程序:两只老虎
DATA SEGMENT
FREQ DW 2 DUP(0106H,0126H,014AH,0106H),2 DUP(014AH,015DH,0188H),2 DUP(0188H,01B8H,0188H,015DH,014AH,0106H),2 DUP(0126H,00C4H,0106H)
DW 0H
LONG DW 8 DUP(04E2H),2 DUP(04E2H,04E2H,09C4H),2 DUP(0271H,0271H,0271H,0271H,04E2H,04E2H),2 DUP(04E2H,04E2H,09C4H),0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
LEA DI,FREQ
LEA SI,LONG
READDATA:
MOV BX , [DI]
CMP BX , 0H
JZ EXIT
MOV AL , 0B6H
OUT 43H, AL
MOV DX , 12H
MOV AX , 34DCH
DIV BX
OUT 42H, AL
MOV AL , AH
OUT 42H, AL
MOV BX , [SI]
IN AL , 61H
MOV AH , AL
OR AL , 3
OUT 61H, AL
LENG:
MOV CX , 65535
DELAY:
LOOP DELAY
DEC BX
JNZ LENG
MOV AL , AH
OUT 61H, AL
ADD DI , 2
ADD SI , 2
JMP READDATA
EXIT:
RET
START ENDP
CODE ENDS
END START