326-2014 ДГЦУиМП
.pdfST Z, Rr
Косвенная запись в памятьданных
О п ер а ц и я |
т - я г |
|
|
|
|
|
|
|
|
К од о п ер ац и и |
1000 001 г т т 0000 |
|
|
|
|
|
1 с л о в о (2 б ай та) |
||
О п еранд ы |
0 £ г £ 3 1 |
|
|
|
|
|
|
|
|
|
С о х р ан я ет со д ер ж и м о е реги ст р а о б щ его н азн ач ен и я Яг в п ам я ти д ан н ы х . А дрес |
||||||||
О п и сан и е |
я ч е й к и п ам я т и , к ко то р о й п р о и зв о д и тся о б р ащ е н и е, со д ер ж и тся в и н д ек сн о м |
||||||||
|
р еги стр е 2 |
|
|
|
|
|
|
|
|
Р еги стр S R E G |
I |
Т |
|
Н |
Б |
V |
N |
Ъ |
С |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
- |
|
Ч и сл о так то в |
|
|
|
|
2 |
|
|
|
|
|
с1г |
г31 |
; |
Очистить |
старший |
байт |
индексного |
регистра |
|
П р и м ер |
1(31 |
г30,$60 |
; |
Загрузить |
младший байт |
адреса |
|
|
|
|
s t |
г , г ! |
; |
Переслать |
г ! по |
адресу |
$0060 |
|
|
STZ+, Rr
Косвенная запись в память данных с постинкрементом
Операция
Кодоперации
Операнды
Описание
РегистрSREG
Числотактов
Пример
IZ]= Rr,Z= Z+ 1
1001001г птт1001 |
1слово(2байта) |
0£г$31, дляг=30 или31 результатоперациииеопределен
СохраняетсодержимоерегистраобщегоназначенияRrвпамятиданных.Адрес ячейкипамяти, ккоторойпроизводитсяобращение, содержитсявиндексном регистреZ. ПослепересылкибайтасодержимоерегистраZувеличиваетсяна 1
I |
T |
H |
|
S |
V |
N |
Z |
С |
- |
- |
|
- |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
clr |
г31 |
|
; Очистить старший байт индексного регистра |
|||||
ldi |
Г30,$б0 |
|
; |
Загрузить младший байт адреса |
|
|||
st |
Z+,rl |
|
; |
Переслать rl |
по адресу $0060 |
|
|
|
in |
r2,r30 |
|
; |
В регистре г2 - |
$61 |
|
|
29
LDRd,Z+
Косвенное чтение памяти данных с постинкрементом
Операция
Кодоперации
Операнды
Описание
Rd= [Z],Z= Z+l
1001000ddddd0001 |
1слово(2 байта) |
0< dS31,дняd= 30 или31 результатоперациинеопределен
Загружаетодинбайтизадресногопространствапамятиданныхврегистробщего назначенияRd Адресячейкипамяти, ккоторойпроизводитсяобращение, со держитсявиндексном регистреZ Послепересылкибайтасодержимоерегистра Z увеличиваетсяна 1
Регистр51ШЗ |
I |
T |
|
H |
S |
V |
N |
Z |
С |
|
|
|
|
|
|
|
|
|
|
Числотактов |
|
|
|
|
2 |
|
|
|
|
|
c l r |
г31 |
; Очистить старший байт индексного регистра |
||||||
Пример |
l d i |
гЗО,$60 |
; |
Загрузить младший байт адреса |
|
|
|||
ld |
T l,Z* |
; |
П = [$0060] |
- |
$61 |
|
|
||
|
in |
г2,г30 |
; |
В регистре г2 |
|
|
STY.Rr
Косвенная запись в память данных |
|
|
|
|
|||||
Операция |
M = Rr |
|
|
|
|
|
|
|
|
Кодоперации |
1000 OOlrmr 1000 |
|
|
|
|
1 слово(2байта) |
|||
Операнды |
OSri 31 |
|
|
|
|
|
|
|
|
Описание |
СохраняетсодержимоерегистраобщегоназначенияRrв памятиданных. Адрес |
||||||||
ячейки памяти, ккоторойпроизводитсяобращение, содержится в индексном |
|||||||||
|
регистреY |
|
|
|
|
|
|
|
|
РегистрЗЯЕО |
I |
T |
|
H |
S |
V |
N |
г |
С |
|
|
|
|
|
|
|
|
|
|
Числотактов |
|
|
|
|
2 |
|
|
|
|
Пример |
clr |
г29 |
; Очистить старший байт индексного регистра |
||||||
ldi |
г28,$60 |
; |
Загрузить младший байт адреса |
|
|
||||
|
st |
Y,rl |
; |
Переслать rl |
по адресу $0060 |
|
|
30
STY+.Rr
Косвенная запись в памятьданных с постинкрементом
Операция
Кодоперации
Операнды
Описание
IY]= Rr,Y=Y+l
1001 OOlrrrrr 1101 |
1 слово(2байта) |
0<г<31,дляг = 28или29результатоперациинеопределен
СохраняетсодержимоерегистраобщегоназначенияRrвпамятиданных Адрес ячейкипамяти, ккоторойпроизводитсяобращение, содержитсявиндексном регистреY ПослепересылкибайтасодержимоерегистраVувеличиваетсяна 1
РегистрБКЕС |
1 |
T |
H |
|
S |
V |
N |
Z |
С |
- |
- |
- |
- |
- |
- |
- |
|
- |
|
|
|
||||||||
Числотактов |
|
|
|
|
2 |
|
|
|
|
|
clr г29 |
, Очистить старший байт индексного регистра |
|||||||
Пример |
ldi г2В,$60 |
, Загрузить младший байт адреса |
|
|
|||||
|
st |
Y+,rl |
, Переслать rl по адресу $0060 |
|
|
||||
|
ш |
г2,г28 |
, В регистре г2 - |
$61 |
|
|
|
STX, Пг
Косвенная запись в памятьданных
Оп е р а ц и я
Ко л оп ер ац и и
Оп еранд ы
Оп и сан и е
Р еги стр в Д Е О
Чи сл о так то в
Пр и м ер
[X] = R r
1001 OOlrrrrr 1100 |
1 с л о в о (2 б ай та) |
0 £ г <: 31
С о х р ан яет со д ер ж и м о е реги стр а о б щ его н азн а ч е н и я R r в п ам яти д ан н ы х . А дрес яч ей к и п ам я т и , к к о то р о й п р о и зв о д и тся о б р ащ е н и е, со д ер ж и тся в л н д е к с н о м р еги стре X
1 |
т |
|
н |
Vs |
N |
г |
с |
|
|
|
- ' |
- |
- |
- |
■ - |
|
|
|
|
2 |
|
|
|
c l r |
г27 |
; |
Очистить |
старвий байт |
индексного регистра |
||
l d i |
г2 6 ,$60 |
; |
Загрузить |
младший байт |
адреса |
|
|
s t |
X ,r l |
; |
Загрузить |
r l по |
адресу |
$0060 |
|
31
STX+, Rr
Косвенная запись впамятьданныхс постинкрементом
О п ераци я |
|X ] = R r , X = X + l |
|
|
|
|
|
|
|
К од операции |
1001 O O lrm rH O l |
|
|
|
|
1 слово (2 байта) |
||
О перанды |
0 * r s 3 I t д л я г а 26 или 27 результат оп ерац ии не определен |
|
||||||
|
С охраняет содерж им ое регистра общ его н азн ач ени я Я г в памяти данны х. Адрес |
|||||||
О писание |
яч ей к и п ам яти, к которой производится обращ ени е, содерж ится в индексном |
|||||||
|
регистре X. П осле пересы лки байта содерж им ое регистра X увеличивается н а 1 |
|||||||
|
I |
T |
H |
S |
V |
N |
Z |
С |
Р егистр вЯ Е С |
|
|
|
|
|
|
|
|
|
- |
- |
- |
- |
- |
- |
- |
|
Ч исло тактов |
|
|
|
|
2 |
|
|
|
|
c l r г 2 7 |
; О ч и с т и т ь ст а р ш и й б а й т и н д е к с н о г о р е г и с т р а |
||||||
П рим ер |
l d i |
г 2 б , $ б 0 |
; |
З а г р у з и т ь |
м ладш и й |
б а й т |
а д р е с а |
|
s t |
X + , r l |
; З а г р у з и т ь r l п о а д р е с у $ 0 0 6 0 |
|
|||||
|
|
|||||||
|
i n |
r l , r 2 6 |
; В р е г и с т р е r l - $ 61 |
|
|
LD Rd, X
Косвенное чтение памяти данных
Операция
Кодоперации
Операнды
Описание
Регистр8ЯЕС
Числотактов
Пример
Rd= JX]
1001 OOOddddd 1100 |
1слова(2байта) |
0 <d <31
Загружаетодинбайтизадресногопространствапамятиданныхврегистробщего назначения Rd. Адресячейкипамяти, ккоторойпроизводитсяобращение,со держитсяв индексном регистреX
1 |
T |
|
H |
S |
V |
N |
г |
С |
|
|
|
|
|
- |
- |
- |
- |
|
|
|
|
2 |
|
|
|
|
clr г27 |
; |
Очистить старший байт индексного регистра |
||||||
ldi г26,$60 |
; |
Загрузить младший байт адреса |
|
|
||||
ld |
,rl,X |
; |
rl = |
[$0060] |
|
|
|
|
32
LD Rd, X+
Косвенное чтение памятиданныхс постинкрементом
О п ер а ц и я
Ко д оп ер ац и и
Оп еранды
Оп и сан и е
R d = | Х | , Х - Х + 1 |
|
1001 OOOddddd 1101 |
1 сл о в о (2 Смита) |
0 < d £ 3 1 , j u » d = 26 и ли 27 результат о п ер ац и и н е оп ределен
Загруж ает о д и н б а й т и э ад р есн о го п р о стр ан ств а п ам яти д ан н ы х в р еги стр об щ его н азн ач ен и я R d. А дрес я ч е й к и п ам я ти , к ко то р о й п р о и зво д и тся об р ащ ен и е, с о д ер ж и тся в и н д ек сн о м р еги стр е X . П осле п ер есы л ки б а й т а со д ер ж им о е р еги стр а X увеличи вается на 1
|
1 |
T |
H |
S |
V |
N |
|
Z |
С |
Р еги стр SR E G |
|
|
|
|
|
|
|
|
|
|
- |
- |
- |
- |
|
- |
' |
- |
|
Ч и сл о тактов |
|
|
|
|
2 |
|
|
|
|
|
c l r |
г 2 7 |
; О ч и с т и т ь с т а р ш и й б а й т и н д е к с н о г о р е г и с т р е |
||||||
|
l d i |
r 2 6 , $ 6 0 |
; |
З а г р у з и т ь |
м л адш и й |
б а й т |
а д р е с а |
|
|
П р и м ер |
l d |
r l . X v |
; r l = [$0060] |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
i n |
r l , r 2 6 |
; В р е г и с т р е r l - $ 6 1 |
|
|
|
LDRd.Y
Косвенное чтение памяти данных
О п ераци я
К о д оп ер ац ии
Оп еранд ы
Оп исан ие
Rd = [Y] |
|
1000 000d dddd 1000 |
1 с л о в о (2 бай та) |
0 < d < 31 |
|
Загруж ает о д и н б а й т и з ад р есн о го простран ства п ам яти д ан н ы х в регистр о б щ е го н азн ач ен и я R d . А дрес я ч е й к и п ам яти , к которой п р о и зво д и тся об р ащ ен и е, со д ер ж и тся в. и н д ек сн о м р еги стр е Y
|
I |
T |
H |
|
S |
V |
N |
Z |
С |
Р еги стр S R E G |
|
|
|
|
|
|
|
|
|
|
- |
- |
- |
- |
- |
|
- |
- |
- |
Ч и сл о так то в |
|
|
|
|
2 |
|
|
|
|
|
c l r r 2 9 |
: О ч и с т и т ь с т а р ш и й б а й т и н д е к с н о г о р е г и с т р а ' |
|||||||
П р и м ер |
l d i г 2 8 , $ 6 0 |
; З а г р у з и т ь м л ад ш и й б а й т а д р е с а |
|
|
|||||
|
l d |
r l , ï |
; r l |
= [ $ 0 0 6 0 ] |
|
|
|
|
33
LDRd,Y+
Косвенное чтение памяти данных с постинкрементом |
|
|
||||||||
Операция |
Rd “ [Y],Y=Y+1 |
|
|
|
|
|
|
|
||
Кодоперации |
1001 OOOddddd 1001 |
|
|
|
|
|
1слово (2байта) |
|||
Операнды |
0sd<31, для(1 =28или29результатоперации неопределен |
|
|
|||||||
|
Загружаетшинбайтизадресногопространства памятиданных врегистробщего |
|||||||||
Описание |
назначенияRd.Адрес ячейки памяти, ккоторой производится обращение,со |
|||||||||
держитсяв индексном регистреY.После пересылки байта.содержимоерегистра |
||||||||||
|
||||||||||
|
Уувеличивается на1 |
|
|
|
|
|
|
|||
Регистр 51ШЗ |
1 |
т |
|
н |
s |
|
Nv |
г |
с |
|
_ |
_ |
_ |
_ |
_ |
_ |
_ |
|
_ |
||
|
|
|||||||||
Числотактов |
|
|
|
|
2 |
|
|
|
|
|
|
clr г29 |
; Очистить старший байт индексного регистра |
||||||||
Пример |
ldi г28,$60 |
; Загрузить младший байт адреса |
|
|||||||
|
ld |
rl,Y+ |
; r l |
= [$0060] |
$61 |
|
|
|
||
|
in |
r2,r28 |
; В регистре г2 - |
|
|
|
34
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1.Ревич, Ю. В. Практическое программирование микроконтроллеров ATmel AVR на языке ассемблера [Текст] / Ю.В. Ревич. - 2-е изд. - СПб.: БХВ - Петербург, 2011. - 362 с.
2.Баранов, В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы [Текст] / В.Н. Баранов. - М.: Додэка - XXI, 2004. - 288 с.
3.Евстафиев, А. В. Микроконтроллеры AVR семейства Mega. Руководство пользователя [Текст] / А.В. Евстафьев. -
М.: Додэка - XX1, 2007. - 592 с.
СОДЕРЖАНИЕ |
|
Лабораторная работа № 1. Изучение программного |
|
пакета AVR STUDIO |
1 |
Лабораторная работа № 2. Изучение команд работы с |
|
регистрами микроконтроллера и памятью |
11 |
Приложение |
23 |
Библиографический список |
35 |
35
ПРОГРАММИРОВАНИЕ АУК МИКРОКОНТРОЛЛЕРОВ ПРИ ВЫПОЛНЕНИИ ОПЕРАЦИЙ С РЕГИСТРАМИ
И ПАМЯТЬЮ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ по выполнению лабораторных работ по курсу «Цифровые
устройства и микропроцессоры» для студентов направления 210400.62 «Радиотехника» (профиль «Радиотехнические средства передачи, приема и обработки сигналов»)
испециальности 210601 «Радиоэлектронные системы
икомплексы» очной формы обучения
Составитель Алперин Евгений Данилович
В авторской редакции
Подписано в печать 22.12.2014.
Формат 60x84/16. Бумага для множительных аппаратов. Уел. печ. л. 2,4. Уч.-изд. л. 2,2. Тираж 34 экз.
«С» 131. Зак. №259.
ФГБОУ ВПО «Воронежский государственный технический университет»
394026 Воронеж, Московский просп., 14