Schneider / Amstrad CPC Forum
Amstrad / Schneider CPC => Programmierung => Topic started by: oobdoo on 08. February 2015, 18:14:13
Wie kann man denn ein oder zwei 16-Werte vergleichen?
Also ein
A>HL
DE<>HL
BC=HL
DE>BC
und ähnliches???
Plödes Bitgefummel, bekomm ich nich in die Birne rein. Ich werd alt... :(
Hab mal rumgefummelt und es scheint zu laufen im Test.
org 4444
ld hl,(_hl)
ld de,(_de)
ld a,h
cp d
jr z,nichtgroesser
jr c,nichtgroesser
ld a,l
cp e
jr z,nichtgroesser
jr c,nichtgroesser
nop
ret
.nichtgroesser
nop
ret
._hl defb 12341
._de defb 12342
org 4000
ld hl,(_hl)
ld de,(_de)
ld a,d
cp h
jr nz,ungleich1
.gleich1
ld a,l
cp e
jr nz,ungleich2
.gleich2
nop
ret
.ungleich2
.ungleich1
nop
ret
._hl
defw 16386
._de
defw 16385
Ja, stimmt, da musst Du zweimal einen 8 Bit Wert vergleichen.
Bei Koordinaten z.B. ist es gut erst die unteren 8 Bits zu vergleichen, da die nicht so oft gleich sind (statistisch), man spaart sich dann den Rest.