Subversion Repositories Kolibri OS

Rev

Rev 589 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

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