Vergleich mit einer 16 Bit Zahl

Moderator: Rockford

Antworten
Benutzeravatar
Dr. Irata
Beiträge: 1265
Registriert: 24.08.2021 14:40
Has thanked: 182 times
Been thanked: 417 times
Kontaktdaten:

Vergleich mit einer 16 Bit Zahl

Beitrag von Dr. Irata »

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

Erhard
Beiträge: 1009
Registriert: 04.11.2021 15:52
Has thanked: 121 times
Been thanked: 306 times
Kontaktdaten:

Vergleich mit einer 16 Bit Zahl

Beitrag von Erhard »

Wie wäre es mit:

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 :-)

Benutzeravatar
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

Beitrag von Dr. Irata »

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				

Benutzeravatar
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

Beitrag von JAC! »

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
Visit https://www.wudsn.com the home of WUDSN IDE.

Benutzeravatar
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

Beitrag von Mathy »

.
Hallo Peter

Dr. Irata hat geschrieben:
26.05.2025 16:07
... entweder habe ich gerade einen Knoten im Hirn ...
Na ja, wenn einer das selber checken kann, dann doch Du... :roll: :D :lol: :mrgreen:

Tschüß

Mathy
Schreibe nicht der Absicht zu, was man mit Dummheit oder Ignoranz erklären kann.

Benutzeravatar
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

Beitrag von Dr. Irata »

... 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

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast