crc68.s

来自「完整的解压zip文件的源码。包含密码功能」· S 代码 · 共 92 行

S
92
字号
.text.globl  _crc32          ; (ulg val, uch *buf, extent bufsize).globl  _get_crc_table  ; ulg *get_crc_table(void)_crc32:        move.l  8(sp),d0        bne    valid        moveq  #0,d0        rtsvalid:  movem.l d2/d3,-(sp)	jsr     _get_crc_table        move.l  d0,a0         move.l  12(sp),d0         move.l  16(sp),a1         move.l  20(sp),d1         not.l   d0         move.l  d1,d2         lsr.l   #3,d1         bra     decr8loop8:  moveq  #0,d3 	move.b (a1)+,d3 	eor.b  d0,d3	lsl.w  #2,d3	move.l 0(a0,d3.w),d3	lsr.l  #8,d0	eor.l  d3,d0          moveq  #0,d3 	move.b (a1)+,d3 	eor.b  d0,d3 	lsl.w  #2,d3 	move.l 0(a0,d3.w),d3 	lsr.l  #8,d0 	eor.l  d3,d0          moveq  #0,d3 	move.b (a1)+,d3 	eor.b  d0,d3 	lsl.w  #2,d3 	move.l 0(a0,d3.w),d3 	lsr.l  #8,d0 	eor.l  d3,d0          moveq  #0,d3 	move.b (a1)+,d3 	eor.b  d0,d3 	lsl.w  #2,d3 	move.l 0(a0,d3.w),d3 	lsr.l  #8,d0 	eor.l  d3,d0          moveq  #0,d3 	move.b (a1)+,d3 	eor.b  d0,d3 	lsl.w  #2,d3 	move.l 0(a0,d3.w),d3 	lsr.l  #8,d0 	eor.l  d3,d0          moveq  #0,d3 	move.b (a1)+,d3 	eor.b  d0,d3 	lsl.w  #2,d3 	move.l 0(a0,d3.w),d3 	lsr.l  #8,d0 	eor.l  d3,d0          moveq  #0,d3 	move.b (a1)+,d3 	eor.b  d0,d3 	lsl.w  #2,d3 	move.l 0(a0,d3.w),d3 	lsr.l  #8,d0 	eor.l  d3,d0          moveq  #0,d3 	move.b	(a1)+,d3 	eor.b  d0,d3 	lsl.w  #2,d3 	move.l 0(a0,d3.w),d3 	lsr.l  #8,d0 	eor.l  d3,d0  decr8:  dbra   d1,loop8	and.w   #7,d2         bra     decr1loop1:  moveq  #0,d3 	move.b (a1)+,d3 	eor.b  d0,d3 	lsl.w  #2,d3 	move.l 0(a0,d3.w),d3 	lsr.l  #8,d0 	eor.l  d3,d0  decr1:  dbra   d2,loop1done:   movem.l (sp)+,d2/d3         not.l   d0         rts

⌨️ 快捷键说明

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