Intel 8080 (пример 6)

Программа нахождения максимального элемента для МП Intel 8080 аналогична соответствующей программе для МП Motorola 6800. Для реализации соответствующих проверок в ней используются команды СРАВНИТЬ и ПЕРЕЙТИ ПРИ ОТСУТСТВИИ ПЕРЕНОСА. Программа имеет следующий вид:

Intel 8080 пример 6

Поиск максимума

 Новыми в данной программе являются следующие команды:

CMP M -

При выполнении этой команды признаки устанавливаются так, как если бы содержимое ячейки памяти, адрес которой содержится в регистрах Н и L, вычиталось из содержимого сумматора. Эта команда занимает одну ячейку памяти и выполняется за 3,5 мкс.

JNG NOCHG

По этой команде управление передается в ячейку с символическим адресом NOCHG в том случае, если признак ПЕРЕНОС равен нулю. Команда занимает три ячейки памяти и выполняется за 5 мкс.

На рис. 5.28 приведен результат ассемблирования рассматриваемой программы для МП 1п1е!Ш30. На рис. 5.29 приведена трасса двух проходов блока обработки-данной программы.

В трех последних примерах можно выявить некоторые общие закономерности ассемблерных программ.
 

1. Структура простого цикла. Каждая программа состоит из блоков установки начальных значений (инициализации), обработки и управления циклом. Электронно-вычислительная машина выполняет блок инициализации всего 1 раз перед входом в цикл. Блок управления циклом определяет число повторений цикла; этот блок может быть одинаковым для многих задач обработки данных. Блок обработки может включать в себя всего один операнд или быть сложной программой.

2. Использование указателей для доступа к элементам массива. Использование адресных указателей уменьшает числоадресов памяти, выбираемых центральным процессором. Такое сокращение выборки адресов особенно важно для микропроцессоров, в которых адреса занимают обычно по две ячейки памяти. Наличие многих адресных регистров и индексирование позволяют повысить гибкость применения указателей. В блоке инициализации следует задать начальные значения всех адресных указателей, а блок управления должен осуществлять их модификацию после каждого повторения цикла.

3. Использование команд условного перехода для оргтизации циклов и разветвления вычислительного процесщ. В типовой структуре цикла предполагается установка начального значения счетчик^ и его уменьшение после каждого прохода. Команда ПЁРЕЙТИ ПО НЕ НУЛЮ обеспечивает выполнение цикла заданное число раз. Команда СРАВНИТЬ выполняет вычитание и устанавливает значение признаков, не меняя содержимого регистров. В зависимости от результата сравнения с помощью команд ПЕРЕХОД ПО НУЛЮ; ПЕРЕХОД ПО НЕ НУЛЮ, ПЕРЕХОД ПО ПЕРЕНОСУ и ПЕРЕХОД* ПО ОТСУТСТВИЮ ПЕРЕНОСА можно выбрать соответствующую ветвь программы.

Работа с массивами и организация циклов требуют большого внимания ко всем деталям. Программист должен, проверить:

а) правильно ли заданы начальные значения всех переменных перед входом в цикл;

б) верно ли заданы'адреса в командах условного перехода;

в) верно ли выбраны проверяемые условия в точках разветвления;

г) верно ли выполняется первый и.последний проходы цикла.

К этим вопросам вернемся при рассмотрении методов отладки программ в гл 6. ;
 



Детальное описание цены на билеты в двухэтажный поезд петербург-москва у нас. . Медцентры и клиники в таганроге lechy.ru.