Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .286
- .model small
- .stack 20h
- .data
- msg1 db 13,10,'Введите T:',13,10,'$'
- msg2 db 13,10,'Введите To:',13,10,'$'
- msg label byte ;структура для ввода символов клавиатуры
- maxnum db 5 ;масимальное количество символов
- reallen db ?
- numfld db 5 dup (30H) ;буфер для ASCII кодов сивмволов
- T dw ?
- To dw ?
- sum dw ?
- z dw 0 ;результат преобразования символов в часло
- mult10 dw 0;вспомогательная переменая для преобразования символов в часло
- .code
- sound proc
- pusha
- ;mov di,6000 ;частота звука
- ;mov bx,2000 ;длительность
- mov al,0b6H
- out 43H,al
- mov dx,0014H
- mov ax,4f38H
- div di
- out 42H,al
- mov al,ah
- out 42H,al
- in al,61H
- mov ah,al
- or al,3
- out 61H,al
- l1: mov cx,2801H
- l2: loop l2
- dec bx
- jnz l1
- mov al,ah
- out 61H,al
- popa
- ;mov ah,4cH
- ;int 21H
- ret
- sound endp
- asbin proc ;процедура преобразования символов в часло
- mov mult10,0001 ;инициализация фактора преобразования
- mov z,0 ;обнуление результата
- mov cx,10 ;основание системы счисления
- lea si,numfld-1 ;установка указателя на начало буфера
- mov bl,reallen ;загрука фактического колиества символов часла
- sub bh,bh ;обнуление регистра bh
- B20: ;цикл преобразования символов часло
- mov al,[si+bx] ;загрузка символа из конца буфера
- and ax,000fH ;выделение младешей тетрады
- mul mult10 ;выделение еденицы и умножение цифры на 10 в степени n
- add z,ax ;прибавление промежуточного результата
- mov ax,mult10 ;загрузка переменной нового значеня mult10 в ax
- mul cx ;умножение переменной mult10 на 10
- mov mult10,ax ;сохранение нового значение переменной
- dec bx ;перемещение указателя на следующий разряд числа
- jnz B20 ;продолжение цикла преобразования
- ret
- asbin endp
- start:
- mov ax,@data
- mov di,500 ; загрузка частоты звучания динамика
- mov bx,T; загрузка длительности звучания в тактах м/п
- call sound
- mov di,1000 ; загрузка частоты звучания динамика
- mov bx,T; загрузка длительности звучания в тактах м/п
- call sound
- mov di,1500 ; загрузка частоты звучания динамика
- mov bx,T; загрузка длительности звучания в тактах м/п
- call sound
- kc:mov ah,4cH
- int 21H
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement