Инструкции работы с битами

Мнемоника Операнды Описание Операция Флаги Циклы
LSL Rd Логический сдвиг влево Rd(n+1)=Rd(n), Rd(0)=0, C=Rd(7) Z,C,N,V,H,S  
LSR Rd Логический сдвиг вправо Rd(n)=Rd(n+1), Rd(7)=0, C=Rd(0) Z,C,N,V,S  
ROL Rd Циклический сдвиг влево через C Rd(0)=C, Rd(n+1)=Rd(n), C=Rd(7) Z,C,N,V,H,S  
ROR Rd Циклический сдвиг вправо через C Rd(7)=C, Rd(n)=Rd(n+1), C=Rd(0) Z,C,N,V,S  
ASR Rd Арифметический сдвиг вправо Rd(n)=Rd(n+1), n=0,...,6 Z,C,N,V,S  
SWAP Rd Перестановка тетрад Rd(3..0) = Rd(7..4), Rd(7..4) = Rd(3..0) None  
BSET s Установка флага SREG(s) = 1 SREG(s)  
BCLR s Очистка флага SREG(s) = 0 SREG(s)  
SBI P,b Установить бит в порту I/O(P,b) = 1 None  
CBI P,b Очистить бит в порту I/O(P,b) = 0 None  
BST Rr,b Сохранить бит из регистра в T T = Rr(b) T  
BLD Rd,b Загрузить бит из T в регистр Rd(b) = T None  
SEC Нет Установить флаг переноса C =1 C  
CLC Нет Очистить флаг переноса C = 0 C  
SEN Нет Установить флаг отрицательного числа N = 1 N  
CLN Нет Очистить флаг отрицательного числа N = 0 N  
SEZ Нет Установить флаг нуля Z = 1 Z  
CLZ Нет Очистить флаг нуля Z = 0 Z  
SEI Нет Установить флаг прерываний I = 1 I  
CLI Нет Очистить флаг прерываний I = 0 I  
SES Нет Установить флаг числа со знаком S = 1 S  
CLN Нет Очистить флаг числа со знаком S = 0 S  
SEV Нет Установить флаг переполнения V = 1 V  
CLV Нет Очистить флаг переполнения V = 0 V  
SET Нет Установить флаг T T = 1 T  
CLT Нет Очистить флаг T T = 0 T  
SEH Нет Установить флаг внутреннего переноса H = 1 H  
CLH Нет Очистить флаг внутреннего переноса H = 0 H  
NOP Нет Нет операции Нет None  
SLEEP Нет Спать (уменьшить энергопотребление) Смотрите описание инструкции None  
WDR Нет Сброс сторожевого таймера Смотрите описание инструкции None  


Ассемблер не различает регистр символов.

Операнды могут быть таких видов:

Rd: Результирующий (и исходный) регистр в регистровом файле
Rr: Исходный регистр в регистровом файле
b: Константа (3 бита), может быть константное выражение
s: Константа (3 бита), может быть константное выражение
P: Константа (5-6 бит), может быть константное выражение
K6; Константа (6 бит), может быть константное выражение
K8: Константа (8 бит), может быть константное выражение
k: Константа (размер зависит от инструкции), может быть константное выражение
q: Константа (6 бит), может быть константное выражение
Rdl: R24, R26, R28, R30. Для инструкций ADIW и SBIW
X,Y,Z: Регистры косвенной адресации (X=R27:R26, Y=R29:R28, Z=R31:R30)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: