Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Інструкції процесорів AVR

Нижче в табличній формі приведений набір команд процесорів AVR, детальніший опис їх можна знайти в AVR Data Book.

Асемблер не розрізняє регістр символів. Операнди можуть бути таких видів:

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)


Mnemonic Operands Description Operation Flags # Clocks
ARITHMETIC AND LOGIC INSTRUCTIONS
ADD Rd, Rr Add Two Registers Rd ← Rd + Rr Z,C,N,V,H
ADC Rd, Rr Add with Carry Two Registers Rd ← Rd + Rr + C Z,C,N,V,H
ADIW Rdl, K Add Immediate to Word Rdh:Rdl ← Rdh:Rdl + K Z,C,N,V,S
SUB Rd, Rr Subtract Two Registers Rd ← Rd - Rr Z,C,N,V,H
SUBI Rd, K Subtract Constant from Registers Rd ← Rd - K Z,C,N,V,H
SBC Rd, Rr Subtract with Carry Two Registers Rd ← Rd - Rr - C Z,C,N,V,H
SBCI Rd, K Subtract with Carry Constant from Reg. Rd ← Rd - K - C Z,C,N,V,H
SBIW Rd, K Subtract Immediate from Word Rdh:Rdl ← Rdh:Rdl - K Z,C,N,V,S
AND Rd, Rr Logical AND Registers Rd ← Rd∙Rr Z,N,V
ANDI Rd, K Logical AND Register and Constant Rd ← Rd∙K Z,N,V
OR Rd, Rr Logical OR Registers Rd ← Rd v Rr Z,N,V
ORI Rd, K Logical OR Register and Constant Rd ← Rd v K Z,N,V
EOR Rd, Rr Exclusive OR Registers Rd ← Rd + Rr Z,N,V
COM Rd One's Complement Rd ← $FF - Rd Z,C,N,V
NEG Rd Two's Complement Rd ← $00 - Rd Z,C,N,V,H
SBR Rd, K Set Bit(s) in Register Rd ← Rd v K Z,N,V
CBR Rd, K Clear Bit(s) in Register Rd ← Rd ∙ ($FF - K) Z,N,V
INC Rd Increment Rd ← Rd + 1 Z,N,V
DEC Rd Decrement Rd ← Rd - 1 Z,N,V
TST Rd Test for Zero or Minus Rd ← Rd∙Rd Z,N,V
CLR Rd Clear Register Rd ← Rd + Rd Z,N,V
SER Rd Set Register Rd ← $FF None

 

 

