Pfad: Home => AVR-Überblick => Programmiertechniken => Tabellen

Programmiertechniken in AVR Assemblersprache

Tabellen

Befehle nach Funktion geordnet

Zur Erklärung über Abkürzungen bei Parametern siehe die Liste der Abkürzungen.
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


Zum Seitenanfang

Befehlsliste alphabetisch

Assemblerdirektiven

.CSEG
.DB
.DEF
.DW
.ENDMACRO
.ESEG
.EQU
.INCLUDE
.MACRO
.ORG

Befehle

ADC r1,r2
ADD r1,r2
ADIW rd,k63
AND r1,r2
ANDI rh,k255, Register
ASR r1
BLD r1,b7
BRCC k127
BRCS k127
BREQ k127
BRGE k127
BRHC k127
BRHS k127
BRID k127
BRIE k127
BRLO k127
BRLT k127
BRMI k127
BRNE k127
BRPL k127
BRSH k127
BRTC k127
BRTS k127
BRVC k127
BRVS k127
BST r1,b7
CBI pl,b7
CBR rh,255, Register
CLC
CLH
CLI
CLN
CLR r1
CLS
CLT, Anwendung
CLV
CLZ
COM r1
CP r1,r2
CPC r1,r2
CPI rh,k255, Register
CPSE r1,r2
DEC r1
EOR r1,r2
ICALL
IJMP IN r1,p1
INC r1
LD rp,(rp,rp+,-rp) (Register), SRAM-Zugriff, Ports
LDD r1,ry+k63
LDI rh,k255 (Register), Pointer
LDS r1,k65535
LPM
LSL r1
LSR r1
MOV r1,r2
NEG r1
NOP
OR r1,r2 ORI rh,k255 OUT p1,r1
POP r1, in Int-Routine
PUSH r1, in Int-Routine
RCALL k4096
RET, in Int-Routine
RETI
RJMP k4096
ROL r1
ROR r1
SBC r1,r2
SBCI rh,k255
SBI pl,b7
SBIC pl,b7
SBIS pl,b7
SBIW rd,k63
SBR rh,255, Register
SBRC r1,b7
SBRS r1,b7
SEC
SEH
SEI, in Int-Routine
SEN
SER rh
SES
SET, Anwendung
SEV
SEZ
SLEEP
ST (rp/rp+/-rp),r1 (Register), SRAM-Zugriff, Ports
STD ry+k63,r1
STS k65535,r1
SUB r1,r2
SUBI rh,k255
SWAP r1
TST r1
WDR


Zum Seitenanfang

Ports, alphabetisch

ACSR, Analog Comparator Control and Status Register
DDRx, Port x Data Direction Register
EEAR, EEPROM Adress Register
EECR, EEPROM Control Register
EEDR, EEPROM Data Register
GIFR, General Interrupt Flag Register
GIMSK, General Interrupt Mask Register
ICR1L/H, Input Capture Register 1
MCUCR, MCU General Control Register
OCR1A, Output Compare Register 1 A
OCR1B, Output Compare Register 1 B
PINx, Port Input Access
PORTx, Port x Output Register
SPL/SPH, Stackpointer
SPCR, Sreial Peripheral Control Register
SPDR, Serial Peripheral Data Register
SPSR, Serial Peripheral Status Register
SREG, Status Register
TCCR0, Timer/Counter Control Register, Timer 0
TCCR1A, Timer/Counter Control Register 1 A
TCCR1B, Timer/Counter Control Register 1 B
TCNT0, Timer/Counter Register, Counter 0
TCNT1, Timer/Counter Register, Counter 1
TIFR, Timer Interrupt Flag Register
TIMSK, Timer Interrupt Mask Register
UBRR, UART Baud Rate Register
UCR, UART Control Register
UDR, UART Data Register
WDTCR, Watchdog Timer Control Register



Zum Seitenanfang

Verwendete Abkürzungen

Die in diesen Listen verwendeten Abkürzungen geben den zulässigen Wertebereich mit an. Bei Doppelregistern ist das niederwertige Byte-Register angegeben. Konstanten bei der Angabe von Sprungzielen werden dabei automatisch vom Assembler aus den Labels errechnet.
KategorieAbk.BedeutungWertebereich
Registerr1Allgemeines Quell- und ZielregisterR0..R31
r2Allgemeines Quellregister
rhOberes RegisterR16..R31
rdDoppelregisterR24(R25), R26(R27), R28(R29), R30(R31)
rpPointerregisterX=R26(R27), Y=R28(R29), Z=R30(R31)
ryPointerregister mit AblageY=R28(R29), Z=R30(R31)
Konstantek63Pointer-Konstante0..63
k127Bedingte Sprungdistanz-64..+63
k2558-Bit-Konstante0..255
k4096Relative Sprungdistanz-2048..+2047
k6553516-Bit-Adresse0..65535
Bitb7Bitposition0..7
Portp1Beliebiger Port0..63
plUnterer Port0..31


Zum Seitenanfang



©2002 by http://www.avr-asm-tutorial.net