Präprozessor - Makros (Assembler)

Standard (ungeprüfte Parameter)

Deklaration
  • Macro Bezeichner
    • (Assemblercode/Makroaufrufe)
  • EndMacro
Parameterzugriff im Makro
  • @0 = Parameter1
  • @1 = Parameter2
  • [..]

Beispiel (Standard)

Dies deklariert ein Makro, welches 4 Parameter erwartet

.macro Add16 
  add   @0,@2
  adc   @1,@3
.endmacro

Aufruf im Assemblerquelltext:

Add16 ZL,ZH,_HA0,_HA1

Erweitert (geprüfte, benannte Parameter)

Bei der Verwendung einer Parameterbenennung bei einem Makro, wird die Anzahl der Parameter mit dem Aufruf verglichen und eine Fehlermeldung bei Differenz ausgegeben.

Deklaration
  • Macro Bezeichner[(parameter1, parameter2, ..)]
    • (Assemblercode/Makroaufrufe)
  • EndMacro
Parameterzugriff im Makro
  • @parameter1 = Parameter1
  • @parameter2 = Parameter2
  • [..]

Beispiel (Erweitert)

Dies deklariert ein Makro, welches 4 Parameter erwartet

.macro Add16(dReg0,dReg1,sReg0,sReg1)
  add   @dReg0,@sReg0
  adc   @dReg1,@sReg1
.endmacro

Aufruf im Assemblerquelltext:

Add16(ZL,ZH,_HA0,_HA1) ;mit oder ohne Klammerung