Lpm R17, Z ; загрузка числа 137 в R17

;...

var: .db $50, 137 ; константы $50 и 137

ЗАДАНИЕ

Составить программу сложения двух целых 8-разрядных чисел:

1) с использованием прямой регистровой адресации РОН. Результат сложения в этом и последующих пунктах задания сохранить в РОН. Значения операндов взять из задания лабораторной работы № 1 (числа А и В);

2) с использованием непосредственной адресации оперативной памяти данных. Для этого зарезервировать в ОЗУ байты под слагаемые с помощью директив .byte. Занести слагаемые в зарезервированные ячейки ОЗУ командой STS с непосредственной адресацией. Сложить операнды, предварительно загрузив их в РОН командой LDS с непосредственной адресацией;

3) с использованием косвенной адресации оперативной памяти данных. Адреса слагаемых в ОЗУ загрузить в регистры X и Y с помощью команды LDI и функций low и high. Занести слагаемые в зарезервированные ячейки ОЗУ командой ST с косвенной адресацией. Сложить операнды, предварительно загрузив их в РОН командой LD с косвенной адресацией;

4) с использованием косвенной адресации оперативной памяти данных со смещением. Для этого зарезервировать в ОЗУ байты под слагаемые в одной директиве .byte. Адрес начала блока данных загрузить в регистр Z с помощью команды LDI и функций low и high. Занести слагаемые в зарезервированные ячейки ОЗУ командой STD с косвенной адресацией со смещением. Сложить операнды, предварительно загрузив их в РОН командой LDD с косвенной адресацией со смещением;

5) с использованием косвенной адресации оперативной памяти данных с предекрементом. Для этого зарезервировать в ОЗУ байты под слагаемые в одной директиве .byte. В регистр Z загрузить адрес ячейки ОЗУ, следующей за блоком зарезервированных байтов. Занести слагаемые в зарезервированные ячейки ОЗУ командой ST с косвенной адресацией с предекрементом. Сложить операнды, предварительно загрузив их в РОН командой ld c косвенной адресацией ячеек ОЗУ с предекрементом;

6) с использованием косвенной адресации оперативной памяти данных с постинкрементом. Для этого зарезервировать в ОЗУ байты под слагаемые в одной директиве .byte. В регистр Z загрузить адрес начала блока зарезервированных байтов. Занести слагаемые в зарезервированные ячейки ОЗУ командой ST с косвенной адресацией с постинкрементом. Сложить операнды, предварительно загрузив их в РОН командой LD с косвенной адресацией с постинкрементом;

7) с использованием адресации константы в памяти программ. Для этого задать слагаемые в памяти программ в одной директиве .db. Сложить операнды, предварительно загрузив их в РОН с помощью команды LPM. Для пересылки слагаемых между РОН использовать команду MOV;

8) с использованием адресации константы в памяти программ с постинкрементом. Для загрузки слагаемых в РОН использовать команду LPM с постинкрементом.

В диалоговом окне AVR Simulator Options в разделе Device Selection установить тактовую частоту моделирования работы микроконтроллера, равную 8,0 МГц (поле Frequency).

Выполнить трансляцию и отладку созданных программ. По данным, выводимым после трансляции на закладке Build окна Output, проанализировать использование памяти программ (Program memory usage) под код программы (Code) и константы (Constants), оценить объём неиспользованной (Unused) и общей занятой (Total) памяти. Занести эти сведения в отчёт (табл. 3).

При отладке программ использовать средства наблюдения за содержимым регистров и ячеек памяти. По полю Cycle Counter объекта Processor закладки I/O окна Workspace определить число тактов выполнения программы, по полю Stop Watch – время выполнения программы (до выполнения команды, организующей бесконечный цикл). Зафиксировать эти сведения в отчёте (табл. 3). По результатам выполнения программ сделать выводы.

Таблица 3

Вариант программы
Объём памяти программ, занятой под код программы, слов                
Объём памяти программ, занятой под константы, слов                
Объём неиспользованной памяти программ, слов                
Общий объём занятой памяти программ, слов                
Число тактов выполнения программы                
Время выполнения программы, мкс                

Примечание. Все программы рекомендуется включить в один проект. При этом программа, подлежащая трансляции, задаётся командой Set as entry file контекстного меню дерева иерархии проекта. Подлежащая трансляции программа помечается в дереве иерархии проекта символом Lpm R17, Z ; загрузка числа 137 в R17 - student2.ru (все прочие исходные файлы проекта имеют символ Lpm R17, Z ; загрузка числа 137 в R17 - student2.ru ).

СОДЕРЖАНИЕ ОТЧЁТА

Отчёт должен содержать: титульный лист с указанием номера и названия лабораторной работы, номера группы и фамилий выполнивших работу; цель работы; листинги трансляции программ и сведения, указанные в задании; схемы образования адреса для использованных способов адресации.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Адресация РОН и регистров ввода-вывода AVR-микроконтроллеров.

2.Способы адресации памяти данных AVR-микроконтроллеров.

3.Способы адресации памяти программ AVR-микроконтроллеров.

4.Особенности выполнения арифметических и логических операций в AVR-микро-контроллерах.

5.Назначение и использование регистров X, Y и Z.

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