Frage zu 16 Bit Zahlen in 6502 Assembler


Frage zu 16 Bit Zahlen in 6502 Assembler

von 8bitjunkie » Mi 19. Jun 2013, 21:10
Hallo Zusammen,

ich stehe grade mit meinem Kopf vor ner massiven Wand, die passt leider nicht in mein Traumland :cry:

Ich habe eine Adresse stehen in sagen wir mal $Ce und $CF (Soll ein Pointer zu einer Datenstruktur sein)

Nun möchte ich (mehrmals) einen Wert (z.B, eine 9 ) zu diesem Pointer, also zu der Adresse in $CE/$CF dazuzählen.

Irgendwann gibt es im low-Byte ja einen Überlauf, und ich müsste das abfangen, und das Highbyte um 1 erhöhen und das Lowbyte entsprechend verringern.

Wie macht man das am elegantesten?

1000 Dank!
Thomas

Re: Frage zu 16 Bit Zahlen in 6502 Assembler

von 8bitjunkie » Mi 19. Jun 2013, 23:46
Das habe ich mir überlegt.
Scheint zu funktionieren, aber geht das noch "kürzer" / "eleganter" ?

lda #9
clc
adc $CE
bcc weiter
inc $CF
weiter:

Re: Frage zu 16 Bit Zahlen in 6502 Assembler

von Bernd » Do 20. Jun 2013, 07:21
8bitjunkie hat geschrieben:Das habe ich mir überlegt.
Scheint zu funktionieren, aber geht das noch "kürzer" / "eleganter" ?

lda #9
clc
adc $CE
bcc weiter
inc $CF
weiter:


Ich würde es auch so machen, kürzer wird es nicht werden. Es fehlt aber etwas, die errechnete Low Adresse sollte man speichern, der Zeiger steht noch auf dem alten Wert.

lda #9
clc
adc $CE
sta $CE. -> speichern
bcc weiter
inc $CF
weiter:

Re: Frage zu 16 Bit Zahlen in 6502 Assembler

von 8bitjunkie » Do 20. Jun 2013, 13:05
Hallo Bernd,

ach ja, stimmt natürlich :-)

Danke sehr!