Du hast es erkannt!

jetzt machen wir knüppeldick....

machen wir jetzt 2 16 Bit Zahlen (naja eigentlich 10 aber wir brauchen jetzt 16 Bit um sie zu speichern)

erste Zahl 1000 zweite Zahl 1001

die passen ja nicht in 8 Bit rein
also werden sie zerschlagen in High Byte und Low Byte tipe mal in Deinem Taschenrechner 1000 ein und wandle es in binär um, was kommt dabei raus ?
1111101000 also werden sie so aufgeteilt High -> 00000011 Low -> 11101000
und 1001 ?
11111010001 High -> 00000011 Low->11101001

und da wir Menschen sind und dezimale schreibweise voll geil finden wandeln wir uns das um ,
die beiden Highs ergeben 3 juhu gleich!
und Lows 232 und 233 naja da ist nix meh gleich

so jetzt rechnen!

cp 232,233 -> schaue was sich im SREG getan hat Vorzeichen, Halbübertrag,Negativ und Übertrag sind gesetzt,
bis auf den Halbübertrag ist wohl klar oder?
Bei Halbübertrag muß ich auch passen, was der zu sagen hat habe ich bis jetzt noch nicht raus vielleicht weiß der Florian das, oder sonst jemand
aber die anderen Flags sind wohl klar oder ?

Jetzt müssen wir noch die zwei Highs vergleichen, könnten ja auch anders sein, ABER
wir müssen den Übertrag(auch Carry) mit in die Rechnung nehmen (wie Du schon sagtest schriftliches rechnen)
und dazu ist der Befehl cpc (cp mit Carry)
also 3,3 wäre eigentlich ja gleich, dann wäre nur Z SREG 1, aber da wir noch den Carry (der ja 1 ist) mit abziehen, haben wir ja, naja schau selber im Sim
ich hoffe daß es jetzt doch etwas einfacher ist.

Das bezieht sich auch auf add und adc! Genau dasselbe nur halt addieren

P.S. Genauso wird auch mit Zahlen, die 24 32 und mehr Bytes haben verfahren...

Ich weiß daß es schwer ist aber leider leider (man denke da an c if a>10000 ....)

Aber Du wolltest ja selber auf der Hardwareebene programmieren

Edit:
Nach der Zeile "cp ZL, tmp" wird doch gar nicht mit breq oder brne geprüft, wie das Ergebnis war, wozu vergleicht man dann eigentlich? Think
nach cp nicht aber nach cpc, ich hoffe daß jetz alles klar ist [-o<