Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТЧЕТ МИТ.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
674 Кб
Скачать
☆

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

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

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

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

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

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

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

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

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

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

Записать лог. 1 в четные биты элементов массива, содержащие нечетные данные 15910> x ≥ 7510.. Ячейка памяти 51510 содержит 1 элемент массива. В массиве 14 элементов (адрес следующего элемента массива больше на 1).