Смекни!
smekni.com

Внутренняя организация микроконтроллеров AVR (стр. 2 из 2)


BRBCS, k – перейти на метку k, если флаг в регистре статуса сброшен в 0.

Команды работы с битами.

LSLRd – логический сдвиг влево. В результате логического сдвига влево старший бит в сдвигаемом регистре перемещается во флаг переноса С, все биты регистра сдвигаются на 1 бит влево, а в младший бит записывается 0.

LSRRd - логический сдвиг вправо.

ROLRd – циклический сдвиг влево.

При циклическом сдвиге влево, содержимое сдвигаемого регистра сдвигается на один бит влево, при этом старший бит переходит во флаг переноса B, а то что было во флаге С до этого записывается в младший бит записываемого регистра.

RORRd– циклический сдвиг вправо.

ASRRd – арифметический сдвиг вправо.

SWAPRd – перестановка тетрад в регистре.

SBIP, b – установить бит b в порту Р.

CBIP, b – сбросить бит b в порту Р.

BSTRd, b – установить либо сбросить флаг Т в регистре статуса в зависимости от того установлен или сброшен бит в регистре Rd.

BLDRd, b – загрузить в бит b регистра Rd содержимое флага Т.

SEC – установить в 1 флаг переноса.

CLC – сбросить в 0 флаг переноса.

SEN – установить в 1 флаг отрицательного числа.

CLN – сбросить в 0 флаг отрицательного числа.

SEZ – установить в 1 флаг 0.

CLZ – сбросить в 0.

SEI – разрешить прерывания.

CLI – запретить прерывания.

SES – установить в 1 флаг числа со знаком.

CLS – сбросить в 0 флаг числа со знаком.

SEV - установить в 1 флаг переполнения.

CLV – сбросить в 0 флаг переполнения.

SET – установить в 1 флаг Т.

CLT – сбросить в 0 флаг Т

SEH – установить в 1 флаг внутреннего переноса.

CLH – очистить флаг внутреннего переноса.

NOP – пустая команда.

SLEEP – переход в режим пониженного энергопотребления.

WDR – сброс сторожевого таймера.

Команды передачи данных

MOVRd, Rr – копирование содержимого регистра Rr в Rd.

LDIRd, k – загрузить константу kв регистр Rd. Команда справедлива только для регистров с 16 по 31.

LDSRd, k – прямая загрузка из оперативной памяти значений хранящихся по адресу kв регистре Rd.

LDRd, x – загрузка из ОЗУ значений хранящихся по адресу, который предварительно записан в регистровую пару х, значение в регистр Rd

# LDI R26, 0X01

LDI R27, 0X02

LDR17, x

LDRd, x+ (LDRd, y+ LDRd, z+) – косвенная загрузка в регистр Rd значений из ОЗУ, адрес которой записан в регистровой паре х с последующим инкрементом адреса.

LDRd, -x – загрузка в регистр Rd значений из ОЗУ, адрес которых предварительно записан регистровой паре х с прединкрементом адреса.

STSk, Rr – прямое сохранение содержимого регистра Rr в ячейку ОЗУ, адрес которой указан константой k.


STS 0X69, R17

STx, Rr (STY, RrSTY, Rr) – сохранение содержимого регистра Rr в ячейку оперативной памяти, адрес которой предварительно записан в регистровой паре х.

STx+, Rr (STY+, RrSTZ+, Rr) – сохранение содержимого регистра Rr в ячейку оперативной памяти с адресом, записанным в регистровую пару х и последующим инкрементом адреса.

ST -x, Rr (ST -Y, RrST -Z, Rr) - сохранение содержимого регистра Rr в ячейку оперативной памяти с адресом, предварительно записанным в регистровую пару х и преддектрементом адреса.

LDDRd, Y+q (LDDRd, Z+q) – загрузка из памяти в регистр Rd, когда адрес хранится в регистровой паре и указывается смещение адреса q.

INRd, P – загрузка из порта Р его содержимого в регистр Rd.

OUTP, Rr – вывод в порт Р содержимого регистра Rr.

PUSHRd – занесение содержимого регистра в стек.

POPRd – извлечение из стека.

LPM – загрузка значений из памяти программ.

LPMRd, Z+ - загрузка из памяти программ с постинкрементом.