Ich habe mal wieder eine Frage an die Profis:
Ich habe eine 16-bit Variable nennen wir sie var1/var1+1 - diese Variable erhöht sich stetig.
Nun möchte ich abfragen wenn sie in einem Bereich ist - sagen wir mal im Speicher zwischen 20000 ($4E20) und z.B. 22000 ($55F0).
Wenn die Variable sich in diesem Bereich aufhält passiert irgendwann eine bestimmte Aktion.
Wie mache ich das am geschicktesten?
Gruß
Peter
Variablen vergleichen in Assembler
Moderator: Rockford
-
- Beiträge: 86
- Registriert: 20.09.2021 20:59
- Has thanked: 8 times
- Been thanked: 42 times
- Kontaktdaten:
Re: Variablen vergleichen in Assembler
Zwei 16-Bit-Variablen kannst du so vergleichen:
lda var1
cmp var2
lda var1+1
sbc var2+1
bcc var1_ist_kleiner_var2
(oder: bcs var1_ist_groeßergleich_var2)
Bei dir ist var2 eine Konstante, setze also lower_limit = $4e20 und ersetze var2 durch #<lower_limit sowie var2+1 durch #>lower_limit. Und dann ein zweiter Vergleich mit higher_limit = $55f0.
lda var1
cmp var2
lda var1+1
sbc var2+1
bcc var1_ist_kleiner_var2
(oder: bcs var1_ist_groeßergleich_var2)
Bei dir ist var2 eine Konstante, setze also lower_limit = $4e20 und ersetze var2 durch #<lower_limit sowie var2+1 durch #>lower_limit. Und dann ein zweiter Vergleich mit higher_limit = $55f0.
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast