Dyskusja:Suma kontrolna SIO

From Atariki

Jump to: navigation, search

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)

Personal tools