AVR Assembler Makros

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


Hier entsteht eine Sammlung von verschiedenen nützlichen Makros für den AVR Assembler.

16 Bit Konstante in Z-Pointer laden

Natürlich auch möglich mit X- und Y-Pointer.

.MACRO SetZPtr ;(Adresse)
        ldi     ZL, LOW(@0)
        ldi     ZH, HIGH(@0)
.ENDMACRO

2 Register ohne Zwischenspeicher vertauschen

.MACRO SWAP ;(a, b)
        eor     @0, @1
        eor     @1, @0
        eor     @0, @1
.ENDMACRO

Konstante addieren

.MACRO ADDI ;(a, k)
        subi    @0, -(@1)
.ENDMACRO

Konstante addieren (16 Bit)

.MACRO ADDIW ;(RdL:RdH, k)
        subi    @0L, LOW(-@1)  
        sbci    @0H, HIGH(-@1)
.ENDMACRO