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)