Смекни!
smekni.com

Система команд микроконтроллеров (стр. 3 из 5)

Операция Мнемокод команды Операция Мнемокод команды
85
RJMP k 86
IJMP
87 1.
2.
3.
RCALL k 88 1.
2.
3.
ICALL
89 1.
2.
RET 90 1.
2.
3.
RETI
k = -2048 - +2047

В группу регистровых операций входят пересылочные, арифметические и логические операции. Команды регистровых операций описаны в табл. 1, 2 и 3. Машинные коды всех команд регистровых операций имеют формат "слово", команды №№ 1—31 выполняются за один такт, а команды №№ 32 и 33 — за два такта.

При описании операций в табл. 1—3 используются следующие обозначения:

Таблица 11

Операция Мнемокод команды Операция Мнемокод команды
91 I = 0 BRID k 92 I = 1 BRIE k
93 T = 0 BRTC k 94 T = 1 BRTS k
95 H = 0 BRHC k 96 H = 1 BRHS k
97 S = 0 BRGE k 98 S = 1 BRLT k
99 V = 0 BRVC k 100 V = 1 BRVS k
101 N = 0 BRPL k 102 N = 1 BRMI k
103 Z = 0 BRNE k 104 Z = 1 BREQ k
105 C = 0 BRCC k 106 C = 1 BRCS k
107 C = 0 BRSH k 108 C = 1 BRLO k
109 SREG.b=0 BRBC b, k 110 SREG.b= 1 BRBS b, k
k = -64 – +63; b = 0 – 7

Таблица 12

Операция Мнемокод команды Операция Мнемокод Команды
111
SBRC
112
SBRS
113
SBIC
114
SBIS
115
CPSE
d, r = 0 – 31; P = 0 – 31 (!); b = 0 – 7

Таблица 13

Операция Мнемокод команды
116 МК – режим энергосбережения SLEEP
117 Перезапуск WDT WDR
118 Нет NOP

■ RdRr — регистры общего назначения с номерами d и r соответственно;

■ (Rd), (Ri) — байты в регистрах Rd n R, соответственно;

■ Rd.b — разряд b (b = 0—7) регистра Rfi, бит в разряде Rd.b;

■ $ — указатель шестнадцатернчного кода;

■ ^, v, + - знаки логических операции И, ИЛИ, исключающее ИЛИ соответственно;

■ (‾)/( ),( ) — знаки операции НЕ, сдвиг кода вправо, сдвиг кода влево соответственно.

Арифметические операции — сложение и вычитание — могут выполняться с числами без знака в двоичном коде и с числами со знаком в дополнительном двоичном коде. В отличие от микроконтроллеров многих других семейств, в которых вычитание сводится к сложению с числом с измененным знаком (X-Y = X + (-Y )), в микроконтроллерах семейства AVR вычитание выполняется с помощью аппаратного двоичного вычитателя. Работа двоичного вычитателя рассмотрена в приложении П7.

При выполнении арифметических и логических операций кроме кода результата формируются значения признаков результата. При выполнении операций сравнения (команды М»№ 18, 19 и 27) формируются только значения признаков результата.

Значения признаков результата представлены состоянием разрядов регистра состояния SREG (№ S3F). Используются тесть признаков результата, которым присвоены имена С (SREG.O), Z (SREG.1) N (SREG.2), V (SREG.3), S (SREG.4) и Н (SREG.5). В табл. 1-3 признаки, значения которых формируются при выполнении команд, отмечены знаком "+" пли указано их значение.

При выполнении разных операций значение признаков формируются по разным правилам.

Признак С принимает единичное значение:

■ при появлении единицы переноса из старшего разряда при выполнении операции сложения (команды №№ 14, 15 и 32);

■ при появлении единицы займа в старший разряд при выполнении операции вычитания (команды №>№ 4, 16, 17, 18, 19, 25, 26, 27 и 33);

■ при выходе единицы за пределы разрядной сетки при выполнении операции сдвига (команды №№ 7, 8, 9, 10 и 11).

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

Признак Z принимает единичное значение при получении нулевого результата операции. При выполнении операции вычитания с учетом займа (команды №№ 17, 19 и 26) Z = 1, если нулевой результат получен при выполнении данной и предшествующей операций.

Признак N имеет значение, равное значению старшего разряда кода результата. При выполнении арифметических операции с числами со знаком и отсутствии переполнения разрядной сетки он представляет знак результата.

Признак V принимает единичное значение, если при выполнении арифметической операции с числами со знаком возникло переполнение разрядной сетки.

Признак S = N+V представляет знак результата при выполнении арифметических операций с числами со знаком вне зависимости от переполнения разрядной сетки. При переполнении разрядной сетки (V=l) знак результата противоположен значению в старшем разряде кода результата.

Признак Н принимает единичное значение при наличии единицы переноса из разряда D3 в разряд D4 при выполнении операции сложения, при наличии единицы займа в разряд D3 из разряда D4 при выполнении операции вычитания и при передаче единицы из разряда D3 в разряд D4 при выполнении операции сдвига кода влево.

Команды с обращением по адресу SRAM

По командам с обращением по адресу в адресном пространстве SRAM выполняются операции пересылки (копирования) байта между регистром общего назначения и элементом, которому соответствует адрес в адресном пространстве SRAM. Таким элементом может быть регистр общего назначения (адреса от $00 до $1F), регистр ввода-вывода (адреса от $20 до $5F), ячейка памяти в SRAM (адреса от $60 до максимального адреса в SRAM), ячейка памяти в ERAM (адреса от максимального адреса в SRAM +1 до максимального адреса в ERAM) (см. п. 1.5).

Команды с обращением по адресу в адресном пространстве SRAM описаны в табл. 4 и 5.

Машинные коды команд №№ 34 и 35 имеют формат "2 слова", машинные коды остальных команд — формат "слово". Команды выполняются за 2 такта, а при обращении к ячейкам в ERAM — за 3 такта. В случае необходимости в цикл выполнения команды при обращении к ERAM может быть введен дополнительный такт ожидания.