Es algo simple va
TITLE SONYG(EXE) CREAR SONIDO POR GABINOC
SOUNGS SEGMENT PARA 'code'
ASSUME DS:SOUNGS,CS:SOUNGS,SS:SOUNGS
ORG 100H
BEGIN: JMP MAIN
;-------------------------------------------------
TIEMPO DW 10000
SONIDO DW 512H
;-------------------------------------------------
MAIN PROC NEAR
IN AL,61H
PUSH AX
CLI
CALL CREA_SONIDO
POP AX
OUT 61H,AL
STI
RET
MAIN ENDP
;-------------------------------------------------
CREA_SONIDO PROC NEAR
A40:
MOV DX,TIEMPO
A30:
AND AL,11111100B
OUT 61H,AL
MOV CX,SONIDO
A10:
INC SONIDO
LOOP A10
OR AL,00000010B
OUT 61H,AL
MOV CX,SONIDO
A20:
LOOP A20
DEC DX
JNZ A30
SHL SONIDO,1
SHR TIEMPO,1
JNZ A40
RET
CREA_SONIDO ENDP
;---------------------------------------------------------
SOUNGS ENDS
END BEGIN