Dyskusja:Suma kontrolna SIO
From Atariki
Wersja z dnia 09:43, 19 sty 2011 Xxl (Dyskusja | wkład) (prpopozycja) ← 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ę.) |
||
Linia 12: | Linia 12: | ||
[[Użytkownik:Xxl|Xxl]] 10:43, 19 sty 2011 (CET) | [[Użytkownik:Xxl|Xxl]] 10:43, 19 sty 2011 (CET) | ||
+ | |||
+ | A nie szybciej: | ||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
+ | ? [[Użytkownik:Mono|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. [[Użytkownik:KMK|KMK]] 20:58, 19 sty 2011 (CET) |
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)