- •Тема 1. Характеристики сигналов в электронных
- •Тема 2. Математические и логические основы построения цифровых электронных устройств
- •Тема 3. Триггеры
- •Тема 4. Реализация логических функций с помощью интегральных микросхем.
- •Тема 1. Ситемы счисления и цифровые коды
- •Тема 2. Цифровые устройства комбинационного и типа
- •Тема 3. Цифровые устройства последовательного типа и запоминающие устройства
- •Тема 4. Микропроцессоры
- •Тема 5. Программирование микропроцессоров
- •Тема 6. Интерфейсы микропроцессорных систем
- •Задача 3
- •Задача 5
- •Вопрос 6.
Тема 5. Программирование микропроцессоров
1. Понятие программирования.
2. Блок-схема алгоритма.
3. Ассемблеры. Язык ассемблера.
5. Организация счета и временных задержек.
6. Построение модуля центрального процессора.
Методические указания
Понятие об Ассемблере. Команды, выполняемые микропроцессором, представляются комбинациями единиц и нулей. Такое представление команд называют машинными командами. Чтобы представить машинные команды более понятными для человека, используют их символьные (мнемонические) обозначения. В этом случае каждой машинной команде соответствует командный оператор на специальном языке — Ассемблере и машинная программа представлена в виде ассемблерной программы. Программа на языке Ассемблер является простейшей, так как в точности описывает последовательность действий микропроцессора. Для перевода ассемблерной программы на машинный язык единиц и нулей можно, конечно, воспользоваться таблицами перевода, но практически для этого имеются специальные ассемблирующие программы. Процесс преобразования программы с языка Ассемблер в машинные коды называется трансляцией. Программа, написанная на языке Ассемблер, кроме операторов содержит также директивы, т.е. специальные указания ассемблирующей программе. Они не транслируются в машинные команды, но информация, заложенная в них, используется для преобразования командных операторов в машинные команды.
Общий формат ассемблерной команды имеет следующий вид:
Метка: Мнемоника Операнд, Операнд; Комментарий
Метка — это идентификатор, присваиваемый команде. С помощью меток в программе можно указывать команды, которым следует передать управление в случае условных или безусловных переходов. Мнемоника(операция) — краткое обозначение команды, обычно состоящее из трех-четырех латинских букв, представляющих сокращение от английского названия команды: ADD — addition (сложение); MOV — move (переслать) и т.д. Операнд, Операнд — поля первого и второго операндов. Первый операнд является приемником результата операции. Запятая служит признаком разделения полей операндов. Один из операндов — содержимое регистра, второй задается всеми возможными режимами адресации. Комментарий — необязательная составляющая оператора. Он игнорируется при трансляции и служит только для пояснений программы, ее отдельных фрагментов или операторов.
Для записи операндов используются следующие правила:
Если в регистре содержится сам операнд, его обозначение дается без скобок, если в регистре содержится составляющая адреса ячейки ОЗУ при косвенной адресации, то дается обозначение регистра в квадратных скобках. Например, запись ADD AX, [BX] означает, что в операции сложения первый операнд находится в регистре АХ, а второй — в ячейке ОЗУ, адрес которой содержится в регистре ВХ. По записи оператора ассемблирующая программа автоматически определяет режим адресации.
Операнд может быть задан идентификатором — каким либо сочетанием букв, не совпадающим с наименованием регистров, например ADD AX, BETA. В этом случае идентификатору (в нашем случае метке BETA) соответствует ячейка ОЗУ, которая должна быть зарезервирована за ним в начале программы специальным оператором. Ассемблирующая программа при трансляции вычислит смещение этой ячейки относительно начала сегмента, и соответствующий операнд будет задан в машинной команде в режиме прямой адресации в виде адреса.
Знак «+» в записи операнда используется для задачи смещения. Например, запись ADD AX, [SI]+8 определяет второй операнд в режиме регистровой относительной адресации. Адрес ячейки ОЗУ, содержащей второй операнд, определится как сумма содержимого регистра SI и смещения «8». Знак «+» можно использовать также для задачи дополнительного смещения. Например, операнд, заданный как ВЕТА+2, будет указывать на ячейку ОЗУ, адрес которой больше адреса ячейки BETA на «2». При этом ассемблирующая программа вычислит соответствующий адрес и поместит его в машинную команду в режиме прямой адресации.
4. Операнд может быть задан непосредственно числом. При этом необходимо указать, в какой системе счисления оно записано. Этот признак проставляется сразу после числа. Ассемблирующая программа самостоятельно переведет это число в двоичную форму и занесет в машинную команду.
Вопросы для самопроверки
!. Зачем применяются блок-схемы алгоритмов?
2. Какие функции выполняет язык ассемблера?
3. Из каких основных частей состоит язык ассемблера?
4. Перечислите правила задания операндов.
5. Зачем в процессорном модуле применяется генератор тактовых импульсов?