Dyskusja:Suma kontrolna SIO

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 19:58, 19 sty 2011
KMK (Dyskusja | wkład)

← Previous diff
Aktualna wersja
Krótki (Dyskusja | wkład)
(Dyskusja:CRC moved to Dyskusja:Suma kontrolna SIO: Artykuł de facto opisuje sumę kontrolną SIO, hasło "CRC" tylko komplikuje sprawę.)

Aktualna wersja

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