;File: KADDN02.ASM                         06.03.91 /KN
;----------------------------------------------------
;Addition von n-8-Bit-Zahlen
;Verwendung von Schleifen
;Automatisches Einlesen der Summandenanzahl
;Schreiben des Ergebnisses hinter der letzten Summandenadresse
;----------------------------------------------------
;Die Daten-Bytes werden in diesem Programm als 8 Bit-Zahl
;aufgefaát mit folgender Zuordnung : Low-Nibble = Untersten 8-Bit
;                                    High-Nibble= Obersten 8-Bit
;----------------------------------------------------
; Datenteil des Programms
;
DATZ     EQU  1900h           ;Summandenanzahl
DAT1     EQU  1901h           ;Adresse von Summand 1
DAT2     EQU  1902h           ;Adresse von Summand 2
DAT3     EQU  1903h           ;Adresse von Summand 3
DAT4     EQU  1904h           ;Adresse von Summand 4
DAT5     EQU  1905h           ;Adresse von Summand 5
DATL     EQU  1A00h           ;Ergebnis SumLow
DATH     EQU  1A01h           ;Ergebnis SumHigh
;Hinweis: Vor Betrieb im Simulator die Daten in den ent-
;         sprechenden Speicherstellen ablegen.
;------------------------------------------------------; Programmteil
;
; Initialisierung des Programms
;
START:   LD  A,00            ;Akku Null setzen
         LD  C,A             ;Hilfsregister Null setzen
         LD  (DATL),A        ;SumLow Null setzen
         LD  (DATH),A        ;SumHigh Null setzen
         LD  A,(DATZ)        ;Summandenanzahl in Akku laden
         LD  B,A             ;Summandenanzahl in Z„hler laden
         LD  HL,DAT1         ;Zeiger HL auf Basisadresse Datenfeld
;
;Schleife
;
Loop:    LD   A,(DATL)       ;Akku=SumLow
         ADD  A,(HL)         ;Akku + Summand n
         LD   (DATL),A       ;Akku in SumLow abspeichern
         LD   A,(DATH)       ;Akku=SumHigh
         ADC  A,C            ;Akku+Carry+Hilfsregister
         LD   (DATH),A       ;Akku in SumHigh abspeichern
         INC  HL             ;Zeiger um 1 erh”hen
         DEC  B              ;Z„hler um 1 erniedrigen
         JP   NZ,Loop        ;Z„hler=0?
;
END:     HALT              ;Programmstop
;-------------------------------------------------------
;
         END
;
;-------------------------------------------------------



