THash_XOR32.FCRC可以用0代替!procedure THash_XOR32.Calc(const Data; DataSize: Integer); assembler; register;
asm
TEST ECX,ECX
JLE @Exit
PUSH EAX
MOV EAX,[EAX].THash_XOR32.FCRC
TEST ECX,1
JE @@1
XOR AX,[EDX]
INC EDX
@@1: SHR ECX,1
JECXZ @@3
@@2: ROL EAX,5
XOR AX,[EDX]
ADD EDX,2
DEC ECX
JNZ @@2
@@3: POP EDX
MOV [EDX].THash_XOR32.FCRC,EAX
@Exit:
end;
asm
TEST ECX,ECX
JLE @Exit
PUSH EAX
MOV EAX,[EAX].THash_XOR32.FCRC
TEST ECX,1
JE @@1
XOR AX,[EDX]
INC EDX
@@1: SHR ECX,1
JECXZ @@3
@@2: ROL EAX,5
XOR AX,[EDX]
ADD EDX,2
DEC ECX
JNZ @@2
@@3: POP EDX
MOV [EDX].THash_XOR32.FCRC,EAX
@Exit:
end;
帮你顶!