Реферат Курсовая Конспект
Операция - раздел Компьютеры, Система команд 8-разрядных RISC микроконтроллеров семейства AVR (I) Pc <-- Pc + K + 1 ...
|
(i) | PC <-- PC + k + 1 | ||||||
Синтаксис | Операнды: | Счетчик программ: | Стек | ||||
(i) | RJMP k | -2K < k < 2K | PC <-- PC + k + 1 | Стек не меняется | |||
16-разрядный код операции:
kkkk | kkkk | kkkk |
Булевы выражения регистра статуса (SREG)
I | T | H | S | V | N | Z | C | |||
- | - | - | - | - | - | - | ||||
I: | 1 Флаг установлен | |||||||||
Пример:
cpi r16, $42 ; Сравнить r16 с $42
brne error ; Перейти если r16 <> $42
rjmp ok ; Безусловный переход
error: add r16, r17 ; Сложить r17 с r16
inc r16 ; Увеличить на 1 r16
ok: nop ; Назначение для rjmp (пустая операция)
Слов: 1 (2 байта)
Циклов: 2
Команда ROL - cдвинуть влево через перенос
Описание:Сдвиг всех битов Rd на одно место влево. Флаг переноса (С) регистра состояния (SREG) смещается на место бита 0 регистра Rd. Бит 7 смещается во флаг переноса (C).
Операция:
Синтаксис | Операнды: | Счетчик программ: | |
(i) | ROL Rd | 0 < d < 31 | PC <- PC + 1 |
16-разрядный код операции:
11dd | dddd | dddd |
Булевы выражения регистра статуса (SREG)
I | T | H | S | V | N | Z | C | |||
- | - | Û | Û | Û | Û | Û | Û | |||
H: | Rd3 | |||||||||
S: | NÅV, Для проверок со знаком | |||||||||
V: | NÅC (Для N и C после сдвига) Устанавливается если (N устанавливается и C очищается) или (N очищается а C устанавливается). В ином случае очищается (при наличии значений N и C после сдвига) | |||||||||
N: | R7 Устанавливается если в результате установлен MSB, в ином случае очищается | |||||||||
Z: | Rd7*R6*R5*R4*R3*R2*R1*R0 Устанавливается если результат $00, в ином случае очищается | |||||||||
C: | Rd7 Устанавливается если перед сдвигом был установлен MSB регистра Rd, в ином случае очищается | |||||||||
R: | (Результат)соответствует Rd после выполнения команды | |||||||||
Пример:
rol r15 ; Сдвигать влево
brcs oneenc ; Перейти если установлен перенос
. . .
oneenc: nop ; Перейти по назначению (пустая операция)
Слов: 1 (2 байта)
Циклов: 1
Команда ROR - cдвинуть вправо через перенос
Описание:Сдвиг всех битов Rd на одно место вправо. Флаг переноса (С) регистра состояния (SREG) смещается на место бита 7 регистра Rd. Бит 0 смещается во флаг переноса (C).
Операция:
Синтаксис | Операнды: | Счетчик программ: | |
(i) | ROR Rd | 0 < d < 31 | PC <- PC + 1 |
16-разрядный код операции:
010d | dddd |
Булевы выражения регистра статуса (SREG)
I | T | H | S | V | N | Z | C | |||
- | - | - | Û | Û | Û | Û | Û | |||
S: | NÅV, Для проверок со знаком | |||||||||
V: | NÅC (Для N и C после сдвига) Устанавливается если (N устанавливается и C очищается) или (N очищается а C устанавливается). В ином случае очищается (при наличии значений N и C после сдвига) | |||||||||
N: | R7 Устанавливается если в результате установлен MSB, в ином случае очищается | |||||||||
Z: | Rd7*R6*R5*R4*R3*R2*R1*R0 Устанавливается если результат $00, в ином случае очищается | |||||||||
C: | Rd0 Устанавливается если перед сдвигом был установлен LSB регистра Rd, в ином случае очищается | |||||||||
R: | (Результат)соответствует Rd после выполнения команды | |||||||||
Пример:
ror r15 ; Сдвигать вправо
brcc zeroenc ; Перейти если перенос очищен
. . .
zeroenc: nop ; Перейти по назначению (пустая операция)
Слов: 1 (2 байта)
Циклов: 1
Команда SBC - вычесть с переносом
Описание:Вычитание содержимого регистра-источника и содержимого флага переноса (С) из регистра Rd, размещение результата в регистре назначения Rd.
Операция:
(i) | Rd <-- Rd - Rr - C | ||||
Синтаксис | Операнды: | Счетчик программ: | |||
(i) | SBC Rd,Rr | 0 < 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*Z Предшествовавшее значение остается неизменным если результат равен нулю, в ином случае очищается | |||||||||
C: | Rd7*Rr7+Rr7*R7+ R7*Rd7 Устанавливается если абсолютное значение содержимого Rr плюс предшествовавший перенос больше, чем абсолютное значение Rd, в ином случае очищается | |||||||||
R: | (Результат)соответствует Rd после выполнения команды | |||||||||
Пример:
; Вычесть r1 : r0 из r3 : r2
sub r2, r0 ; Вычесть младший байт
sbc r3, r1 ; Вычесть старший байт с переносом
Слов: 1 (2 байта)
Циклов: 1
Команда SBCI - вычесть непосредственное значение с переносом
Описание:Вычитание константы и содержимого флага переноса (С) из содержимого регистра, размещение результата в регистре назначения Rd.
Операция:
(i) | Rd <-- Rd - K - C | ||||
Синтаксис | Операнды: | Счетчик программ: | |||
(i) | SBCI Rd,K | 0 < 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*Z Предшествовавшее значение остается неизменным если результат равен нулю, в ином случае очищается | |||||||||
C: | Rd7*K7+K7*R7+ R7*Rd7 Устанавливается если абсолютное значение константы плюс предшествовавший перенос больше, чем абсолютное значение Rd, в ином случае очищается | |||||||||
R: | (Результат)соответствует Rd после выполнения команды | |||||||||
Пример:
; Вычесть $4F23 из r17 : r16
subi r16, r23 ; Вычесть младший байт
sbci r17, $4F ; Вычесть старший байт с переносом
Слов: 1 (2 байта)
Циклов: 1
Команда SBI - установить бит в регистр I/O
Описание:Команда устанавливает заданный бит в регистр I/O. Команда работает с младшими 32 регистрами I/O (адреса с 0 по 31)
– Конец работы –
Эта тема принадлежит разделу:
На сайте allrefs.net читайте: "Система команд 8-разрядных RISC микроконтроллеров семейства AVR"
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Операция
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов