Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Команда 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!