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

📄 sound.asm

📁 学分管理系统的分析
💻 ASM
字号:
	 name sound.asm
	 public  beep,sound
	 include macro.lib
	 
stack    segment  stack
	 db  200 dup(0)
stack    ends	         

data segment  public  'data'
freg dw 5421,4828,4056,3614,3614,4056,4552,4828
     dw 5421,4828,4552,4828,5421,5421
     dw 5421,4828,4552,4056,3614,3614,2710,3417,4056,4056
     dw 3 dup(4552),4056,4552,3614,3614
     dw 4 dup(2710),3614,4 dup(3042),3614,4056
     dw 4056,4552,3042,3614,3614
     dw 4 dup(2710),2415,2710,4 dup(3042),3614,4056
     dw 4552, 4552,5421,6085,5421
     dw 3 dup(4056),3614,3042,3614,3042,5421
     dw 4 dup(2280),2415,2710,3042,3042
     dw 3 dup(4056),3614,3042,3614,4056,4056,3614,3042,3042,3614
     dw 3 dup(4056),3614,3042,2280,2415,2415,2710,0
time dw 3 dup(25),12,12,4 dup(25),25,25,4 dup(12),100
     dw 3 dup(25),3 dup(12),25,25,12,3 dup(25),4 dup(12)
     dw 100,12,25,12,25,25,12,25,12,25,12,12,3 dup(25)
     dw 12,12,100,2 dup(12,25,12,25,12,12),25,25,12
     dw 12,25,100,2 dup(12,12,12,12,25,12,12,100)
     dw 4 dup(12),25,25,12,25,12,25,25,4 dup(12)
     dw 25,3 dup(12),88
si_freg dw  freg
di_time dw  time
data ends         
code    segment  public 'data'
.386
         assume  ss:stack,cs:code,ds:data         
;帮助菜单的歌曲播放
sound  proc far
       pusha
       push ds
     
       mov  ax,data
       mov  ds,ax
       mov  si,si_freg
       mov  di,di_time
       mov  al,0b6h
       out  43h,al
       mov  ax,[si]
       cmp  ax,0
       jne  next
       mov  si_freg,offset freg
       mov  di_time, offset time
       jmp  exit
next:
       out  42h,al
       mov  al,ah
       out  42h,al
       in   al,61h
       mov  ah,al
       or   al,3
       out  61h,al
       delay 50
       mov al,ah
       out 61h,al
       add si,2
       add di,2
       mov si_freg,si
       mov di_time,di
exit:
       pop ds
       popa
       iret
sound  endp
;====================================================
;发出菜单激活的声音
beep    proc  far
	pusha
	mov  al,0b6h
        out  43h,al
	mov ax,	4056
	out  42h,al
        mov  al,ah
        out  42h,al
        in   al,61h
        mov  ah,al
        or   al,3
        out  61h,al
        delay  10
        mov  al,ah
        out  61h,al
	popa
	ret
beep 	endp
;=============================================
code    ends
	end

⌨️ 快捷键说明

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