Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по МП от Нефёдова.doc
Скачиваний:
184
Добавлен:
19.03.2015
Размер:
4.26 Mб
Скачать

Работа №1 микроконтроллер aTmega128: методы адресации, команды передачи данных и управления

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

Введение

При создании программы для микроконтроллера на языке Ассемблер разработчик оперирует программно доступными ресурсами микропроцессорной системы. У микроконтроллера ATmega128 эти ресурсы включают: программно доступные регистры микроконтроллера, внутреннюю память данных, внешнюю память данных. Перечисленные ресурсы изображены на рис. В2, В3.

Каждая команда языка Ассемблер сообщает процессору выполняемую операцию и методы доступа к операндам. Командная строка Ассемблера включает метку (символический адрес), мнемонику (символическое имя) команды, поле операндов, комментарий. Имя команды однозначно связано с выполняемой ею операцией.

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

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

На рис.1.1 – 1.12 приведены схемы методов адресации микроконтроллера ATmega128.

Регистровый файл

15 4 0

31

ОР d

d

0

Рис.1.1. Регистровая адресация (один регистр общего назначения)

Регистровый файл

15 9 5 4 0

31

ОР r d

d

r

0

Рис.1.2. Регистровая адресация (два регистра общего назначения)

Память I/O

15 5 0

3F ($5F)

ОР n P

0($20)

Рис.1.3. Регистровая адресация (регистры ввода-вывода)

ОЗУ данных

31 20 19 16

$FFFF

ОР Rr/Rd

Младшие 16 бит

$0000

Рис.1.4. Прямая адресация данных

ОЗУ данных

15 0

$FFFF

Регистр Y или Z

+

15 10 6 5 0

$0000

OP n o

Рис.1.5. Косвенная адресация данных со смещением

ОЗУ данных

Регистр Y или Z

15 0

$FFFF

$0000

Рис.1.6. Косвенная адресация данных

ОЗУ данных

15 0

$FFFF

Регистр X, Y или Z

+

-1

$0000

Рис.1.7. Косвенная адресация данных с преддекрементом

ОЗУ данных

15 0

$FFFF

Регистр X, Y или Z

+

1

$0000

Рис.1.8. Косвенная адресация данных с постинкрементом

Память программ

15 1 0

$FFFF

Регистр Z

$0000

Рис.1.9. Адресация константы в памяти программ в командах LPM и ELPM

Память программ

31 21 20 16 1 0

OP

$FFFF

Младшие 16 бит

15 0

$0000

Рис.1.10. Прямая адресация памяти программ в командах JMP и CALL

Память программ

$FFFF

Регистр Z

15 0

S0000

Рис.1.11. Косвенная адресация памяти программ в командах IJMP и ICALL

Память программ

15 0

$FFFF

PC

+

15 12 11 0

OP k

S0000

Рис.1.12. Относительная адресация памяти программ в командах RJMP и RCALL