piano.asm

来自「汇编的课程设计,音乐播放及其它功能.....详细自己操作看看.」· 汇编 代码 · 共 72 行

ASM
72
字号
public piano
extrn sound:far
STACK SEGMENT PARA STACK 'STACK'
	DB 64 DUP('STACK')
STACK ENDS

dseg segment para 'data'
table  dw 262
       dw 294
	dw 330
	dw 349
	dw 392
	dw 440
	dw 494
	dw 523
dseg ends

cseg segment para 'data'
	assume cs:cseg,ds:dseg,ss:stack
piano proc far
	mov ax,dseg
	mov ds,ax
new:
      mov ah,0
	int 16h
	cmp al,0dh
	je exit
	mov bx,offset table
 	cmp al,'1'
	jb new
	cmp al,'8'
	ja new
	and ax,0fh
	shl ax,1
	sub ax,2
	mov si,ax
	mov di,[bx][si]
         
         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
         push    ax
next12:  
         
         in      al,60h
         test    al,80h
         jz      next12
next11:   
         pop     ax
         mov     al,ah                  
         out     61h,al
	jmp new
exit:
	ret
piano  endp
cseg ends
      end piano





⌨️ 快捷键说明

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