рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Операция

Операция - раздел Компьютеры, Система команд 8-разрядных RISC микроконтроллеров семейства AVR   Синтаксис Операнды: ...

  Синтаксис Операнды: Счетчик программ:
(i) SLEEP None PC <-- PC + 1

16-разрядный код операции:

100X

Булевы выражения регистра статуса (SREG)

I T H S V N Z C  
- - - - - - - -  

Пример:

mov r0, r11 ; Копировать r11 в r0

sleep ; Перевести MCU в режим sleep

Слов: 1 (2 байта)

Циклов: 1

 

Команда ST - записать косвенно из регистра в СОЗУ с использованием индекса X

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

Использование X-указателя:

  Операция:   Комментарий:
(i) (X) <-- Rr   X: Неизменен
(ii) (X) <-- Rr X <-- X + 1 X: Инкрементирован впоследствии
(iii) X <-- X - 1 ( X) <-- Rr X: Предварительно декрементирован
  Синтаксис Операнды: Счетчик программ:
(i) ST X,Rr 0 < d < 31 PC <-- PC + 1
(ii) ST X+,Rr 0 < d < 31 PC <-- PC + 1
(iii) ST -X,Rr 0 < d < 31 PC <-- PC + 1

16-разрядный код операции:

(i) 001r rrrr
(ii) 001r rrrr
(iii) 001r rrrr

Булевы выражения регистра статуса (SREG)

I T H S V N Z C  
- - - - - - - -  

Пример:

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

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

st X+,r0 ; Сохранить в r0 содержимое SRAM по адресу $20 (X постинкрементируется)

st X, r1 ; Сохранить в r1 содержимое SRAM по адресу $21

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

st r2, X ; Сохранить в r2 содержимое SRAM по адресу $23

st r3, -X ; Сохранить в r3 содержимое SRAM по адресу $22 (X преддекрементируется)

Слов: 1 (2 байта)

Циклов: 2

 

Команда ST (STD) - записать косвенно из регистра в СОЗУ с использованием индекса Y

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

Использование Y-указателя:

  Операция:   Комментарий:
(i) (Y) <-- Rr   Y: Неизменен
(ii) (Y) <-- Rr Y <-- Y + 1 Y: Инкрементирован впоследствии
(iii) Y <-- Y - 1 (Y) <-- Rr Y: Предварительно декрементирован
(iv) ( Y + q) <-- Rr   Y: Неизменен, q: смещение
  Синтаксис Операнды: Счетчик программ:
(i) ST Y,Rr 0 < d < 31 PC <-- PC + 1
(ii) ST Y+,Rr 0 < d < 31 PC <-- PC + 1
(iii) ST -Y,Rr 0 < d < 31 PC <-- PC + 1
(iv) STD Y+q,Rr 0 < d < 31, 0 < q < 63 PC <-- PC + 1

16-разрядный код операции:

(i) 001r rrrr
(ii) 001r rrrr
(iii) 001r rrrr
(iiii) 10q0 qq1r rrrr 1qqq

Булевы выражения регистра статуса (SREG)

I T H S V N Z C  
- - - - - - - -  

Пример:

clr r29 ;Очистить старший байт Y

ldi r28, $20 ;Установить $20 в младший байт Y

st Y+, r0 ;Сохранить в r0 содерж. SRAM по адресу $20 (Y постинкрементируется)

st Y, r1 ;Сохранить в r1 содержимое SRAM по адресу $21

ldi r28, $23 ;Установить $23 в младший байт Y

st Y, r2 ;Сохранить в r2 содержимое SRAM по адресу $23

st -Y, r3 ;Сохранить в r3 содерж. SRAM по адресу $22 (Y преддекрементируется)

std Y+2, r4 ;Сохранить в r4 содержимое SRAM по адресу $24

Слов: 1 (2 байта)

Циклов: 2

 

Команда ST (STD) - записать косвенно из регистра в СОЗУ с использованием индекса Z

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

Использование Z-указателя:

  Операция:   Комментарий:
(i) (Z) <-- Rr   Z: Неизменен
(ii) (Z) <-- Rr Z <-- Y + 1 Z: Инкрементирован впоследствии
(iii) Z <-- Z - 1 (Z) <-- Rr Z: Предварительно декрементирован
(iv) ( Z + q) <-- Rr   Z: Неизменен, q: смещение
  Синтаксис Операнды: Счетчик программ:
(i) ST Z,Rr 0 < d < 31 PC <-- PC + 1
(ii) ST Z+,Rr 0 < d < 31 PC <-- PC + 1
(iii) ST -Z,Rr 0 < d < 31 PC <-- PC + 1
(iv) STD Z+q,Rr 0 < d < 31, 0 < q < 63 PC <-- PC + 1

16-разрядный код операции:

(i) 001r Rrrr
(ii) 001r Rrrr
(iii) 001r rrrr
(iv) 10q0 qq1r rrrr 0qqq

Булевы выражения регистра статуса (SREG)

I T H S V N Z C  
- - - - - - - -  

Пример:

clr r31 ; Очистить старший байт Z

ldi r30, $20 ; Установить $20 в младший байт Z

st Z+,r0 ;Сохранить в r0 содерж. SRAM по адр. $20 (Z постинкрементируется)

st Z, r1 ; Сохранить в r1 содержимое SRAM по адресу $21

ldi r30, $23 ; Установить $23 в младший байт Z

st Z, r2 ; Сохранить в r2 содержимое SRAM по адресу $23

st -Z, r3 ; Сохранить в r3 содерж.SRAM по адр. $22 (Z преддекрементируется)

std Z+2, r4 ; Сохранить в r4 содержимое SRAM по адресу $24

Слов: 1 (2 байта)

Циклов: 2

 

Команда STS - загрузить непосредственно в СОЗУ

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

Операция:

(i) (k) <-- Rr
  Синтаксис Операнды: Счетчик программ:
(i) STS k,Rr 0 < r < 31, 0 < k < 65535 PC <-- PC + 2
           

32-разрядный код операции:

001d dddd
kkkk kkkk kkkk kkkk

Булевы выражения регистра статуса (SREG)

I T H S V N Z C  
- - - - - - - -  

Пример:

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

add r2, r1 ; Сложить r1 с r2

sts $FF00, r2 ; Записать обратно

Слов: 2 (4 байта)

Циклов: 3

 

Команда SUB - вычесть без переноса

Описание:Вычитание содержимого регистра-источника Rr из содержимого регистра Rd, размещение результата в регистре назначения Rd.

Операция:

(i) Rd <-- Rd - Rr
  Синтаксис Операнды: Счетчик программ:
(i) SUB Rd,Rr 16 < d < 31, 0 < r < 31 PC <- PC + 1
           

16-разрядный код операции:

10rd dddd rrrr

Булевы выражения регистра статуса (SREG)

I T H S V N Z C    
- - Û Û Û Û Û Û    
H: Rd3*Rr3+Rr3*R3+R3*Rd3 Устанавливается если есть заем из бита 3, в ином случае очищается
S: NÅV, Для проверок со знаком
V: Rd7*Rr7*R7+Rd7*Rr7*R7 Устанавливается если в результате операции образуется переполнение дополнения до двух, в ином случае очищается
N: R7 Устанавливается если в результате установлен MSB, в ином случае очищается
Z: R7*R6*R5*R4*R3*R2*R1*R0 Устанавливается если результат $00, в ином случае очищается
C: Rd7*Rr7+Rr7*R7+*R7*Rd7 Устанавливается если абсолютное значение содержимого Rr больше, чем абсолютное значение Rd, в ином случае очищается
R: (Результат) соответствует Rd после выполнения команды
                     

Пример:

sub r13, r12 ; Вычесть r12 из r13

brne noteq ; Перейти если r12 <> r13

noteq: nop ; Перейти по назначению (пустая операция)

Слов: 1 (2 байта)

Циклов: 1

 

Команда SUBI - вычесть непосредственное значение

Описание:Вычитание константы из содержимого регистра, размещение результата в регистре назначения Rd.

Операция:

(i) Rd <-- Rd - K
  Синтаксис Операнды: Счетчик программ:
(i) SUB Rd,K 16 < d < 31, 0 < K < 255 PC <- PC + 1
           

16-разрядный код операции:

KKKK dddd KKKK

Булевы выражения регистра статуса (SREG)

I T H S V N Z C    
- - Û Û Û Û Û Û    
H: Rd3*K3+K3*R3+R3*Rd3 Устанавливается если есть заем из бита 3, в ином случае очищается
S: NÅV, Для проверок со знаком
V: Rd7*K7*R7+Rd7*K7*R7 Устанавливается если в результате операции образуется переполнение дополнения до двух, в ином случае очищается
N: R7 Устанавливается если в результате установлен MSB, в ином случае очищается
Z: R7*R6*R5*R4*R3*R2*R1*R0 Устанавливается если результат $00, в ином случае очищается
C: Rd7*K7+K7*R7+ R7*Rd7 Устанавливается если абсолютное значение константы больше, чем абсолютное значение Rd, в ином случае очищается
R: (Результат) соответствует Rd после выполнения команды
                     

Пример:

subi r22, $11 ; Вычесть $11 из r22

brne noteq ; Перейти если r22 <> $11

. . .

noteq: nop ; Перейти по назначению (пустая операция)

Слов: 1 (2 байта)

Циклов: 1

 

Команда SWAP - поменять нибблы местами

Описание:Команда меняет местами старший и младший нибблы (полубайты) регистра.

Операция:

(i) R(7-4) <-- Rd(3-0), R(3-0) <-- Rd(7-4)
  Синтаксис Операнды: Счетчик программ:
(i) SWAP Rd 0 < d < 31 PC <-- PC + k + 1
           

16-разрядный код операции:

010d dddd

Булевы выражения регистра статуса (SREG)

I T H S V N Z C    
- - - - - - - -    
R: (Результат) соответствует Rd после выполнения команды
                     

Пример:

inc r1 ; Увеличить на 1 r1

swap r1 ; Поменять местами нибблы r1

inc r1 ; Увеличить на 1 старший ниббл r1

swap r1 ; Снова поменять местами нибблы r1

Слов: 1 (2 байта)

Циклов: 1

 

Команда TST - проверить на ноль или минус

Описание:Регистр проверяется на нулевое или отрицательное состояние. Выполняется логическое AND содержимого регистра с самим собой. Содержимое регистра остается неизменным.

Операция:

(i) Rd <-- Rd * Rd
  Синтаксис Операнды: Счетчик программ:
(i) TST Rd 0 < d < 31 PC <- PC + 1
           

16-разрядный код операции:

00dd dddd dddd

Булевы выражения регистра статуса (SREG)

I T H S V N Z C    
- - - Û Û Û -    
S: NÅV, Для проверок со знаком
V: 0 Очищен
N: R7 Устанавливается если в результате установлен MSB, в ином случае очищается
Z: R7*R6*R5*R4*R3*R2*R1*R0 Устанавливается если результат $00, в ином случае очищается
R: (Результат) соответствует Rd
                     

Пример:

tst r0 ; Проверить r0

breq zero ; Перейти если r0 = 0

. . .

zero: nop ; Перейти по назначению (пустая операция)

Слов: 1 (2 байта)

Циклов: 1

 

Команда WDR - cбросить сторожевой таймер

Описание:Команда сбрасывает сторожевой таймер (Watchdog Timer). Команда может быть выполнена внутри заданного прескалером сторожевого таймера промежутка времени (см. аппаратные характеристики сторожевого таймера).

Операция:

(i) Перезапускается WD (сторожевой таймер)
  Синтаксис Операнды: Счетчик программ:
(i) WDR None PC <-- PC + 1
           

16-разрядный код операции:

101X

Булевы выражения регистра статуса (SREG)

I T H S V N Z C  
- - - - - - - -  

Пример:

wdr ; Сбросить сторожевой таймер

Слов: 1 (2 байта)

Циклов: 1

 

 

– Конец работы –

Эта тема принадлежит разделу:

Система команд 8-разрядных RISC микроконтроллеров семейства AVR

На сайте allrefs.net читайте: "Система команд 8-разрядных RISC микроконтроллеров семейства AVR"

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Операция

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Операция
(i) P <-- Rr   Синтаксис Операнды: Счетчик программ: (i) OUT

Операция
(i) Rd <-- STACK   Синтаксис Операнды: Счетчик программ: (i)

Операция
(i) STACK <-- Rr   Синтаксис Операнды: Счетчик программ: (i)

Операция
(i) PC <-- PC + k + 1 Приборы с 16-разрядным счетчиком команд, максимум 128 Кбайт памяти программ (ii) PC <-- PC + k + 1 Прибо

Операция
(i) PC(15-0) <-- STACK Приборы с 16-разрядным счетчиком команд, максимум 128 Кбайт памяти программ (ii) PC(21-0) <-- STACK При

Операция
(i) PC(15-0) <-- STACK Приборы с 16-разрядным счетчиком команд, максимум 128 Кбайт памяти программ (ii) PC(21-0) <-- STACK При

Операция
(i) PC <-- PC + k + 1   Синтаксис Операнды: Счетчик программ: Стек

Операция
(i) I/O(P,b) <-- 1   Синтаксис Операнды: Счетчик программ: (i)

Операция
(i) If I/O(P,b) = 0 then PC <-- PC + 2 (or 3) else PC <-- PC + 1   Синтаксис Операнды: Счетчик

Операция
(i) If I/O(P,b) = 1 then PC <-- PC + 2 (or 3) else PC <-- PC + 1   Синтаксис Операнды: Счетчик

Операция
(i) If Rr (b) = 0 then PC <-- PC + 2 (or 3) else PC <-- PC + 1   Синтаксис Операнды: Счетчик пр

Операция
(i) If Rr(b) = 1 then PC <-- PC + 2 (or 3) else PC <-- PC + 1   Синтаксис Операнды: Счетчик про

Операция
(i) C <-- 1   Синтаксис Операнды: Счетчик программ: (i) SEC

Операция
(i) H <-- 1   Синтаксис Операнды: Счетчик программ: (i) SEH

Операция
(i) I <-- 1   Синтаксис Операнды: Счетчик программ: (i) SEI

Операция
(i) N <-- 1   Синтаксис Операнды: Счетчик программ: (i) SEN

Операция
(i) Rd <-- $FF   Синтаксис Операнды: Счетчик программ: (i) SE

Операция
(i) S <-- 1   Синтаксис Операнды: Счетчик программ: (i) SES

Операция
(i) T <-- 1   Синтаксис Операнды: Счетчик программ: (i) SET

Операция
(i) V <-- 1   Синтаксис Операнды: Счетчик программ: (i) SEV

Операция
(i) Z <-- 1   Синтаксис Операнды: Счетчик программ: (i) SEZ

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги