?? choose.asm
字號:
DATA SEGMENT
MESSAGE0 DB 13,10,'STUDENT NUMBER:510701229',13,10,'$'
MESSAGE1 DB 13,10,'*****WELCOME TO MY MUSIC SYSTEM*****','$'
MESSAGE2 DB 13,10,'PLESE SELECT....(A,B.C,D)','$'
MESSAGE3 DB 13,10,'A. MUSIC ONE','$'
MESSAGE4 DB 13,10,'B. MUSIC TWO','$'
MESSAGE5 DB 13,10,'C. MUSIC THREE','$'
MESSAGE6 DB 13,10,'D. EXIT ',13,10,'$'
MUS1 DW 330,294,262,294,3 DUP (330)
DW 3 DUP (294),330,392,392
DW 330,294,262,294,4 DUP (330)
DW 294,294,330,294,262,-1
MUS_TIME1 DW 6 DUP (25*8),50*8
DW 2 DUP (25*8,25*8,50*8)
DW 12 DUP (25*8),100*8
MUS2 DW 330,392,330,294,330,392,330,294,330
DW 330,392,330,294,262,294,330,392,294
DW 262,262,220,196,196,220,262,294,332,262,-1
MUS_TIME2 DW 3 DUP(50),25,25,50,25,25,100
DW 2 DUP(50,50,25,25),100
DW 3 DUP(50,25,25),100
MUS3 DW 262,262,294,262,349
DW 330,262,262,294,262
DW 392,349,262,262,523
DW 440,349,262,262,466
DW 466,440,262,392,349,-1
MUS_TIME3 DW 50,50,100,100,100
DW 100,100,50,50,100,100
DW 100,100,100,50,50,100
DW 100,100,100,100,100,50
DW 50,100,100,100,100,100
DATA ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
START:
PUSH DS
MOV AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
CALL CLEAR_SCREEN
MOV CH,7
MOV CL,14
MOV AH,1
INT 10H
MOV DH,7
MOV DL,22
MOV BH,0
MOV AH,2
INT 10H
MOV AH,9
MOV DX,SEG MESSAGE0
MOV DS,DX
MOV DX,OFFSET MESSAGE0
INT 21H
MOV AH,9
MOV DX,SEG MESSAGE1
MOV DS,DX
MOV DX,OFFSET MESSAGE1
INT 21H
MOV AH,9
MOV DX,SEG MESSAGE2
MOV DS,DX
MOV DX,OFFSET MESSAGE2
INT 21H
MOV AH,9
MOV DX,SEG MESSAGE3
MOV DS,DX
MOV DX,OFFSET MESSAGE3
INT 21H
MOV AH,9
MOV DX,SEG MESSAGE4
MOV DS,DX
MOV DX,OFFSET MESSAGE4
INT 21H
MOV AH,9
MOV DX,SEG MESSAGE5
MOV DS,DX
MOV DX,OFFSET MESSAGE5
INT 21H
MOV AH,9
MOV DX,SEG MESSAGE6
MOV DS,DX
MOV DX,OFFSET MESSAGE6
INT 21H
CALL MUSIC
RET
MAIN ENDP
CLEAR_SCREEN PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,6
MOV AL,0
MOV BH,7
MOV CL,0
MOV DH,24
MOV DL,79
INT 10H
MOV DX,0
MOV AH,2
INT 10H
POP DX
POP CX
POP BX
POP AX
RET
CLEAR_SCREEN ENDP
MUSIC PROC NEAR
MOV AH,01H
INT 21H
CMP AL,41H
JE A
CMP AL,42H
JE B
CMP AL,43H
JE C
CMP AL,44H
JE END_MUS
JMP MUSIC
A:
LEA SI,MUS1
LEA BP,DS:MUS_TIME1
JMP FREQ
B:
LEA SI,MUS2
LEA BP,DS:MUS_TIME2
JMP FREQ
C:
LEA SI,MUS3
LEA BP,DS:MUS_TIME3
JMP FREQ
FREQ:
MOV DI,[SI]
CMP DI,-1
JE MUSIC
MOV BX,DS:[BP]
CALL SOUNDF
ADD SI,2
ADD BP,2
JMP FREQ
END_MUS:
MOV AX,4C00H
INT 21H
MUSIC ENDP
SOUNDF PROC NEAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV AL,0B6H
OUT 43H,AL
MOV DX,12H
MOV AX,348CH
DIV DI
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
IN AL,61H
MOV AH,AL
OR AL,03H
OUT 61H,AL
MOV CX,33144
CALL WAITF
MOV AL,AH
OUT 61H,AL
POP DI
POP DX
POP CX
POP BX
POP AX
RET
SOUNDF ENDP
WAITF PROC NEAR
PUSH AX
WAITF1:
IN AL,61H
AND AL,10H
CMP AL,AH
JE WAITF1
MOV AH,AL
LOOP WAITF1
POP AX
RET
WAITF ENDP
CODE ENDS
END START
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -