AVR ASM Befehlsübersicht

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Die Abkürzungen in der Tabelle bedeuten:

r1 ---- Allgemeines Quell- und Zielregister R0..R31
r2 ---- Allgemeines Quellregister R0..R31
rh ---- Oberes Register	R16..R31
rd ---- Doppelregister	R24(R25), R26(R27), R28(R29), R30(R31)
rp ---- Pointerregister	X=R26(R27), Y=R28(R29), Z=R30(R31)
ry ---- Pointerregister mit Ablage Y=R28(R29), Z=R30(R31)
k63 --- Pointer-Konstante 0..63
k127 -- Bedingte Sprungdistanz -64..+63
k255 -- 8-Bit-Konstante	0..255
k4096 - Relative Sprungdistanz -2048..+2047
k65535  16-Bit-Adresse 0..65535
Bit --- b7 Bitposition	0..7
Port -- p1 Beliebiger Port 0..63
pl ---- Unterer Port 0..31
FunktionUnterfunktionBefehlFlagsClk
Register
setzen
0CLR r1Z N V1
255SER rh  1
KonstanteLDI rh,k255 1
KopierenRegister => RegisterMOV r1,r2 1
SRAM => Register, direktLDS r1,k65535 2
SRAM => RegisterLD r1,rp 2
SRAM => Register mit INCLD r1,rp+ 2
DEC, SRAM => RegisterLD r1,-rp 2
SRAM, indiziert => RegisterLDD r1,ry+k63 2
Port => RegisterIN r1,p1 1
Stack => RegisterPOP r1 2
Programmspeicher Z => R0LPM 3
Register => SRAM, direktSTS k65535,r1 2
Register => SRAMST rp,r1 2
Register => SRAM mit INCST rp+,r1 2
DEC, Register => SRAMST -rp,r1 2
Register => SRAM, indiziertSTD ry+k63,r1 2
Register => PortOUT p1,r1 1
Register => StackPUSH r1 2
Addition8 Bit, +1INC r1Z N V1
8 BitADD r1,r2Z C N V H1
8 Bit+CarryADC r1,r2Z C N V H1
16 Bit, KonstanteADIW rd,k63Z C N V S2
Subtraktion8 Bit, -1DEC r1Z N V1
8 BitSUB r1,r2Z C N V H1
8 Bit, KonstanteSUBI rh,k255Z C N V H1
8 Bit - CarrySBC r1,r2Z C N V H1
8 Bit - Carry, KonstanteSBCI rh,k255Z C N V H1
16 BitSBIW rd,k63Z C N V S2
SchiebenLogisch, linksLSL r1Z C N V1
Logisch, rechtsLSR r1Z C N V1
Rotieren, links über CarryROL r1Z C N V1
Rotieren, rechts über CarryROR r1Z C N V1
Arithmetisch, rechtsASR r1Z C N V1
NibbletauschSWAP r1 1
BinärUndAND r1,r2Z N V1
Und, KonstanteANDI rh,k255Z N V1
OderOR r1,r2Z N V1
Oder, KonstanteORI rh,k255Z N V1
Exklusiv-OderEOR r1,r2Z N V1
Einer-KomplementCOM r1Z C N V1
Zweier-KomplementNEG r1Z C N V H1
Bits
ändern
Register, SetzenSBR rh,k255Z N V1
Register, RücksetzenCBR rh,255Z N V1
Register, Kopieren nach T-FlagBST r1,b7T1
Register, Kopie von T-FlagBLD r1,b7 1
Port, SetzenSBI pl,b7 2
Port, RücksetzenCBI pl,b7 2
Statusbit
setzen
Zero-FlagSEZZ1
Carry FlagSECC1
Negativ FlagSENN1
Zweierkompliment Überlauf FlagSEVV1
Halbübertrag FlagSEHH1
Signed FlagSESS1
Transfer FlagSETT1
Interrupt Enable FlagSEII1
Statusbit
rücksetzen
Zero-FlagCLZZ1
Carry FlagCLCC1
Negativ FlagCLNN1
Zweierkompliment Überlauf FlagCLVV1
Halbübertrag FlagCLHH1
Signed FlagCLSS1
Transfer FlagCLTT1
Interrupt Enable FlagCLII1
VergleicheRegister, RegisterCP r1,r2Z C N V H1
Register, Register + CarryCPC r1,r2Z C N V H1
Register, KonstanteCPI rh,k255Z C N V H1
Register, ≤0TST r1Z N V1
Unbedingte
Verzweigung
RelativRJMP k4096 2
Indirekt, Adresse in ZIJMP 2
Unterprogramm, relativRCALL k4096 3
Unterprogramm, Adresse in ZICALL 3
Return vom UnterprogrammRET 4
Return vom InterruptRETII4
Bedingte
Verzweigung
Statusbit gesetztBRBS b7,k127 1/2
Statusbit rückgesetztBRBC b7,k127 1/2
Springe bei gleichBREQ k127 1/2
Springe bei ungleichBRNE k127 1/2
Springe bei ÜberlaufBRCS k127 1/2
Springe bei Carry=0BRCC k127 1/2
Springe bei gleich oder größerBRSH k127 1/2
Springe bei kleinerBRLO k127 1/2
Springe bei negativBRMI k127 1/2
Springe bei positivBRPL k127 1/2
Springe bei größer oder gleich (Vorzeichen)BRGE k127 1/2
Springe bei kleiner Null (Vorzeichen)BRLT k127 1/2
Springe bei HalbübertragBRHS k127 1/2
Springe bei HalfCarry=0BRHC k127 1/2
Springe bei gesetztem T-BitBRTS k127 1/2
Springe bei gelöschtem T-BitBRTC k127 1/2
Springe bei ZweierkomplementüberlaufBRVS k127 1/2
Springe bei Zweierkomplement-Flag=0BRVC k127 1/2
Springe bei Interrupts eingeschaltetBRIE k127 1/2
Springe bei Interrupts ausgeschaltetBRID k127 1/2
Bedingte
Sprünge
Registerbit=0SBRC r1,b7 1/2/3
Registerbit=1SBRS r1,b7 1/2/3
Portbit=0SBIC pl,b7 1/2/3
Portbit=1SBIS pl,b7 1/2/3
Vergleiche, Sprung bei gleichCPSE r1,r2 1/2/3
AndereNo OperationNOP 1
SleepSLEEP 1
Watchdog ResetWDR 1

Autor: Megges