Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MIT.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
620.15 Кб
Скачать

3.2 Описание программы

Для того чтобы обратиться к ЯП ОЗУ необходимо загрузить ее адрес в любую свободную РП. В данной задаче используется РП Х для хранения адреса ЯП ОЗУ. После чего микроконтроллер копирует данные из ЯП, адрес которой указан в РП Х в РОН r17. Для проверки на четность/нечетность используем флаг С. Для этого необходимо сдвинуть данные вправо на один разряд таким образом, чтобы младший бит данных оказался во флаге С. Если флаг С примет значение равное единице, то данные в регистре r17 нечетные. Если же флаг С будет равен 0, то данные четные.

Далее возможно 2 варианта выполнения команды. Первый вариант, если данные четные, то микроконтроллер после проверки флага С перейдет на следующую строку. Если данные нечетные, то микроконтроллер перейдет по метке nechet. Рассмотрим первый случай, когда данные четные. Следующая команда, которую выполнит микроконтроллер – это сдвинет данные обратно влево, чтобы восстановить их и далее проверит данные на принадлежность к заданному по условию задачи интервалу, то есть сравнит их с числом 14710. После чего во флаге С установится лог. 1, если произошел заем, т.е. данные меньше числа 14710 или лог. 0 если данные равны или больше числа 14710. В зависимости от значения флага С микроконтроллер окажется либо на следующей строчке программы, что будет означать, что данные подходят по условию и следует выполнить над ними требуемые действия, либо данные по условию не подошли, следовательно никаких действий выполнять не следует и перейдет сразу в конец программы.

Во втором случае, если данные нечетные, микроконтроллер окажется на метке nechet. Прежде чем сравнить их на принадлежность к заданному интервалу микроконтроллер восстановит данные с помощью сдвига влево. После чего сравнит с числом 6010. Если данные в регистре r17 больше либо равны числу 7710 (флаг С = 0), следует перейти к их обработке, если данные меньше 7710 (флаг С = 1), то никаких действий над данными не выполнять и сразу перейти в конец программы.

Микроконтроллер окажется на следующей строчке программы только в том случае, если данные подходят по условию. После чего полученный результат следует поместить обратно в ЯП.

3.3 Блок – схема программы

Блок – схема программы находится в приложении В. В приложении В приняты следующие сокращения: ЯП – ячейка памяти, РП – регистровая пара, РОН – регистр общего назначения.

4 Лабораторная работа №4

Написание подпрограммы с организацией цикла и проверкой данных на четность/нечетность на языке ассемблер микроконтроллера Atmega 8515 фирмы Atmel.

Лабораторная работа №4 посвящена организации цикла в программе. Организация цикла связана с необходимостью повтора одинаковых действий над содержимым ЯП расположенных последовательно. При этом используется косвенный режим адресации с постинкрементом или предекрементом. Дополнительно в программу вводится счетчик цикла равный количеству ячеек памяти над которыми выполняются одинаковые действия. В качестве счетчика циклов можно использовать любой свободный РОН. В конце программы необходимо сформировать адрес следующей ячейки памяти и уменьшить счетчик цикла на 1. Если счетчик цикла не равен 0, то вернуться к началу цикла, а если счетчик цикла равен 0, то программу можно закончить, т.к. содержимое всех необходимых ЯП уже обработано соответствующим образом.

Посчитать кол-во нечетных чисел 20910 >x, или 22310<x в массиве из 14 элементов. Ячейка памяти с адресом 41210 содержит первый элемент массива (адрес следующего элемента-больше на 1). Результат поместить в ячейку памяти с адресом 28010.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]