- •I. Задание на курсовой проект
- •1. Тематика курсового проекта
- •2. Задание и общие требования к выполнению
- •II. Методические указания к выполнению курсового проекта
- •1. Требования к блок-схеме алгоритма
- •2. Составление блок-схемы алгоритма и программы
- •3. Пример выполнения курсового проекта
- •3.1. Общая постановка задачи
- •3.2. Распределение памяти
- •3.3. Составление структурной схемы алгоритма решения задачи и программ
- •Программы вычислений на языке ассемблера и в машинных кодах
- •3.4. Замечания к примеру курсового проекта
- •Задание на курсовой проект Тема проекта: «Микропроцессорное устройство обработки информации
- •Основные директивы ассемблера
- •Основные приемы программирования
- •1. Организация счета
- •2. Организация временной задержки
- •3. Сложение и вычитание чисел
- •4. Умножение и деление
- •5. Организация массивов, очередей и стеков
- •5.1. Массивы
- •5.2. Очередь
- •5.3. Стек
- •6. Подпрограммы
- •Ассемблирование вручную
Основные приемы программирования
1. Организация счета
Операция счета выполняется с помощью некоторого регистра общего назначения, в который загружается константа, равная заданному коэффициенту пересчета N. Затем из содержимого этого регистра вычитаются единицы до получения нулевого результата, после чего следует условный переход по нулю. При отсутствии свободного регистра в качестве счетчика можно использовать ячейку ОЗУ.
Обычно операция счета связана с созданием временной задержки, с какими-либо внешними событиями или с циклическим участком программы, когда некоторая основная функция повторяется несколько раз. Здесь возможны два способа организации счета: в первом случае сначала выполняется основная функция, а затем — счет и проверка состояния счетчика; во втором — наоборот. Соответственно, обеспечиваются следующие пределы изменения коэффициента пересчета: 1N2n и 0N2n -1. Так как разрядность n регистра равна 8, то максимальная емкость счетчика, выполненного на одном регистре — 256. Если требуется обеспечить N 256, то следует организовать совместную работу двух или нескольких регистров.
2. Организация временной задержки
Функция временной задержки или генерации временных интервалов заданной длительности часто необходима для организации взаимодействия микропроцессора (МП) с внешними устройствами. Так как тактовая частота МП обычно стабилизирована, то задержка может осуществляться с большой точностью. Длительность такта — 0,5 мкс при работе МП на частоте 2 МГц.
Для реализации малых задержек можно использовать приведенные в табл. 5 команды, выполнение которых не изменяет содержимого регистров и элементов памяти МПК (за исключением содержимого счетчика команд).
С помощью команд из табл. 5 можно обеспечить задержку на любое число тактов (кроме шести), начиная с четырех.
Однако задержки большой длительности целесообразно получать путем организации счета, т. е. циклических участков в программе. В этом случае задача сводится к выбору числа каскадов счетчика, определению требуемых коэффициентов пересчета и к введению дополнительных малых задержек для обеспечения точного значения заданного времени задержки.
На базе однокаскадного счетчика целесообразно получать задержки длительностью до десятка миллисекунд. Для получения более длительных задержек число каскадов счетчика увеличивается программным путем.
Таблица 5
Команда |
Число тактов |
Число байтов в формате команды |
Название команды и примечание |
NOP |
4 |
1 |
Пустая операция |
MOV A, A |
5 |
1 |
Пересылка (А)(А) |
ADI 00H |
7 |
2 |
Сложение A с нулем (может повлиять на флаги!) |
XTHL XTHL |
18 18 |
1 1 |
Двукратный обмен вершины стека с H — L — задержка на 36 тактов |
PUSH B POP B |
11 10 |
1 1 |
Запись в стек с последующим считыванием — задержка на 21 такт |
