Общая структура микропроцессорной системы. Развитие фон-Неймовской архитектуры. Микроконтроллеры средней серии Microchip. Программирование микроконтроллеров Microchip средней серии, страница 4

Адрес

Код

Метка

Мнемоника

Операнд

Комментарии

8200

21

START

LXIH

00, 80

8203

MOV A, M

8204

INX H

8205

86

ADD M

8206

ADI

10

Константа в условии не задана, выбираем = 10

8208

МЕТКА

INX H

8209

77

MOV M, A

8201

Е7

RST 32

JMP Метка

08, 82

4 – Трансляция заключается в переводе мнемоники в машинный код. Может выполнятся специальными программами или вручную. Необходимо:

1.  найти код команды мнемоники по таблицам

2.  определить операнды (данные и адреса)

3.  установить адреса в памяти для каждой команды и операнда

5 – Числа, содержащиеся в колонке «Код», могут быть введены в систему. Начинается процесс отладки – поиск и устранение ошибок. Программа вводится с известными данными и результат проверяется.

6 – Документировать программу значит дать ее описание, указывающее в какой последовательности должны выполнятся операции с программой. Сюда входят схемы вычислений, списки, данные, используемые программы и комментарии.

Структурное программирование

Согласно основной теореме структурного программирования, алгоритм любой сложности может быть построен с помощью трех управляющих конструкций: следование, цикл, альтернатива.

Управляющая конструкция следования предполагает выполнение команд одна за другой. После выполнения одной команды (оператора), извлекается новая, дешифруется и выполняется. Все процессоры имеют поддержку данной функции, благодаря взаимодействию дешифратора команд и счетчика команд. Дешифрируя команду, дешифратор команд определяет адрес следующей команды и перед началом ее использования записывает адрес в счетчик команд.

Для удобства программирования используют несколько типов циклов:

1.  Цикл с предпроверкой – детерминированный цикл, и заранее известно сколько раз он будет исполнен.Задается количество повторений тело цикла. В теле цикла вначале проверяется значение счетчика цикла. Если значение не нулевое, то тело цикла выполняется, счетчик уменьшается на единицу.

2.  Цикл с постпроверкой – детерминированный цикл. Проверка выполняется после выполнения тела цикла. Если тело цикла равно 0, то тело цикла выполняется как минимум один раз.

3.  Цикл с параметром – недетерминированный цикл. Тело цикла выполняется до тех пор, пока  некоторый параметр не будет удовлетворять некоторому условию (метод последовательных приближений).

4.  Цикл с выходом из середины – детерминированный цикл, но с возможностью досрочного завершения цикла по некоторому условию.

В Ассемблере нет команд для реализации циклов. Поэтому, при реализации любого типа цикла, используют команды условного перехода. Наиболее просто реализуются циклы с постпроверкой.

Пример: Обнулить 20 ячеек памяти начиная с 8000

LXIH, 8000

MVI C, 20

MVI A, 0

LOOP MOV M, A

INX H

DCR C

JNZ LOOP

Для удобства программирования 3 типа альтернатив: полная, неполная, множественное ветвление.

IF <условие> THEN <действие>

IF <условие> THEN <действие 1> ELSE <действие 2>

На языке Ассемблера нет специальных команд для реализации альтернатив, поэтому необходимо использовать команды сравнения и условные переходы.

Пример: Сравнить содержимое регистров D и F и переслать наибольшее в память.

LXIH 8000

MOV A, D

CMP E

JP THEN

ELSE MOV M, E

JMP NEXT

THEN MOV M, A

NEXT….