primero buska komo leer el teklado kon assembler, luego buskate la interrupcion o la direccion del puerto del speaker pero el de la motherboard, y luego hablamos....
modifikado...
mira. aki te halle el kodigo komo sonar el speaker ... para ke veas ke soy acido:
atone db 5 ; alarm tone - may be from 1 to 255 - the
; higher the number, the lower the frequency
aleng dw 8080h ; alarm length (loop count) may be from 1-FFFF
p120 proc near ; beep the speaker once
push ax
push cx
mov al,182
out 43h,al ; setup for sound
mov al,0
out 42h,al ; low part
mov al,atone ; get alarm tone
out 42h,al ; high part
in al,61h
push ax ; save port value
or al,3
out 61h,al ; turn speaker on
mov cx,aleng ; get loop count
p125: loop p125 ; wait around
pop ax ; restore original port value
out 61h,al ; turn speaker off
pop cx
pop ax
ret
p120 endp
este es un pedazo de kodigo de una alarma ke suena el speaker cada cierto tiempo, kon ese pedacito de kodigo es todo lo ke necesitas, supongo, lo demas es deteccion de teklas... y llamar a la subrutina esta P120 kuando detectes la tekla ke es, mas info del codigo:
http://www.assembly.happycodings.com/code2.html