|
VOID S_mess(WORD sss,WORD sss1){
// system("call sound.exe");
_asm push ax //;сохранить регистры
_asm push bx
_asm push dx
_asm mov bx,sss //;частота
_asm mov ax,34DDh
_asm mov dx,12h //;(dx,ax)=1193181
_asm cmp dx,bx //;если bx < 18Гц, то выход
_asm jnb Done //;чтобы избежать переполнения
_asm div bx //;ax=(dx,ax)/bx
_asm mov bx,ax //;счетчик таймера
_asm in al,61h //;порт РВ
_asm or al,3 //;установить биты 0-1
_asm out 61h,al
_asm mov al,00001011b //;управляющее слово таймера:
// ;канал 2, режим 3, двоичное слово
_asm mov dx,43h
_asm out dx,al //;вывод в регистр режима
_asm dec dx
_asm mov al,bl
_asm out dx,al //;младший байт счетчика
_asm mov al,bh
_asm out dx,al //;старший байт счетчика
_asm Done:
_asm pop dx //;восстановить регистры
_asm pop bx
_asm pop ax
}
E-mail: info@telesys.ru