Mnemonic Operands Description Operation Flags # Clocks
BRANCH INSTRUCTIONS
RJMP k Relative Jump PC ← PC + k + 1 None
IJMP   Indirect Jump to (Z) PC ← Z None
RCALL k Relative Subroutine Call PC ← PC + k + 1 None
ICALL   Indirect Call to (Z) PC ← Z None
RET   Subroutine Return PC ← STACK None
RETI   Interrupt Return PC ← STACK I
CPSE Rd, Rr Compare, Skip if Equal if (Rd = Rr) PC ← PC + 2 or 3 None 1/2/3.
CP Rd, Rr Compare Rd - Rr Z,N,V,C,H
CPC Rd, Rr Compare with Carry Rd - Rr - C Z,N,V,C,H
CPI Rd, K Compare Register with Immediate Rd - K Z,N,V,C,H
SBRC Rr, b Skip if Bit in Register Cleared if (Rr(b) = 0) PC ← PC + 2 or 3 None 1/2/3.
SBRS Rr, b Skip if Bit in Register is Set if (Rr(b) = 1) PC ← PC + 2 or 3 None 1/2/3.
SBIC P, b Skip if Bit in I/O Register Cleared if (P(b) = 0) PC ← PC + 2 or 3 None 1/2/3.
SBIS P, b Skip if Bit in I/O Register is Set if (P(b) = 1) PC ← PC + 2 or 3 None 1/2/3.
BRBS s, k Branch if Status Flag Set if (SREG(s) = 1) then PC ← PC + k + 1 None 1/2.
BRBC s, k Branch if Status Flag Cleared if (SREG(s) = 0) then PC ← PC + k + 1 None 1/2.
BREQ k Branch if Equal if (Z = 1) then PC ← PC + k + 1 None 1/2.
BRNE k Branch if Not Equal if (Z = 0) then PC ← PC + k + 1 None 1/2.
BRCS k Branch if Carry Set if (C = 1) then PC ← PC + k + 1 None 1/2.
BRCC k Branch if Carry Cleared if (C = 0) then PC ← PC + k + 1 None 1/2.
BRSH k Branch if Same or Higher if (C = 0) then PC ← PC + k + 1 None 1/2.
BRLO k Branch if Lower if (C = 1) then PC ← PC + k + 1 None 1/2.
BRMI k Branch if Minus if (N = 1) then PC ← PC + k + 1 None 1/2.
BRPL k Branch if Plus if (N = 0) then PC ← PC + k + 1 None 1/2.
BRGE k Branch if Greater or Equal, Signed if (N + V = 0) then PC ← PC + k + 1 None 1/2.
BRLT k Branch if Less Than Zero, Signed if (N + V = 1) then PC ← PC + k + 1 None 1/2.
BRTS k Branch if T-flag Set if (T = 1) then PC ← PC + k + 1 None 1/2.
BRTC k Branch if T-flag Cleared if (T = 0) then PC ← PC + k + 1 None 1/2.
BRVS k Branch if Overflow Flag is Set if (V = 1) then PC ← PC + k + 1 None 1/2.
BRVC k Branch if Overflow Flag is Cleared if (V = 0) then PC ← PC + k + 1 None 1/2.
BRIE k Branch if Interrupt Enabled if (I = 1) then PC ← PC + k + 1 None 1/2.
BRID k Branch if Interrupt Disabled if (I = 0) then PC ← PC + k + 1 None 1/2.
Mnemonic Operands Description Operation Flags # Clocks
DATA TRANSFER INSTRUCTIONS
MOV Rd, Rr Move between Registers Rd ← Rr None
LDI Rd, K Load Immediate Rd ← K None
LD Rd, X Load Indirect Rd ← (X) None
LD Rd, X+ Load Indirect and Post-inc. Rd ← (X), X ← X + 1 None
LD Rd, -X Load Indirect and Pre-dec. X ← X-1, Rd ← (X) None
LD Rd, Y Load Indirect Rd ← (Y) None
LD Rd, Y+ Load Indirect and Post-inc. Rd ← (Y), Y ← Y + 1 None
LD Rd, -Y Load Indirect and Pre-dec. Y ← Y - 1, Rd ← (Y) None
LDD Rd, Y+q Load Indirect with Displacement Rd ← (Y + q) None
LD Rd, Z Load Indirect Rd ← (Z) None
LD Rd, Z+ Load Indirect and Post-inc. Rd ← (Z), Z ← Z + 1 None
LD Rd, -Z Load Indirect and Pre-dec. Z ← Z - 1, Rd ← (Z) None
LDD Rd, Z+q Load Indirect with Displacement Rd ← (Z + q) None
LDS Rd, k Load Direct from SRAM Rd ← (k) None
ST X, Rr Store Indirect (X) ← Rr None
ST X+, Rr Store Indirect and Post-inc. (X) ← Rr, X ← X + 1 None
ST -X, Rr Store Indirect and Pre-dec. X ← X - 1, (X) ← Rr None
ST Y, Rr Store Indirect (Y) ← Rr None
ST Y+, Rr Store Indirect and Post-inc. (Y) ← Rr, Y ← Y + 1 None
ST -Y, Rr Store Indirect and Pre-dec. Y ← Y - 1, (Y) ← Rr None
STD Y+q, Rr Store Indirect with Deplacement (Y + q) ← Rr None
ST Z, Rr Store Indirect (Z) ← Rr None
ST Z+, Rr Store Indirect and Post-inc. (Z) ← Rr, Z ← Z + 1 None
ST -Z, Rr Store Indirect and Pre-dec. Z ← Z - 1, (Z) ← Rr None
STD Z+q, Rr Store Indirect with Deplacement (Z + q) ← Rr None
STS k, Rr Store Direct to SRAM (k) ← Rr None
LPM   Load Program Memory R0 ← (Z) None
IN Rd, P In Port Rd ← P None
OUT P, Rr Out Port P ← Rr None
PUSH Rr Push Register on Stack STACK ← Rr None
POP Rd Push Register from Stack Rd ← STACK None
           
Mnemonic Operands Description Operation Flags # Clocks
BIT AND BIT-TEST INSTUCTIONS
SBI P,b Set Bit in I/O Register I/O(P,b) ← 1 None
CBI P,b Clear Bit in I/O Register I/O(P,b) ← 0 None
LSL Rd Logical Shift Left Rd(n + 1) ← Rd(n), Rd(0) ← 0 Z,C,N,V
LSR Rd Logical Shift Right Rd(n) ← Rd(n + 1), Rd(7) ← 0 Z,C,N,V
ROL Rd Rotate Left through Carry Rd(0) ← C, Rd(n + 1) ← Rd(n),C ← Rd(7) Z,C,N,V
ROR Rd Rotate Right through Carry Rd(7) ← C, Rd(n) ← Rd(n + 1),C ← Rd(0) Z,C,N,V
ASR Rd Arithmetic Shift Right Rd(n) ← Rd(n + 1), n = 0..6 Z,C,N,V
SWAP Rd Swap Nibbles Rd(3..0) ← Rd(7..4), Rd(7..4) ← Rd(3..0) None
BSET s Flag Set SREG (s) ← 1 SREG(s)
BCLR s Flag Clear SREG (s) ← 0 SREG(s)
BST Rr, b Bit Store from Register to T T ← Rr(b) T
BLD Rd, b Bit Load from T to Register Rr(b) ← T None
SEC   Set Carry C ← 1 C
CLC   Clear Carry C ← 0 C
SEN   Set Negative Flag N ← 1 N
CLN   Clear Negative Flag N ← 0 N
SEZ   Set Zero Flag Z ← 1 Z
CLZ   Clear Zero Flag Z ← 0 Z
SEI   Global Interrupt Enable I ← 1 I
CLI   Global Interrupt Disable I ← 0 I
SES   Set Signed Test Flag S ← 1 S
CLS   Clear Signed Test Flag S ← 0 S
SEV   Set Two's Complement Overflow V ← 1 V
CLV   Clear Two's Complement Overflow V ← 0 V
SET   Set T in SREG T ← 1 T
CLT   Clear T in SREG T ← 0 T
SHE   Set Half-carry Flag in SREG H ← 1 H
CLH   Clear Half-carry Flag in SREG H ← 0 H
NOP   No Operation   None
SLEEP   Sleep (see specific descr. for Sleep function) None
WDR   Watchdog Reset (see specific descr. for WDR/timer) None


Читайте також:

  1. Архітектура мікропроцесорів
  2. В) Інструкції до самостійної навчально-дослідницької роботи
  3. В) Інструкції до самостійної навчально-дослідницької роботи
  4. В) Інструкції до самостійної навчально-дослідницької роботи.
  5. Відповідно до Інструкції, опис та арешт майна боржника здійснюються в такій послідовності.
  6. Галузеві стандарти, технічні умови та технологічні інструкції на напівфабрикати і кулінарні вироби
  7. З «Тимчасової інструкції Генеральному Секретаріатові Тимчасового уряду на Україні» від 4 серпня 1917 р.
  8. Ієрархічність засобів діагностики та контролю процесорів та систем опрацювання сигналів та зображень
  9. Інструкції SQL
  10. Інструкції з ОП.
  11. Інструкції з охорони праці




Переглядів: 838

<== попередня сторінка | наступна сторінка ==>
Початкові коди | Директиви асемблера

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.015 сек.