;File: KADD5.ASM                         15.03.91 /KN
;----------------------------------------------------
; 32-Bit-Addition von Bin„rzahlen
; Verwendung von Zeigern zur Datenadressierung
; im Speicher
; Einfhrung von Makrobefehlen
;----------------------------------------------------
; Datenteil des Programms
;
ADR1     EQU  1907h          ;Adresse von Summand 1-Low
ADR2     EQU  ADR1+8         ;Adresse von Summand 2-Low
ADRS     EQU  ADR1+16        ;Adresse der Summe - Low
;
;Hinweis: Vor Betrieb im Simulator die Daten in den ent-
;         sprechenden Speicherstellen ablegen.
;------------------------------------------------------
;Programmteil
;
INIT:    LD  BC,ADR1        ;Zeiger auf Summand1 -LowByte
         LD  HL,ADR2        ;Zeiger auf Summand2 -LowByte
         LD  DE,ADRS        ;Zeiger auf Summe- LowByte
;
;----------------------------------------------------------
;Definition einer Makroanweisung
;

ADIT     %MACRO            ;Macro mit Namen ADIT (Anfang)
         LD   A,(DE)       ;Summand 1 (Byte) in den Akku laden
         ADC  A,(HL)       ;Summand 2 (Byte) zum Akku addieren
         LD   (BC),A       ;Byte der Summe im RAM sichern
         DEC  DE           ;Adressenzeiger um 1 erniedrigen
         DEC  HL           ;Adressenzeiger um 1 erniedrigen
         DEC  BC           ;Adressenzeiger um 1 erniedrigen
         %ENDM             ;Macro mit Namen ADIT (Ende)

;
;------------------------------------------------------------
;
;        Beginn des eigentlichen Hauptprogramms
;
START:   ADIT
         ADIT
         ADIT
         ADIT
;
ENDE:    NOP               ;
         HALT              ;Programmstop
;-------------------------------------------------------
;
         END
;
;-------------------------------------------------------
;Erklaerungen
;Macros bestehen aus normalen Assemblerbefehlen. Ein Makro
;wird mit den Pseudobefehlen %MACRO begonnen und mit %ENDM
;abgeschlossen. Der ganze Befehlsblock kann im Programm durch
;den Aufruf des Macros mit dem Namen eingesetzt werden. Wenn
;der Quelltext assembliert wird, fgt der Assembler an den Stellen
;des Aufrufs den vollst„ndigen Code in den Objektcode ein.
;Erklaerungen Ende
