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

11 Способы адресации и система команд avr

  1. Регистровый СА для одиночного регистра

ОР – код операции, d – адрес

  1. Регистровый СА для 2-х регистров – источника и приемника

INC Rd – инкреметировать [Rd]+1Rd

DEC Rd – декрементировать [Rd]-1Rd

ADD Rr, Rd – сложение [Rr]+[Rd] Rd

MOV Rr, Rd – перемещение [Rd] Rr

Величина n определяет адрес регистра источника или регистра назначения

  1. Непосредственная адресация данных в пределах памяти

16– 19 – регистр источника или регистр приемника

SBI P, B – загрузить бит из регистра I/O

1I/O (P, B)

CBI P, B 0 I/O (P, B)

SUBI Rd, K – вычесть непоср. [Rd]–[B2] Rd

LDI Rd, K – загрузить [B2] Rd

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

6 Косвенная адресация данных

LDD Rd, Y+q –загрузить косвенно со смещ.

[M([Y]+q)] Rd

LD Rd, Y – загрузить косвенно [M([Y])] Rd

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

Перед выполнением операции регистры X, Y, Z декрементируются (уменьшается на 1). Содержимое этих регистров определяет адрес.

8 Косвенная адресация с постинкрементом

Адресом операции является содержимое X, Y, Z, предшествующее инкрементированию (увеличению на 1).

LD Rd, -Y [Y]-1Y [Y] Rd

LD Rd, Y+ [Y] Rd [Y]+1Y

9 Адресация с использованием команд LPM, ELPM

Младший разряд Z0 дает возможность обращения к старшему и младшему адресным пространствам. Полный адрес указан в адресе ячейки Z0

Z0 = 0 – старший байт

Z0 = 1 – младший байт

Эта команда использует весь регистр. Адрес указывается в пределах $0000 - $7FFF.

10 Непосредственная адресация памяти с использованием команд JMP, CALL

Младшие 16 бит задают адрес

ELPM – расширенная загрузка из памяти программ в регистр R0

[M([Z]+RAMPZ)] R0

LPM – загрузка в R0 по содержимому рег.Z

[Z] R0

JMP K - переход

[B2] PC

CALL K – вызов подпрограммы

[K] PC

11 Косвенная адресация памяти программ с использованием LJMP и ICALL

Содержимое регистра Z загружается в программный счетчик

12 Относительная адресация памяти программ типа PJMP, RCALL

Выполнение программы продолжается с адреса PC + k + 1. Значение относительного адреса может быть от -2048 до 2047.

LIMP – перейти косвенно, используя рег. Z

[Z] PC

ICALL – вызвать подпрограмму относительно регистра Z

[Z] PC

RJMP K – перейти относительно

[PC]+[B2]+1PC

RCALL K – вызвать подпрограмму косвенно

[PC]+[B2]+1PC

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