📄 adler32.inc
字号:
; ----------------------------------------------------- ;
; Adler32 checksum algorithm ;
; ----------------------------------------------------- ;
align 4
proc Adler32_Init,Adler32:PDWORD
mov eax,[Adler32]
mov dword [eax],1
ret
endp
align 4
proc Adler32_Update uses ebx esi,Buffer:PBYTE,BufSize:DWORD,Adler32:PDWORD
mov esi,[Buffer]
mov ecx,[BufSize]
mov ebx,[Adler32]
mov ebx,[ebx]
mov edx,ebx
shr edx,16
shl ebx,16
shr ebx,16
xor eax,eax
jecxz .a32_end
.a32_loop:
mov al,[esi]
add ebx,eax
cmp ebx,$FFF1
jb @f
sub ebx,$FFF1
@@: add edx,ebx
cmp edx,$FFF1
jb @f
sub edx,$FFF1
@@: inc esi
loop .a32_loop
.a32_end:
shl edx,16
add edx,ebx
mov eax,[Adler32]
mov [eax],edx
ret
endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -