Материал: Микропроцессорные устройства систем управления (2005)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

 

 

Таблица 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

Источник: https://studfile.net/preview/16521245/