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

📄 s_2.asm

📁 这是我在很多网站上辛苦搜集的所有有关计算机钢琴的程序以及大量报告
💻 ASM
字号:
code    segment
        assume  cs:code
oldint8 dd  ?
oldint9 dd  ?
time    dw  0

ascii   db  10H,11H,12H,13H,14H,15H,16H
        db  1EH,1FH,20H,21H,22H,23H,24H
        db  2CH,2DH,2EH,2FH,30H,31H,32H
	db  4FH,50H,51H,4BH,4CH,4DH,47H

music   dw  131,147,165,175,196,220,247
	dw  262,294,330,349,392,440,494
        dw  523,587,659,698,784,880,988
        dw  1046,1175,1318,1397,1568,1760,1975
  
newint8:
        dec     cs:word ptr time
        jz      closev
new8_0:
        jmp     cs:oldint8
closev:
        push    ax
        in      al,61h
	and	al,0fdh
        out     61h,al
        pop     ax
        jmp     new8_0
voice:
        mov     cx,ax
        mov     dx,12h
        mov     ax,34dch
        div     cx
        push    ax  
        mov     al,0b6h
        out     43h,al
        pop     ax
        out     42h,al
        mov    	al,ah
        out     42h,al
        in      al,61h
        or      al,03h
        out     61h,al
        ret
newint9:
        in      al,60h
        push    ax
        in      al,61h
        or      al,80h
        out     61h,al
        and     al,7fh
        out     61h,al
        mov     al,20h
        out     20h,al
        sti
        pop     ax 
        push    ax
        cmp     al,80h
        jb      new90
        mov     cs:word ptr time,04h
        jmp     quit
new90:
        push    cs
        pop     es
        mov     di,offset ascii
        mov     cx,2ddh 
        cld
        repnz   scasb
        jcxz    quit
        sub     di,offset ascii
        dec     di
        shl     di,1
        mov     ax,es:[di+music]
        mov     cs:word ptr time,0h
        call    voice 
quit:
        pop     ax
        cmp     al,01h
        jnz     menu
        lds     dx,cs:oldint8
        mov     ax,2508h
        int     21h
        lds     dx,cs:oldint9
        mov     ax,2509h
        int     21h 
        mov     ax,4c00h
        int     21h
menu:
        sti
        jmp     menu
start:
        mov     ax,cs
        mov     ds,ax
        mov     ax,3508h
        int     21h
        mov     cs:word ptr oldint8,bx
        mov     cs:word ptr oldint8+2,es
        mov     ax,3509h
        int     21h  
        mov     cs:word ptr oldint9,bx
        mov     cs:word ptr oldint9+2,es
        mov     ax,2508h
        mov     dx,offset newint8
        int     21h
        mov     ax,2509h
        mov     dx,offset newint9
        int     21h
        jmp     menu
code    ends
        end     start
        
        
        
        
        
        
        

⌨️ 快捷键说明

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