9. Процедуры
Синтаксис описания процедуры:
имя_процедуры PROC [модификатор языка] [расстояние]
…
[имя_процедуры] ENDP
Процедура, часто называемая также подпрограммой, - это основная функциональная единица декомпозиции (разделения на несколько частей) некоторой задачи. Процедура представляет собой группу команд для решения конкретной подзадачи и обладает средствами получения управления из точки вызова задачи более высокого уровня и возврата управления в эту точку. В простейшем случае программа может состоять из одной процедуры. Другими словами, процедуру можно определить как правильным образом оформленную совокупность команд, которая, будучи однократно описана, при необходимости может быть вызвана в любом месте программы.
Среди большого количества операндов директивы PROC следует особо выделить [расстояние]. Этот атрибут может принимать значения near или far и характеризует возможность обращения к процедуре из другого сегмента кода. По умолчанию атрибут [расстояние] принимает значение near.
Процедура может размещаться в любом месте программы, но так, чтобы на нее случайным образом не попало управление. Если процедуру просто вставить в общий поток команд, то микропроцессор будет воспринимать команды процедуры как часть этого потока и соответственно будет осуществлять выполнение команд процедуры.
10. Системный таймер
Таймеру соответствуют четыре порта ввода/вывода со следующими адресами:
- 40h - канал 0;
- 41h - канал 1;
- 42h - канал 2;
- 43h - управляющий регистр.
Одно из наиболее распространенных применений таймера - генерация звуковых сигналов и воспроизведение музыки. Таймер позволяет воспроизводить музыку в фоновом режиме, т.е. во время работы программы может звучать музыка.
Как мы уже говорили, канал 2 микросхемы 8254 связан с громкоговорителем компьютера. Однако громкоговоритель не просто соединен с выходом OUT канала 2. Порт вывода 61h также используется для управления громкоговорителем. Младший бит порта 61h подключен ко входу GATE канала 2 таймера. Этот бит при установке в 1 разрешает работу канала, т.е. генерацию импульсов для громкоговорителя.
Дополнительно для управления громкоговорителем используется бит 1 порта 61h. Если этот бит установлен в 1, импульсы от канала 2 таймера смогут проходить на громкоговоритель.
Таким образом, для включения звука надо выполнить следующие действия:
- запрограммировать канал 2 таймера на нужную частоту (т.е. загрузить регистр счетчика канала нужным значением);
- для включения звука установить в 1 два младших бита порта 61h.
Так как остальные 6 битов порта 61h используются для других целей, установка младших битов должна выполняться таким образом, чтобы значения остальных битов не были изменены. Для этого вначале надо считать байт из порта 61h в рабочую ячейку памяти, установить там нужные биты, затем вывести новое значение байта в порт 61h.
Очевидно, что для выключения звука надо сбросить два младших бита порта 61h в 0 (при этом нельзя изменять значение остальных битов этого порта).
Мелодия (одноголосая), как известно, состоит из нот, разделенных или не разделенных паузами. При проигрывании мелодии необходимо для каждой ноты программировать соответствующим образом канал 2 таймера и включать громкоговоритель (с помощью порта 61h) на определенное время, равное длительности ноты. Затем программа должна выключить динамик и выдержать паузу перед проигрыванием следующей ноты, если такая пауза требуется.
Основная идея заключается в использовании прерывания 1Ch, которое вырабатывается таймером с частотой примерно 18,2 Гц. Пользовательский обработчик этого прерывания осуществляет контроль за выборкой нот из массива, содержащего мелодию, и программирование микросхемы 8254. Если подготовить таблицы частот и длительностей, то можно проигрывать простейшие мелодии.
Для определения значения, которое должно быть записано в регистр счетчика канала 2 таймера, надо разделить 1193180 на требуемую частоту в герцах.
В таблице ниже приведены частоты нот для второй октавы. При повышении (понижении) тона на октаву частота соответствующей ноты умножается (делится) на два.
Таблица 1 - Частоты нот
Нота | Частота, Гц |
До | 261,7 |
До-диез | 277,2 |
Ре | 293,7 |
Ре-диез | 311,1 |
Ми | 329,6 |
Фа | 349,2 |
Фа-диез | 370 |
Соль | 392 |
Соль-диез | 415,3 |
Ля | 440 |
Ля-диез | 466,2 |
Си | 493,9 |
2. КОНСТРУКТОРСКАЯ ЧАСТЬ
2.1 Общие сведения
Данная программа написана на ассемблере языке программирования низкого уровня, создана с использованием программных средств пакета Tasm и редактора AsmEdit. Исполняемый файл программы находится в формате.exe и называется kur.exe.
2.2 Функциональное назначение
Данная программа позволяет пользователю выбрать одну из двух представленных мелодий для генерации и воспроизведения.
2.3 Описание логической структуры программы
2.3.1 Алгоритм работы программы
- Вывод на экран строки
- Сохранение старого вектора прерывания
- Установка нового вектора прерывания
- Опрос клавиатуры
- Если выбран номер мелодии, то поместить массив в аккумулятор
- Иначе: восстановление обработчика прерывания и выход
... примерно 6%. В общем, в районе 1 - 4 кГц чувствительность уха по всем параметрам максимальна, и составляет не так уж и много, если брать не логарифмированные значения, с которыми приходится работать цифровой технике. Примите на заметку - многое из того, что происходит в цифровой обработке звука, может выглядеть ужасно в цифрах, и при этом звучать неотличимо от оригинала. В цифровой обработке ...
... К. Сатпаева» для просмотра и ввода информации системы оперативно-диспетчерского контроля и управления, создаваемые на Visual Basic. Специфика используемого в системе оперативно-диспетчерского контроля и управления РГП «Канал им. К. Сатпаева» ПО такая, что разработка ПО, как таковая, может производиться только при создании самой системы. Применяемое ПО является полуфабрикатом. Основная задача ...
... система обеспечивает совместное функционирование всех устройств ПК и предоставляет пользователю доступ к его ресурсам. WINDOWS 95, WINDOWS 98, WINDOWS ME, WINDOWS XP. Состав Операционной системы: 13) Программный модуль, управляющий файлами. 14) Командный процессор (выполняет команды пользователя). 15) Программы, обеспечивающие управление работой различных устройств (ввода, ...
... вычислительным сетям"; ГОСТ 11326.2-79, ГОСТ 11326.16-79; структурной схемой ЛВС; необходимыми документами по обеспечению режимных мероприятий, специальными требованиями, предъявляемыми к электронно-вычислительной технике (ЭВТ) объектов информации соответствующей категории и предписаниями на эксплуатацию. Требования к средствам вычислительной техники Стандартными средствами при оснащении объектов ...
0 комментариев