Более подробная схема на рисунке 3 позволяет понять, как именно выполняются команды.

Прежде всего рассмотрим содержимое регистров программной памяти с адресами от 100 до 105. В эти регистры предварительно были загружены три команды:

ВВОД — ввести данные, поступающие из порта 1;

ЗАПОМНИТЬ данные, поступающие из порта 1, т.е. записать их в ячейке памяти данных с адресом 200;

ВЫВОД — вывести данные через порт вывода 10.

Программа, содержащая три указанные команды, размещается в шести ячейках. Это обусловлено тем, что каждая из этих трех простых команд поделена на две части. Например, первая часть первой команды говорит, что надо выполнить операцию ВВОД (ввести данные), а вторая часть указывает, откуда подлежащие вводу данные поступают (из порта 1). Первая часть — это и есть код операции, а вторая часть — операнд. Код операции ВВОД содержится в ячейке памяти с адресом 100, код операции ЗАПОМНИТЬ — в ячейке 102, код операции ВЫВОД — в ячейке 104.

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

Более подробная схема на рисунке 3 позволяет понять, как именно выполняются команды. - student2.ru

Рисунок 3 - Процедура выполнения команд

ПРОГРАММИРОВАНИЕ МИКРОПРОЦЕССОРНОГО УСТРОЙСВА ОБРАБОТКИ ИНФОРМАЦИИ НА БАЗЕ ОДНОКРИСТАЛЬНОГО МП

Например необходимо составить программу для разветвляющего вычислительного процесса по выражению

Более подробная схема на рисунке 3 позволяет понять, как именно выполняются команды. - student2.ru

Весь объем адресуемой памяти с адресом 0000Н…FFFFH можно представить следующим образом:

Для основной программы будем использовать адреса начиная с 0000Н и FFFFH

Директива начального адреса 0800Н (символ Н после числа указывает на то, что число записано в шестнадцатеричной системе счисления)

Адреса исходных данных (констант и переменных), а так же конечного результата в ячейках памяти начиная с адреса 0880Н

Число «х» - переменная, от которой зависит выбор выражения для вычислений. Числа «k» и «n» - величины, значения которых должно быть определено на момент начала работы программы, а перед составлением программы надо знать адрес этого числа памяти. Предлагается разместить исходные данные и результаты следующим образом:

Результат поместить в ячейку 0880Н

Число «х» в ячейку 0881Н

Число «k» в ячейку 0882Н

Число «n» в ячейку 0883Н

Перевод чисел в шестнадцатеричную систему счисления:87(10)=57Н, 25(10)=19Н 55(10)=37Н

Далее составляем алгоритм вычисления, схема которого приведена на рисунке 7

Более подробная схема на рисунке 3 позволяет понять, как именно выполняются команды. - student2.ru

Рисунок 7 – Схема алгоритма

Описание алгоритма вычисления.

Начало выполнения программы (блок 1). Производится чтение числа х в аккумулятор (блок 2), затем, происходит пересылка из регистра в регистр (блок 3), после чего происходит сравнение числа х с числом 55 (блок 4). Далее программы разделяется на 3 ветви.

Если выполняется условие (блок 5), то происходит чтение числа n в аккумулятор (блок 6), затем выполняется логическое умножение с аккумулятором (блок 7) и логическое сложение числа 87 с аккумулятором (блок 8). Производится загрузка результата в ячейку 0880 и остановка программы.

В случае невыполнения условия С (блок 5) программа переходит к условию Z(блок 9). При выполнении условия происходит чтение числа k в аккумулятор (блок 10), затем выполняется сложение содержимого регистра с содержимым аккумулятора (блок 11). Потом происходит вычитание из содержимого регистра с содержимым аккумулятора (блок 12). Производится загрузка результата в ячейку 0880 и остановка программы.

Наши рекомендации