⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc32.inc

📁 The dinamyc link library that contains an implementation of SHA1, SHA512, CRC32, CRC32b, Adler32, Tw
💻 INC
字号:

; ----------------------------------------------------- ;
;    CRC32 checksum algorithm (Ethernet, FDDI)          ;
; ----------------------------------------------------- ;

align 4
proc CRC32_Init,CRC32:PDWORD
     mov eax,[CRC32]
     mov dword [eax],$FFFFFFFF
     ret
endp

align 4
proc CRC32_Update uses ebx,Buffer:PBYTE,BufSize:DWORD,CRC32:PDWORD
     mov ebx,[CRC32]
     mov ebx,[ebx]
     mov ecx,[BufSize]
     jecxz .crc32_end
     mov edx,[Buffer]
.crc32_loop:
     mov eax,ebx
     shl eax,8
     shr ebx,24
     xor bl,[edx]
     mov ebx,[crc32_table+ebx*4]
     xor ebx,eax
     inc edx
     loop .crc32_loop
.crc32_end:
     mov eax,[CRC32]
     mov [eax],ebx
     ret
endp

align 4
proc CRC32_Final,CRC32:PDWORD
     mov eax,[CRC32]
     xor dword [eax],$FFFFFFFF
     ret
endp

; ----------------------------------------------------- ;
;    CRC32b checksum algorithm (ZMODEM, PKZIP)          ;
; ----------------------------------------------------- ;

align 4
proc CRC32b_Init,CRC32b:PDWORD
     mov eax,[CRC32b]
     mov dword [eax],$FFFFFFFF
     ret
endp

align 4
proc CRC32b_Update uses ebx,Buffer:PBYTE,BufSize:DWORD,CRC32b:PDWORD
     mov ebx,[CRC32b]
     mov ebx,[ebx]
     mov ecx,[BufSize]
     jecxz .crc32b_end
     mov edx,[Buffer]
.crc32b_loop:
     mov eax,ebx
     shr eax,8
     xor bl,[edx]
     and ebx,255
     mov ebx,[crc32b_table+ebx*4]
     xor ebx,eax
     inc edx
     loop .crc32b_loop
.crc32b_end:
     mov eax,[CRC32b]
     mov [eax],ebx
     ret
endp

align 4
proc CRC32b_Final,CRC32b:PDWORD
     mov eax,[CRC32b]
     xor dword [eax],$FFFFFFFF
     ret
endp

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -