Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экз ответы ОМТ.doc
Скачиваний:
10
Добавлен:
26.09.2019
Размер:
542.72 Кб
Скачать
  1. Сигналы управления, используемые при обращении микропроцессора к памяти и к устройству ввода, вывода (увв)

Программы на языке Ассемблер, также как и на других языках программирования, используют команды вызова подпрограмм и возврата из подпрограмм, это команды: Call и Ret. Команда Call, также как и любая другая команда ветвления, в качестве операнда использует адрес или метку точки перехода.

Команда Call вызывает выполнение последовательно двух действий:

1. Содержимое программного счетчика, равное адресу ячейки памяти ПЗУ с командой, которая будет выполняться на последующем шаге, запоминается в стековой памяти, чтобы использовать ее при возврате из подпрограммы.

2. В регистр «программный счетчик» загружается операнд команды Call, равный численному адресу первой команды вызываемой подпрограммы.

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

Если в подпрограмме происходит обращение к другой подпрограмме (вложенные подпрограммы), то сохранение точек возврата происходит аналогичным образом.

  1. Типы памяти микропроцессорных систем

Под стековой памятью мы понимаем область ОЗУ или Data со старшими адресами. Если рассматривать ОЗУ как набор ячеек, где ячейки с младшими адресами расположены наверху, а со старшими – внизу, то при включении данных в стек (стопка бумаг) эти данные как бы кладутся сверху ранее занятых ячеек стека, а при извлечении данных из стека, они берутся из верхних ячеек стековой памяти. Контролирует стековую память специальный регистр SP (Stack-Pointer), который содержит адрес ячейки памяти соответствующей верхушке стека. Этот регистр автоматически изменяет свое содержимое на два (увеличивает или уменьшает) при выполнении команд обращения к стековой памяти (Push, Pop, Call, Ret).

  1. Адресация пространства памяти avr-контроллера

В AVR-микроконтроллере существует три области памяти, каждая со своей системой адресации, начинающаяся с нулевого адреса до конечного:

1. ПЗУ – постоянное запоминающее устройство, предназначенное для хранения машинных кодов управляющих программ. Сюда загружаются объектные hex-файлы, создаваемые пакетом AVR Studio. Ассемблерные команды не могут обращаться к ячейкам памяти ПЗУ.

2. EEPROM – энергонезависимое ОЗУ. Ассемблерные команды позволяют обращаться к ячейкам памяти EEPROM.

3. ОЗУ. Ячейки памяти ОЗУ используются во всех ассемблерных командах. Эта область состоит из 3-х подобластей, которые имеют последовательную сквозную адресацию.

3.1. Первая подобласть состоит из 32 регистров, которые имеют двоякую адресацию: по имени регистра (R0-R31) или по ее числовому адресу ( или от до ). Они используются для оперативного хранения результатов промежуточных вычислений.

3.2. Следующей подобластью ОЗУ являются регистры ввода/вывода, предназначенные для обмена информацией с периферийными устройствами (таймеры, компараторы, АЦП, порты дискретного ввода/вывода информации). Регистры ввода/вывода также как и регистры имеют двойную адресацию: по имени регистра ввода/вывода и по его числовому адресу. Числовой адрес регистра ввода/вывода также имеет двойное представление. Если регистр ввода/вывода используется в командах in или out, то адреса регистров ввода/вывода находятся в диапазоне с по или с по . Эти команды принадлежат к группе команд передачи данных. Если к регистрам ввода/вывода обращаются другие команды языка ассемблера, то используется адресация в диапазоне от до или от до .

Содержимое регистров и регистров ввода/вывода, определенное их именами, мы можем наблюдать в окне «Workspace». В этом окне приведена также двойная числовая адресация регистров ввода/вывода. Содержимое регистров и регистров ввода/вывода, определенное их числовыми адресами, мы можем наблюдать в окнах Memory, Register, I/O.

3.3. Область «Data». В этой области расположены ячейки памяти ОЗУ, которые используются для оперативного хранения результатов промежуточных операций. Эти ячейки имеют лишь числовую адресацию. Адрес младшей ячейки этой области или , размер этой области определяется типом контроллера.