Blockbefehl:
Die Befehle LDD, LDDR, LDI und LDIR stehen für blockweises
verschieben. Bei den Befehlen LDDR (Load, decrement and repeat) und LDIR
(Load, increment and repeat) wird wiefolgt vorgegangen:
LDDR | LDIR |
wiederhole | wiederhole |
LD (DE),(HL) | LD (DE),(HL) |
DE=DE-1 | DE=DE+1 |
HL=HL-1 | HL=HL+l |
BC=BC-1 | BC=BC-1 |
bis | bis |
BC=0 | BC=0 |
In HL muss die Anfangsadresse des zu kopierenden Bereiches stehen, in DE die Anfangsadresse des freien Bereiches und in BC die Anzahl Bytes, die kopiert werden sollen.
Die Befehle LDD und LDI machen genau das gleiche, bis auf dass sie nicht repetieren, d.h. man kann die Repetitioneschleife beliebig vergrössern. Ist nämlich BC=0 geworden, wird das Übertragflag 0 gesetzt. Somit können wir eine einfache Zählschleife mit Abbruch erstellen.