[阅读: 839] 2005-11-25 09:16:29
function CRC32(const Data; Size, CRC: LongWord): LongWord;
asm
PUSH EBX
MOV EBX, EAX //EBX := @Data
MOV EAX, ECX //EAX := CRC
PUSH ESI
TEST EDX, EDX //if Size=0 then exit
JE @@exit
@@loop: MOVZX ESI, BYTE PTR [EBX]
MOVZX ECX, AL
XOR ECX, ESI
SHR EAX, 8
XOR EAX, DWORD PTR [CRC32Table + ECX*4]
INC EBX
DEC EDX
JNE @@loop
@@exit: POP ESI
POP EBX
end;
李战(leadzen)