Grundlagen Assemblerprogrammierung 5

Such-/Vergleichsbefehle:

Der Befehl CP dient zum Vergleich eines Registers oder eines Wertes mit dem A-Register. Stimmen die beiden Register überein, so wird das Null-Flag=1 (Z=1) gesetzt.

BSP .:
 
CP (IX+&22) Der Inhalt der Adresse,auf die das Register IX+&22 zeigt, wird mit A verglichen.
JP Z,&C3F2 Wenn Übereinstimmung, weiter nach &C3F2.
NOP Wenn nicht, hier weiter.

Die Befehle CPD, CPDR, CPI und CPIR gehören zu den Suchbefehlen. Mit Ihnen kann man ganze Blöcke nach einem bestimmten Wert durchsuchen. Bei den Befehlen CPDR (compare, decrement and repeat) und CPIR (compare, increment and repeat) wird wiefolgt vorgegangen:
 
CPDR  CPIR
wiederhole wiederhole
CP (HL) CP (HL)
HL=HL-1 HL=HL+1
BC=BC-1 BC=BC-1
bis BC=0 oder Z=1 bis BC=0 oder Z=1

In HL muss die Anfangsadresse des zu durchsuchendes Bereiches stehen, in BC die Anzahl durchsuchende Bytes. Ist eine Adresse mit dem gleichen Wert wie im A-Register gefunden, bricht die Schlaufe ab und im HL-Register steht die Adresse. Die Schlaufe bricht ebenfalls ab, sofern BC=0 wurde, dann wurde der Wert nie gefunden.

Die Befehle CPD und CPI machen genau das gleiche, bis auf dass sie nicht repetieren, d.h. man kann die Repetitionsschleife beliebig vergrössern. Ist nämlich der Wert gefunden, wird Z=1 (das Nullflag) gesetzt oder wenn BC=0 wurde, wird das Übertragflag=0 gesetzt.

weiter->