?? piano.asm
字號:
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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -