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

📄 woniu.asm

📁 汇编程序制作的蜗牛音乐,在dos环境下运行,更多的音乐原代码
💻 ASM
字号:
STACK SEGMENT PARA STACK'    STACK'   
   DW    256    DUP(?)   
   STACK ENDS   
   DATA SEGMENT   
    
   FREQ                          DW              1                DUP(392,396,392,395,330,392,262,440,392,395)   
   DW 1 DUP(392,395,392,330,294,262,330,294,297,330)   
   DW 1 DUP(392,395,392,330,335,294,262,265,294,330)   
   DW 1 DUP(262,265,220,196,220,196,392,395,392,395)   
   DW 1 DUP(330,392,262,440,292,392,395,392,395,330)   
   DW 1 DUP(294,262,330,294,294,330,392,395,330,335)   
   DW 1 DUP(294,262,265,294,330,262,265,220,196,220)   
   DW 1 DUP(196,392,395,392,395,330,294,262,440,392)   
   DW 1 DUP(395,440,262,294,262,294,330,294,262)   
   DW 1 DUP(0)   
    
   TIME                          DW              1                DUP(25,50,25,50,25,25,50,50,100,25)   
   DW 1 DUP(50,25,50,25,25,50,50,100,75,25)   
   DW 1 DUP(50,25,25,50,25,25,50,50,75,25)   
   DW 1 DUP(50,25,25,50,50,100,25,50,25,50)   
   DW 1 DUP(25,25,50,50,100,25,50,25,50,25)   
   DW 1 DUP(25,50,50,100,75,25,50,50,50,25)   
   DW 1 DUP(25,50,50,75,25,50,25,25,50,50)   
   DW 1 DUP(100,25,50,25,50,25,25,50,50,50)   
   DW 1 DUP(25,25,50,50,50,50,100,100,200)   
   DATA ENDS   
    
    
   CODE SEGMENT   
   ASSUME CS:CODE,DS:DATA   
   START:                      MOV                            AX,DATA   
   MOV DS,AX   
   MOV SI,OFFSET FREQ   
                                   MOV                            BP,OFFSET                TIME   
                                   CALL          PLAY   
   MOV AH,4CH   
   INT 21H   
    
   PLAY PROC NEAR   
   PUSH DI   
   PUSH SI   
   PUSH BP   
   PUSH BX   
   REPT0:                      MOV                            DI,[SI]   
   CMP DI,0   
   JE END_PLAY   
   MOV AH,1   
   INT 16H   
   JNZ END_PLAY   
   MOV BX,DS:[BP]   
   CMP DI,20   
   JNZ REPT3   
   REPT1:                      MOV                            CX,2801   
   REPT2:                      LOOP          REPT2   
   DEC BX   
   JNZ REPT1   
   JMP REPT4   
   REPT3:                      CALL          SOUND   
   REPT4:                      ADD                            SI,2   
   ADD BP,2   
   JMP REPT0   
   END_PLAY:                POP          BX   
   POP BP   
   POP SI   
   POP DI   
   RET   
   PLAY 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,34DCH   
   DIV DI   
   OUT 42H,AL   
   MOV AL,AH   
   OUT 42H,AL   
   IN AL,61H   
   MOV AH,AL   
   OR AL,3   
   OUT 61H,AL   
   DELAY:                      MOV                            CX,28010   
   DL10MS:                    LOOP          DL10MS   
   DEC BX   
   JNZ DELAY   
   MOV AL,AH   
   OUT 61H,AL   
   POP DI   
   POP DX   
   POP CX   
   POP BX   
   POP AX   
   RET   
   SOUND ENDP   
    
    
   CODE ENDS   
   END START   

⌨️ 快捷键说明

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