Dyskusja:Inkrementacja i dekrementacja liczb wielobajtowych: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
m rekurencyjny dec |
m formatowanie |
||
| Linia 9: | Linia 9: | ||
gdzie n to ilość bajtów w liczbie LSB..MSB, analogicznie oczywiście można zastępując inx na dex potraktować liczby MSB..LSB. Dla ZPG obcinamy -$100. [[Użytkownik:Mono|Mono]] 16:26, 4 wrz 2011 (CEST) | gdzie n to ilość bajtów w liczbie LSB..MSB, analogicznie oczywiście można zastępując inx na dex potraktować liczby MSB..LSB. Dla ZPG obcinamy -$100. [[Użytkownik:Mono|Mono]] 16:26, 4 wrz 2011 (CEST) | ||
Nieco inaczej z dec: | Nieco inaczej z dec: | ||
ldx #-n-1 | |||
?dec: | ?dec: | ||
inx | |||
beq ?ret | |||
lda data-$100+n,x | |||
sne | |||
jsr ?dec | |||
dec data-$100+n,x | |||
dex | |||
?ret: | ?ret: | ||
rts | |||
Niestety angażuje stos :/ (mając tę procedurkę myślałem, jak ją przerobić na iteracyjną, ale zrobiłem to za szybko - dlatego usunąłem poprzednie przemyślenia). [[Użytkownik:Mono|Mono]] 16:36, 4 wrz 2011 (CEST) | Niestety angażuje stos :/ (mając tę procedurkę myślałem, jak ją przerobić na iteracyjną, ale zrobiłem to za szybko - dlatego usunąłem poprzednie przemyślenia). [[Użytkownik:Mono|Mono]] 16:36, 4 wrz 2011 (CEST) | ||
Wersja z 4 wrz 2011, 15:37
A co myślałbyś o takim fragmencie:
ldx #-n-1 ?loop: inx beq ?ret inc data-$100+n,x beq ?loop ?ret:
gdzie n to ilość bajtów w liczbie LSB..MSB, analogicznie oczywiście można zastępując inx na dex potraktować liczby MSB..LSB. Dla ZPG obcinamy -$100. Mono 16:26, 4 wrz 2011 (CEST) Nieco inaczej z dec:
ldx #-n-1 ?dec: inx beq ?ret lda data-$100+n,x sne jsr ?dec dec data-$100+n,x dex ?ret: rts
Niestety angażuje stos :/ (mając tę procedurkę myślałem, jak ją przerobić na iteracyjną, ale zrobiłem to za szybko - dlatego usunąłem poprzednie przemyślenia). Mono 16:36, 4 wrz 2011 (CEST)