Rev 6883 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
589 | diamond | 1 | init_crc_table: |
2 | xor edx, edx |
||
3 | mov edi, crc_table |
||
4 | .1: |
||
5 | mov ecx, 8 |
||
6 | mov eax, edx |
||
7 | .2: |
||
8 | shr eax, 1 |
||
9 | jnc @f |
||
10 | xor eax, 0xEDB88320 |
||
11 | @@: |
||
12 | loop .2 |
||
13 | stosd |
||
14 | inc dl |
||
15 | jnz .1 |
||
16 | ret |
||
17 | |||
6883 | IgorA | 18 | crc_continue: |
19 | ; in: eax = pervios crc, ecx = size, esi->buffer |
||
20 | ; out: eax = crc |
||
6888 | IgorA | 21 | xor eax, -1 |
22 | jecxz crc.end |
||
23 | jmp crc.loop |
||
6883 | IgorA | 24 | |
589 | diamond | 25 | crc: |
26 | ; in: ecx=size, esi->buffer |
||
27 | ; out: eax=crc |
||
28 | or eax, -1 |
||
29 | jecxz .end |
||
30 | .loop: |
||
31 | movzx edx, al |
||
32 | xor dl, byte [esi] |
||
33 | inc esi |
||
34 | shr eax, 8 |
||
35 | xor eax, [crc_table+edx*4] |
||
36 | loop .loop |
||
37 | .end: |
||
38 | xor eax, -1 |
||
39 | ret |