Dyskusja:Suma kontrolna SIO
From Atariki
to jest chyba bardziej czytelne, krotsze i szybsze
LDX #$00
TXA
CLC
CRC ADC DATA,X
ADC #$00
INX
BNE CRC
STA CHKSUM
Xxl 10:43, 19 sty 2011 (CET)
A nie szybciej:
ldx #0
txa
clc
?loop: adc data,x
adc data+$100,x ;w przypadku 512bps
inx
bne ?loop ;bpl w przypadku 128bps
adc #0
sta chksum
? Mono 12:45, 19 sty 2011 (CET)
Panowie, wasze wersje są szybsze itd. ale to nie jest konkurs na najszybsze obliczenie sumy 256 bajtów, tylko przykład mający uwidocznić algorytm obliczania cząstkowych składników sumy kontrolnej przez SIO. Kluczowym elementem przykładu są rozkazy wewnątrz pętli, a jak wygląda pętla dookoła oraz ile bajtów sumujemy, to jest w tym miejscu b. mało ważne, chodzi o ideę i o to, żeby jej nie zaciemniać przez zoptymalizowanie pętli pod (np.) konkretny rozmiar bloku. Wiadomo, że SIO robi to jeszcze nieco inaczej, bo nie jest tak, żeby bloki miały tylko 128, 256 i 512 bajtów. Wiadomo też, że każdy koder sobie to przystosuje do szczegółowych wymogów swojego programu. KMK 20:58, 19 sty 2011 (CET)
