Puh, entweder habe ich gerade einen Knoten im Hirn, oder es ist wirklich so kompliziert.
ich habe es zwar jetzt hinbekommen, aber bestimmt zu kompliziert und daher zu langsam.
Ich möchte eine Bedingung abfragen in folgender Form:
wenn wert a (16 Bit) ist größer 999, dann springe zu loop1
Vergleich mit einer 16 Bit Zahl
Moderator: Rockford
-
- Beiträge: 1009
- Registriert: 04.11.2021 15:52
- Has thanked: 121 times
- Been thanked: 306 times
- Kontaktdaten:
Vergleich mit einer 16 Bit Zahl
Wie wäre es mit:
SEC
LDA a.lo
SBC #$E7
LDA a.hi
SBC #$3
BCS loop1
RTS
loop1 ...
SEC
LDA a.lo
SBC #$E7
LDA a.hi
SBC #$3
BCS loop1
RTS
loop1 ...
Wenn man sein Alter hexadezimal angibt kann man gleich wieder Bäume ausreißen 

- Dr. Irata
- Beiträge: 1265
- Registriert: 24.08.2021 14:40
- Has thanked: 182 times
- Been thanked: 417 times
- Kontaktdaten:
Re: Vergleich mit einer 16 Bit Zahl
tatsächlich habe ich es jetzt so gelöst:
Code: Alles auswählen
loop1
sec
lda var
sbc #$e8
sta var
lda var+1
sbc #$03
sbc #0
sta var+1
bmi weiter
... Anweisung ...
jmp loop1
weiter
- JAC!
- Beiträge: 177
- Registriert: 18.06.2021 23:13
- Has thanked: 134 times
- Been thanked: 177 times
- Kontaktdaten:
Re: Vergleich mit einer 16 Bit Zahl
Wieso sbc #0
Und dein Code wird für große Highbytes nicht funktionieren. Der von Erhard ist meiner Meinung nach die minimale korrekte Lösung
Und dein Code wird für große Highbytes nicht funktionieren. Der von Erhard ist meiner Meinung nach die minimale korrekte Lösung
Visit https://www.wudsn.com the home of WUDSN IDE.
- Mathy
- Beiträge: 1754
- Registriert: 18.06.2021 11:13
- Wohnort: Heerlen, NL
- Has thanked: 846 times
- Been thanked: 481 times
- Kontaktdaten:
Re: Vergleich mit einer 16 Bit Zahl
.
Hallo Peter
Tschüß
Mathy
Hallo Peter
Na ja, wenn einer das selber checken kann, dann doch Du...




Tschüß
Mathy
Schreibe nicht der Absicht zu, was man mit Dummheit oder Ignoranz erklären kann.
- Dr. Irata
- Beiträge: 1265
- Registriert: 24.08.2021 14:40
- Has thanked: 182 times
- Been thanked: 417 times
- Kontaktdaten:
Re: Vergleich mit einer 16 Bit Zahl
... die Anfrage war insofern ungeschickt, weil es auf etwas anderes abzielte.
ich wollte nun doch noch den scheinbare einfache Ansatz zur Konvertierung einer 16-Bit-Zahl von dezimal in einzelne Ziffern machen.
Dann muss von der Zahl jeweils x-mal 10000 / 1000 / 100 / 10 / 1 abgezogen werden, daraus extrahiert man dann die einzelnen Ziffern / Stellen für die Darstellung der Zahl. Wenn man dann jeweils noch vorher abfragt, ob die Zahl über 10000 / 1000 liegt, kann man für einen kleinen Score die ersten beiden etwas aufwendigeren Schritte schnell überspringen.
Die "tausender" Stelle abzufragen erreicht man dann durch den Teilcode, den ich gepostet habe (sbc #0 kann wirklich weg) - das funktioniert.
Ich habe den Code bis zur 100 er Stelle fertig, ihn dann aber verworfen. Es geht, ist aber vom Code her deutlich länger, als der von PP und Janko und auch mutmaßlich langsamer. Macht also keinen Sinn diesen Ansatz zu verfolgen, auch wenn er vielleicht mathematisch verständlicher ist!
LG Peter
ich wollte nun doch noch den scheinbare einfache Ansatz zur Konvertierung einer 16-Bit-Zahl von dezimal in einzelne Ziffern machen.
Dann muss von der Zahl jeweils x-mal 10000 / 1000 / 100 / 10 / 1 abgezogen werden, daraus extrahiert man dann die einzelnen Ziffern / Stellen für die Darstellung der Zahl. Wenn man dann jeweils noch vorher abfragt, ob die Zahl über 10000 / 1000 liegt, kann man für einen kleinen Score die ersten beiden etwas aufwendigeren Schritte schnell überspringen.
Die "tausender" Stelle abzufragen erreicht man dann durch den Teilcode, den ich gepostet habe (sbc #0 kann wirklich weg) - das funktioniert.
Ich habe den Code bis zur 100 er Stelle fertig, ihn dann aber verworfen. Es geht, ist aber vom Code her deutlich länger, als der von PP und Janko und auch mutmaßlich langsamer. Macht also keinen Sinn diesen Ansatz zu verfolgen, auch wenn er vielleicht mathematisch verständlicher ist!
LG Peter
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast