⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mudic.asm

📁 这个程序利用汇编语言编写
💻 ASM
字号:
DATA       SEGMENT 
MESS1      DB 0DH,0AH,'WELCOME TO PLAY THIS GAME!$'
MESS2      DB 0DH,0AH,'THIS IS WORD GAME!$'
MESS3      DB 0DH,0AH,'INPUT ERROR!$' 
MESS4      DB 0DH,0AH,'PLEASE INPUT AGAIN!$'
MUSIC      DB 0DH,0AH,'SELECT A      PLAY MUSIC!$'
           DB 0DH,0AH,'SELECT Q      END MUSIC!!$'
           DB 0DH,0AH,'$'
MUS_FREG   DW 330,294,262,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_TIME   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  
DATA       ENDS
CODE       SEGMENT
           ASSUME DS:DATA,SS:STACK,CS:CODE
START      PROC   FAR                        ;将主过程定义为操作系统的远过程
           MOV    AX,DATA
           MOV    DS,AX
           MOV    AH,00H
           MOV    AL,04H
           INT    10H    
           MOV    AH,0BH
           MOV    BH,00H
           MOV    BL,04H
           INT    10H
           MOV    AH,0BH
           MOV    BH,01H
           MOV    BL,00H
           INT    10H    
SHOW       MACRO  X
           LEA    DX,X
           MOV    AH,09H
           INT    21H
           ENDM
           SHOW   MESS1
           SHOW   MESS2
           SHOW   MUSIC
KEYINPUT:  MOV    AH,01H
           INT    21H
           CMP    AL,'Q'
           JZ     RETU
           CMP    AL,'A'
           JNZ    ENDMUSIC
           CALL   PLAYMUSIC
           JMP    INPUT
INPUT:     SHOW   MESS3
           JMP    KEYINPUT
ENDMUSIC:  CALL   CLEAR
           SHOW   MESS3
           SHOW   MESS4
           SHOW   MESS1
           SHOW   MESS2
           SHOW   MUSIC
           JMP    KEYINPUT
RERU:      MOV    AH,4CH
           INT    21H
START      ENDP
PLAYMUSIC  PROC   NEAR
           PUSH   DS
           SUB    AX,AX
           PUSH   AX
           LEA    SI,MUS_FREG
           LEA    BP,DS:MUS_TIME
FREG:      MOV    DI,[SI]
           CMP    DI,-1
           JE     EXIT_MUS
           MOV    DX,DS:[BP]
           MOV    BX,1500
           CALL   SOUND
           ADD    SI,2
           ADD    SP,2
           JMP    FREG
EXIT_MUS:  RET
PLAYMUSIC  ENDP
SOUND      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
WAIT:      MOV    CX,8FF0H
DELAY:     LOOP   DELAY
           DEC    BX
           JNZ    WAIT
           MOV    AL,AH
           OUT    61H,AL
           POP    DI
           POP    DX
           POP    CX
           POP    BX
           POP    AX
           RET
SOUND      ENDP
CLEAR      PROC   NEAR
           PUSH   AX
           PUSH   BX
           PUSH   CX
           PUSH   DX
           MOV    AH,06H
           MOV    AL,00H
           MOV    CH,00H
           MOV    CL,00H
           MOV    DH,24H
           MOV    DL,79H
           MOV    BH,07H
           INT    10H
           POP    DX
           POP    CX
           POP    BX
           POP    AX
           RET
CLEAR      ENDP
CODE       ENDS
           END    START



 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -