Assembler Commands

Overview of the luna assembler (lavra) supported avr assembler commands. The luna assembler is part of the luna compiler. Not all commands are available for every controller (see datasheet).

abbr.l description
r source-/destination register
rh upper source-/destination (R16-R31)
rd double register R24:25(W), R26:27(X), R28:29(Y), R30:31(Z)
rp pointer register X,Y, Z
ry pointer register Y, Z
p port
pl port at lower adress 0 bis 31
b7 bitnumber 0 bis 7
k63 constant 0 bis 63
k127 constant -64 bis +63
k255 constant 0-255
k4096 constant -2048 bis +2047
k65535 constant 0 bis 65535
group function command flags clk
empty command No OperationNOP 1
power management SleepSLeeP 1
watchdog Watchdog ResetWDR 1
set register 0CLR rZ N V 1
255SeR rh 1
constantLDI rh,k255 1
copy register » registerMOV r,r 1
SRAM » register, directLDS r,k65535 2
SRAM » registerLD r,rp 2
SRAM » register with INCLD r,rp+ 2
DeC, SRAM » registerLD r,-rp 2
SRAM, indiziert » registerLDD r,ry+k63 2
port » registerIN r,p 1
stack » registerPOP r 2
program memory(Z) » R0LPM 3
program memory(Z) » registerLPM r,Z 3
program memory(Z) mit INC » registerLPM r,Z+ 3
program memory(RAMPZ:Z)eLPM 3
register » SRAM, direktSTS k65535,r 2
register » SRAMST rp,r 2
register » SRAM with INCST rp+,r 2
DeC, register » SRAMST -rp,r 2
register » SRAM, indiziertSTD ry+k63,r 2
register » portOUT p,r 1
register » stackPUSH r 2
addition 8 Bit, +1INC rZ N V 1
8 BitADD r,rZ C N V H 1
8 Bit+CarryADC r,rZ C N V H 1
16 Bit, constantADIW rd,k63Z C N V S 2
subtraction 8 Bit, -1DeC rZ N V 1
8 BitSUB r,rZ C N V H 1
8 Bit, constantSUBI rh,k255Z C N V H 1
8 Bit - CarrySBC r,rZ C N V H 1
16 Bit, constantSBIW rd,k63Z C N V S 2
8 Bit - Carry, constantSBCI rh,k255Z C N V H 1
multiplication unsigned integer MUL r,rZ C 2
signed integerMULS r,rZ C 2
unsigned/unsigned integerMULSU r,rZ C 2
unsigned floating pointFMUL r,rZ C 2
signed floating pointFMULS r,rZ C 2
signed/unsigned floating pointFMUL r,rZ C 2
rotate logical, leftLSL rZ C N V 1
logical, rightLSR rZ C N V 1
rotate, left with carryROL rZ C N V 1
rotate, right with carryROR rZ C N V 1
arithmetc, rightASR rZ C N V 1
swap nibblesSWAP r 1
binary andAND r,rZ N V 1
and, constantANDI rh,k255Z N V 1
orOR r,rZ N V 1
or, constantORI rh,k255Z N V 1
exclusive-oreOR r,rZ N V 1
ones complementCOM rZ C N V 1
twos complementNeG rZ C N V H 1
bit change register, setSBR rh,k255Z N V 1
register, resetCBR rh,255Z N V 1
register, copy to T-FlagBST r,b7T 1
register, copy to T-FlagBLD r,b7 1
port, setSBI pl,b7 2
port, resetCBI pl,b7 2
status bits Zero-FlagSeZZ 1
carry flagSeCC 1
negative flagSeNN 1
twos complement overflow flagSeVV 1
half carry flagSeHH 1
signed flagSeSS 1
Transfer FlagSeTT 1
Interrupt enable FlagSeII 1
Zero-FlagCLZZ 1
Carry FlagCLCC 1
negative flagCLNN 1
twos complement overflow flagCLVV 1
half carry flagCLHH 1
Signed FlagCLSS 1
Transfer FlagCLTT 1
Interrupt enable FlagCLII 1
compare Register, RegisterCP r,rZ C N V H 1
Register, Register + CarryCPC r,rZ C N V H 1
Register, KonstanteCPI rh,k255Z C N V H 1
Register, ≤0TST rZ N V 1
branchg jump relativRJMP k4096 2
jump adress absoluteJMP k65535 3
jump adress implicit (Z)IJMP 2
jump adress implicit (eIND:Z)eIJMP 2
subroutine, relativeRCALL k4096 3
subroutine, adress absoluteCALL k65535 4
subroutine, adress implicit (Z)ICALL 4
subroutine, adress implicit (eIND:Z)eICALL 4
return from subroutineReT 4
return from interuptReTII 4
conditional branch status bit setBRBS b7,k127 1/2
status bit resetBRBC b7,k127 1/2
jump if equalBReQ k127 1/2
jump if not equalBRNe k127 1/2
jump if overflowBRCS k127 1/2
jump if carry=0BRCC k127 1/2
jump if equal or greaterBRSH k127 1/2
jump if lessBRLO k127 1/2
jump if negativeBRMI k127 1/2
jump if positiveBRPL k127 1/2
jump if greater or equal(signed)BRGe k127 1/2
jump if less than zero (Vorzeichen)BRLT k127 1/2
jump if half carryBRHS k127 1/2
jump if half carry=0BRHC k127 1/2
jump if T-Bit is setBRTS k127 1/2
jump if T-Bit not setBRTC k127 1/2
jump if twos complement overflowBRVS k127 1/2
jump if twos complent flag=0BRVC k127 1/2
jump if interrupts enabledBRIe k127 1/2
jump if interrupts disabledBRID k127 1/2
conditional jumps
(skip next command if)
Register bit=0SBRC rd,b7 1/2/3
register bit=1SBRS r,b7 1/2/3
port bit=0SBIC pl,b7 1/2/3
port bit=1SBIS pl,b7 1/2/3
compare, jump if equalCPSe r,r 1/2/3