Wracając do tematu.
Zabawa zaczyna się dopiero jak porównujemy liczby 16-bitowe ze znakiem.
Sprawdzona już przeze mnie procedura (można znaleźć jako jeden
z przykładów na http://www.6502.org/tutorials/compare_beyond.html)
porównująca NUM1 z NUM2. Jeśli NUM1 < NUM2 to skok do LABEL4.
SEC
LDA NUM1H ; compare high bytes
SBC NUM2H
BVC LABEL1 ; the equality comparison is in the Z flag here
EOR #$80 ; the Z flag is affected here
LABEL1 BMI LABEL4 ; if NUM1H < NUM2H then NUM1 < NUM2
BVC LABEL2 ; the Z flag was affected only if V is 1
EOR #$80 ; restore the Z flag to the value it had after SBC NUM2H
LABEL2 BNE LABEL3 ; if NUM1H <> NUM2H then NUM1 > NUM2 (so NUM1 >= NUM2)
LDA NUM1L ; compare low bytes
SBC NUM2L
BCC LABEL4 ; if NUM1L < NUM2L then NUM1 < NUM2
LABEL3
...
LABEL4
...
Edit: Oczywiście jak masz liczby większej precyzji, to eor dotyczy tylko najstarszego bitu liczby, więc najstarszego bajtu - pozostałe porównujesz zwyczajnie: