6502 inside
von Bernd » Sa 5. Okt 2013, 22:45Jahrelang benutzt man den CMP, CPX und CPY Befehl und macht sich keine Gedanken wie dieser zu Stande kommt. Zum besseren Verständnis hier eine identische Befehlskette in Assembler zum Vergleich:
LDA (Wert)
SEC - Set carry flag
SBC # Vergleichswert
Intern entspricht der Vergleichsbefehl dem einer Subtraktion.
Ist der Wert minus dem Vergleichswert größer oder gleich, so bleibt das Carry Bit gesetzt,
ist er kleiner wird das Carry Bit gelöscht.
Sind beide Werte identisch kommt es zu einer "0" im Rechenwerk, das Zero Bit ist dann "1".
Bernd
LDA (Wert)
SEC - Set carry flag
SBC # Vergleichswert
Intern entspricht der Vergleichsbefehl dem einer Subtraktion.
Ist der Wert minus dem Vergleichswert größer oder gleich, so bleibt das Carry Bit gesetzt,
ist er kleiner wird das Carry Bit gelöscht.
Sind beide Werte identisch kommt es zu einer "0" im Rechenwerk, das Zero Bit ist dann "1".
Bernd