|
|
Таблица 3 |
Команда |
Описание |
Флаги Примечание |
out P, lb- |
Пересылка данных из регистра |
Нет |
Rr в регистр ввода-вывода Р, |
||
|
P « - R r |
|
|
Пересылка данных из регистра |
Нет |
push Rr |
Rr в стек, |
|
|
STACK <~ Rr |
|
|
Пересылка данных в регистр Rd |
|
popRd |
из стека, |
Нет |
|
Rd — STACK |
|
Команды пересылки косвенной адресации с использованием регистров X, Y, Z
Id Rd, X
Id Rd, -X
Id Rd, X+
st X, Rr
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным ре гистром X,
Rd «- ОЗУ(Х)
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным ре гистром X, и предшествующим декрементом X,
Rd*~03y(X-l), X « - X - l
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным ре гистром X, и последующим ин крементом X,
Rd«-03y(X), X< - X+l
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром X,
ОЗУ(Х) <- Rr
Нет
Нет
Нет
J
Нет
80
Команда
st -X, Rr
st X+, Rr
Id Rd, Y
Id Rd, -Y
Id Rd, Y+
ldd Rd, Y+k
st Y,Rr
Описание
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром X, и предшествующим декрементом X,
03y(X-l)<-Rr, X —Х-1
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром X, и последующим инкрементом X,
03y(X)+-Rr, Х«-Х+1
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным ре гистром Y,
Rd <- 03Y(Y)
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным ре гистром Y, и предшествующим декрементом Y,
Rd<-03y(Y-l), Y « - Y - l
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным ре гистром Y, и последующим ин крементом Y,
Rd+-03Y(Y), Y<-Y+l
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным ре гистром Y со смещением к,
Rd <- ОЗУ(Y+k)
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным реги стром Y, 03Y(Y)«- Rr
Продолжение табл. 3
Флаги Примечание
Нет
Нет
Нет
Нет
Нет
Нет к=(0-63)
Нет
81
Команда
st -Y, Rr
st Y+, Rr
std Y+k, Rr
Id Rd, -Z
Id Rd, Z+
lddRd,Z-*k
1 st Z, Rr
st ~Z, Rr
Продолжение табл. 3
Описание
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Y, и предшествующим декрементом Y,
ОЗУ(У-1)«-Rr, Y * - Y - l
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Y, и последующим инкрементом Y,
03Y(Y) 4- Rr, Y< - Y+l
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Y со смещением к, ОЗУ(Y+k) «- Rr
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным ре гистром Z, и предшествую-щим декрементом Z
Rd«-03Y(Z-1), Z « - Z - l
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным ре гистром Z, и последующим ин крементом Z,
Rd<-03Y(Z), Z< - Z+l
Пересылка данных в регистр Rd из ОЗУ с адресом, указанным ре гислром Z со смещением к,
Rd <- 03Y(Z+k)
Пересылка данных из регистра Rr I в ОЗУ с адресом, указанным ре гистром Z, 03Y(Z) «- Rr Пересылка данных из регистра 1 Rr в ОЗУ с адресом, указанным регистром Z, и предшествующим декрементом Z,
03y(Z-l)*-Rr, Z<-Z-l I
Флаги
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Нет
Примечание
к=(0-63)
к-(0-63)
82
Команда
st Z+, Rr
std Z+k, Rr
1pm
Описание
Пересылка данных из регистра Rr в ОЗУ с адресом, указанным регистром Z, и последующим инкрементом Z,
03Y(Z)^-Rr, Z<-Z+l Пересылка данных из регистра Rr в ОЗУ с адресом, указанным ре-гистром Z со смещением к, ОЗУ(Z+k) «- Rr
Пересылка данных в регистр R0 из FLASH по адресу, указанному ре гистром Z,
R0«- PM(Z)
Окончание табл. 3
Флаги Примечание
Нет
Нет |
к=(0 - 63) |
Нет
Команды пересылки данных также реализуют стандартный набор опе раций:
•пересылка байта данных между регистрами общего назначения (mov);
•пересылка байта данных между регистром общего назначения и регист ром ввода-вывода (in, out);
•пересылка байта данных (с прямой или косвенной адресацией) между
регистром общего назначения и ОЗУ (Id, st) или стеком (pop, push). Команда загрузки константы в регистр допустима только для регистров
R16-R31. Команды пересылки данных флаги не формируют, формиро вание флагов по содержимому байтов данных при необходимости можно выполнить командами сравнения.
В мнемонических обозначениях команд можно использовать физиче ские адреса регистров или, что обычно более удобно и наглядно, стандарт ные символьные имена, описанные в файле "8535def.inc". Например, ко манды out $08, R16 и out ACSR, R16 имеют один и тот же смысл: пере сылка содержимого регистра общего назначения R16 в регистр управления АЦП.
Необходимо помнить, что управление всеми аппаратными средствами микроконтроллера производится пересылкой байтов управления, сформи рованных программно в регистрах общего назначения, в соответствующие регистры файла регистров ввода-вывода командой out. Анализ текущего состояния аппаратных средств можно производить чтением содержимого регистров ввода-вывода командой in. Как указывалось ранее, вектора пре рываний для координации работы аппаратных средств должны обеспечи вать программное управление параметрами и режимами их работы. Необ-
83
ходимый для выполнения этих функций обмен данными производится ко мандами in, out.
Пересылка данных между регистрами общего назначения и EEPROM данных производится через соответствующие регистры ввода-вывода спе циальной процедурой. Команда Ipm позволяет загружать в регистр R0 кон станты, которые хранятся в памяти программ (FLASH). Адрес FLASH дол жен указываться в регистре Z.
Каждая ячейка FLASH хранит два байта, поэтому младший бит регист ра Z (бит 0) определяет байт для пересылки в регистр R0 (0 - младший байт, 1 - старший байт). Адрес FLASH находится в регистре Z, начиная с бита 1. То есть бит 1 соответствует младшему биту адреса FLASH, что не обходимо учитывать при записи адреса в регистр Z. Адрес FLASH для ре гистра Z можно указать выражением Z=2*^pec FLASH), а бит 0 регистра Z формировать дополнительно в зависимости от того, какой байт двухбай товой ячейки FLASH пересылается в регистр R0.
4.1.3. Команды управления
|
|
|
Таблица 4 |
|
Команда |
Описание |
Флаги |
Примечание |
|
rjmpk |
Безусловный переход (изме |
Нет |
-2048 < к < 2048 |
|
нение PC на k), PC «~ PC+l+k |
||||
ijmp |
Безусловный переход с ад |
Нет |
|
|
ресацией по Z, PC <— Z |
|
|||
|
|
|
||
|
Вызов подпрограммы (изме |
|
|
|
rcall k |
нение PC на к), |
Нет |
-2048<к<2048 |
|
STACK*- PC, |
||||
|
|
|
||
|
РС<- РС+1+к |
|
|
|
icall |
Вызов подпрограммы с ад |
Нет |
|
|
ресацией по Z, |
|
|||
|
STACK*-PC, PC<-Z |
|
|
|
ret |
Возврат из подпрограммы, |
Нет |
|
|
PC <- STACK |
|
|||
|
|
|
||
reti |
Возврат из прерывания, |
I |
|
|
PC — STACK, I = 1 |
|
|||
|
|
|
84