013
04.10.2013, 18:56 Uhr
u.nickel
|
Ich würde es so interpretieren:
2214: 23 INC HL --nächste Speicheradresse 2215: 3E FF LD A, ffh --lade A mit FFh 2217: BE CP <HL> --vergl. Inhalt Speicheradresse mit FFh 2218: C8 RETZ --zurück wenn ja, sonst 2219: 7A LD A,D --A mit Inhalt von D laden 221a: AE XOR <HL> --A exor mit Inhalt Speicheradresse 221b: E6 7F AND 7fh --testen auf Zero 221d: 20 F5 JR NZ, f5h --wenn ja, dann nach 2214, sonst weiter 221f: CB 7E BIT 7, <HL> --Prüfe Bit 7 der Speicheradresse 2221: 37 SCF --Carry Flag schon mal als Zeigerflag setzen 2222: C0 RET NZ --zurück, wenn Bit 7 == 0 2223: 3A 65 78 LD A, (7865h) --Inhalt Speicheradresse 7865 nach A 2226: E6 04 AND 04h --vgl. A mit 04h, setze/rücksetze Z-Flag, rücksetzen C-Flag 2228: C0 RET NZ --zurück, wenn ja, sonst 2229: 37 SCF --setze Carry 222a: C9 RET --und zurück
....eigentlich ein ziemlicher logischer Code. Nehme mal an, das für die Nutzung dieser Subroutine H,L mit ner Adresse im Speicher zu belegen ist und ein Byte (Zeichen...) nach Register D zu übergeben ist. C und Z liefern dann augenscheinlich die "Statusinformationen zurück. Dieser Beitrag wurde am 04.10.2013 um 19:19 Uhr von u.nickel editiert. |