kolibrios/programs/fs/kfar/trunk/kfar_arc/crc.inc
IgorA 6bc316c46e fix continue crc calculation in 'archiver.obj'
git-svn-id: svn://kolibrios.org@6883 a494cfbc-eb01-0410-851d-a64ba20cac60
2017-04-06 06:42:07 +00:00

39 lines
748 B
PHP

init_crc_table:
xor edx, edx
mov edi, crc_table
.1:
mov ecx, 8
mov eax, edx
.2:
shr eax, 1
jnc @f
xor eax, 0xEDB88320
@@:
loop .2
stosd
inc dl
jnz .1
ret
crc_continue:
; in: eax = pervios crc, ecx = size, esi->buffer
; out: eax = crc
xor eax,-1
jmp crc.loop
crc:
; in: ecx=size, esi->buffer
; out: eax=crc
or eax, -1
jecxz .end
.loop:
movzx edx, al
xor dl, byte [esi]
inc esi
shr eax, 8
xor eax, [crc_table+edx*4]
loop .loop
.end:
xor eax, -1
ret