Schneider / Amstrad CPC Forum

Amstrad / Schneider CPC => Programmierung => Topic started by: oobdoo on 20. February 2015, 20:04:16

Title: Indexregister
Post by: oobdoo on 20. February 2015, 20:04:16
Seh ich das eigendlich richtig, das die Indexregisterr IX/IY von den Firmware-Routinen nie verändert werden?
Auf jeden Fall sind sie schonmal praktisch.
Title: Re: Indexregister
Post by: almasys on 20. February 2015, 21:51:01
Welche Routinen welche Register beeinflussen ist z.B. im Schneider CPC Systembuch (http://little-bat.de/cpc) beschreiben. Da werden auch mal die Indexregister beeinflusst.

Schönes Wochenende,
AMSi
Title: Re: Indexregister
Post by: TFM on 20. February 2015, 22:14:29
Praktisch ja, aber auch langsam(er) als normale Register.

Am besten verwendet man die um 8 Bit Werte zu speichern, geht schneller als in RAM zu legen.

Beispiel:

DB &DD : LD H,B     kopiert Register B in Register IX high

Title: Re: Indexregister
Post by: oobdoo on 20. February 2015, 22:22:02
Quote from: almasys on 20. February 2015, 21:51:01
Welche Routinen welche Register beeinflussen ist z.B. im Schneider CPC Systembuch (http://little-bat.de/cpc) beschreiben. Da werden auch mal die Indexregister beeinflusst.
Interessant. Hab jetzt ja das Systembuch analog hier liegen. Da wird extra auch auf die Indexregister eingegangen, in meinem deutschen Firmwaremanual nicht.
Title: Re: Indexregister
Post by: oobdoo on 20. February 2015, 22:22:37
Quote from: TFM on 20. February 2015, 22:14:29
Praktisch ja, aber auch langsam(er) als normale Register.

Am besten verwendet man die um 8 Bit Werte zu speichern, geht schneller als in RAM zu legen.

Beispiel:

DB &DD : LD H,B     kopiert Register B in Register IX high
Du meinst,H bekommt den Wert von B.
Title: Re: Indexregister
Post by: TFM on 20. February 2015, 23:01:02
Nein das High-Byte von IX, denn das Byte &DD schaltet auf IX

Wenn Du mit IY arbeiten willst, dann nimm &FD

Beispiel:

DB &FD
LD C,L

Läd / kopiert den Wert von Index Register IY - low Byte in das Register C

Das sind undokumentierte Befehle, sie sind aber in allen Z80 vorhanden.  :)

Siehe Anhang :)
Title: Re: Indexregister
Post by: oobdoo on 20. February 2015, 23:06:18
Achso, die undokumentierten. Ja dann ist mir das auch klar. ;D