|
Небходимо заметить, что при
формировании звука с помощью таймера, он продолжает звучать
до тех пор, пока он не будет отключен той же программой ,
которая его запустила.
Листинг 3.2. может использоваться в качестве примера
формирования звуков без использования таймера. Программа на
ассемблере, представленная листингом 11.1., показывает как
запустить звучание динамика с помощью таймера.
Приложение 11.1. Текст программы генерации звука с
использованием таймера (Ассемблер).
a440seg segment 'code'
assume cs:a440seg
a440 proc far
mov al,0b6h
out 67,al
mov ax,2711
out 66,al
mov al,ah
out 66,al
in al,97
or al,03
out 97,al
int 20h
a440 endp
a440seg ends
end
Глава 1. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ 1: ИНСТРУМЕНТАЛЬНЫЕ
СРЕДСТВА СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ
Потребность в короткой записи операторов
Введение в МАКРОСЫ
Условное ассемблирование
Условное ассемблирование и МАКРОСЫ
Структурные операторы управления в языке Ассемблер
Макросы данных
Макросы генерации программного кода
Применение директивы STRUC
Когда программисты-фанатики собираются в своем кругу для об-
суждения тайн структурного программирования, разговор обычно кон-
центрируется на небольшом наборе конструкций языка типа
IF-THEN-ELSE. Приверженец языков Паскаль или Си будет читать лек-
цию о преимуществах языков высокого уровня по сравнению с языками
ассемблерного типа. Вероятно, будут приведены горячие аргументы
по поводу использования оператора GOTO. Несмотря на все предыду-
щие обсуждения, ясно, что сказано далеко не все. В действитель-
ности, подобное обсуждение фокусируется только на структурном
программировании.
|