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

📄 yinyue.asm

📁 让计算机喇叭发出声音
💻 ASM
字号:
DATA SEGMENT
TABF DW -1,262,350,352,350,441,393,350,393,441
     DW 350,352,441,525,589,588,589,525,411
     DW 440,350,393,350,393,411,350,293,294,262
     DW 350,389,525,411,440,350,393,350,393,589
     DW 525,441,440,525,589,700,525,411,440,350
     DW 393,350,393,441,350,294,292,262,350,-1,0
TABT DB 4,4,6,2,4,4,6,2,4,4
     DB 6,2,4,4,12,1,3,6,2
     DB 4,4,6,2,4,4,6,2,4,4
     DB 12,4,6,2,4,4,6,2,4,4
     DB 6,2,4,4,12,4,6,4,4,4
     DB 6,2,4,4,6,2,4,4,12,8
DATA ENDS
N    EQU 1
CODE SEGMENT
     ASSUME CS:CODE,DS:DATA
BEG: MOV AX,DATA
     MOV DS,AX
OPEN: IN AL,61H
      OR AL,3
      OUT 61H,AL
AGA: MOV SI,OFFSET TABF
     MOV DI,OFFSET TABT
LAST:CMP WORD PTR[SI],0
     JE AGA
     MOV AL,0B6H
     OUT 43H,AL
     MOV DX,12H
     MOV AX,34DEH
     DIV WORD PTR[SI]
     OUT 42H,AL
     MOV AL,AH
     OUT 42H,AL
     CALL DELAY
     ADD SI,2
     INC DI
     MOV AH,1
     INT 16H
     JZ LAST
COLSE:IN AL,61H
     AND AL,0FCH
     OUT 61H,AL
     MOV AH,4CH
     INT 21H
DELAY PROC NEAR
    MOV AL,[DI]
    MOV CL,N
    MUL CL
    MOV CX,AX
DELAY1:CALL _DELAY1MS
     LooP DELAY1
     RET
DELAY ENDP
_delay1ms proc near
   push ax
   push dx
   push bx
   call _getcount
   mov  bx,dx
_delay1ms1:
   call _getcount
   mov ax,bx
   sub ax,dx
   jns _delay1ms1
   neg ax
_delay1ms0:sub ax,1193
   jae _delay_end
   jmp _delay1ms1
_delay_end:
  pop bx
  pop dx 
  pop ax
  ret
_delay1ms endp
_getcount proc near
   mov al,0
   out 43h,al
nop
nop
nop
   in   al,40h
   mov  dl,al
   in   al,40h
   mov  dh,al
   ret
_getcount endp
CODE ENDS
END BEG

   

⌨️ 快捷键说明

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