Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Команды пересылки данных



Команда MOV

Синтаксис: MOV Rd, Rr

0 < d < 31, 0 < r < 31.

Команда копирует содержимое регистра Rr в регистр Rd. Исходный регистр Rr остается неизменным, в регистр назначения Rd загружается копия содержимого регистра Rr.

Пример:

MOV r1, r2; скопировать содержимое r2 в r1

Команда LDI

Синтаксис: LDI Rd, K

16 < d < 31, 0 < K < 255

Команда LDI загружает 8-разрядную константу в регистр Rd.

Пример:

LDI r30, $12; загрузить константу $12 в r30

Команда LD

Синтаксис: LD Rd, X

LD Rd, X+

LDD Rd, -X

0 < d < 31

Загружает косвенно один байт из СОЗУ в регистр. Положение байта в СОЗУ указывается 16-разрядным регистром-указателем X в регистровом файле. Обращение к памяти ограничено текущей страницей объемом 64 Кбайта. Регистр-указатель X может остаться неизменным после выполнения команды, но может быть инкрементирован или декрементирован. Использование регистра-указателя X обеспечивает удобную возможность обращения к матрицам, таблицам, указателю стека.

Пример:

CLR r27;Очистить старший байт X

LDI r26, $20;Установить $20 в младший байт X

LD r0, X+;Загрузить в r0 содержимое SRAM по адресу ;$20 (X постинкрементируется)

LD r1, X;Загрузить в r1 содержимое SRAM по адресу; $21

LDI r26, $23;Установить $23 в младший байт X

LD r2, X;Загрузить в r2 содержимое SRAM по адресу; $23

LD r3, -X;Загрузить в r3 содержимое SRAM по адресу; $22 (X преддекрементируется)

Команда LDS

Синтаксис: LDS Rd, k

0 < d < 31, 0 < k < 65535

Выполняется загрузка одного байта из СОЗУ в регистр. Можно использовать 16-разрядный адрес. Обращение к памяти ограничено текущей страницей СОЗУ объемом 64 Кбайта. Команда LDS использует для обращения к памяти выше 64 Кбайт регистр RAMPZ.

Пример:

LDS r2, $FF00; Загрузить r2 содержимым

; SRAM по адресу $FF00

Команда STS

Синтаксис: STS k, Rr

0 < r < 31, 0 < k < 65535

Команда осуществляет запись одного байта из регистра в СОЗУ. Можно использовать 16- разрядный адрес. Обращение к памяти ограничено текущей страницей СОЗУ объемом 64 Кбайта. Команда STS использует для обращения к памяти выше 64 Кбайт регистр RAMPZ.

Пример:

LDS r2, $1203; Загрузить в r2 содержимое

; SRAM по адресу $1203

ADD r 2, r 1; Сложить r 1 с r 2

STS $1203, r 2; Записать обратно

Команда ST

Синтаксис: ST X, Rr

ST X+, Rr

ST -X, Rr

0 < d < 31

Команда осуществляет косвенную запись одного байт из регистра в СОЗУ. Положение байта в СОЗУ указывается 16-разрядным регистром-указателем X в регистровом файле. Обращение к памяти ограничено текущей страницей объемом 64 Кбайта. Для обращения к другой странице СОЗУ необходимо изменить регистр RAMPX в I/O области. Регистр-указатель X может остаться неизменным после выполнения команды, но может быть инкрементирован или декрементирован. Эта особенность удобна при использовании регистра-указателя X в качестве указателя стека.

Пример:

CLR r27; Очистить старший байт X

LDI r26, $34; Установить $34 в младший байт X

ST X+, r0; Сохранить в r0 содержимое SRAM

;по адресу $34 (X;постинкрементируется)

ST X, r1; Сохранить в r1 содержимое

; SRAM по адресу $35

LDI r26, $34; Установить $34 в младший байт X

ST r2, X; Сохранить в r2 содержимое SRAM

;по адресу $34

SR r3, -X; Сохранить в r3 содержимое SRAM

;по адресу $33 (X;преддекрементируется)

Команда PUSH

Синтаксис: PUSH Rr

0 < r <31

Команда заносит содержимое регистра Rd в стек.

Команда POP

Синтаксис: POP Rr

0 < r <31

Команда загружает из стека байт в регистр Rd.

Пример:

push r16; Сохранить r16 в стеке

push r17; Сохранить r17 в стеке

pop r17; Восстановить r1 7

pop r16; Восстановить r16





Дата публикования: 2014-11-18; Прочитано: 713 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...