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

📄 fec.s16.980624a

📁 当前很多文章多提到的lugi的reed-solomon编码的源代码
💻 980624A
📖 第 1 页 / 共 2 页
字号:
	jl L178L176:	movl -16(%ebp),%esi	movw (%esi),%ax	movl -12(%ebp),%ebx	movw %ax,-2(%ebx,%edi,2)	movl $1,%ecx	cmpl %edi,%ecx	jge L181	leal -1(%edi),%esi	movl %esi,-24(%ebp)	.align 2,0x90L183:	movl -16(%ebp),%ebx	movw (%ebx,%ecx,2),%bx	movw %bx,-20(%ebp)	movl %edi,%edx	subl %ecx,%edx	cmpl %edx,-24(%ebp)	jle L185	movzwl %bx,%esi	movl %esi,-36(%ebp)	leal -1(%edi),%ebx	movl %ebx,-32(%ebp)	.align 2,0x90L187:	movl -12(%ebp),%esi	movzwl 2(%esi,%edx,2),%eax	cmpl $0,-36(%ebp)	je L190	testl %eax,%eax	jne L189L190:	xorl %eax,%eax	jmp L188	.align 2,0x90L189:	movl -36(%ebp),%ebx	movl _gf_log(,%ebx,4),%ebx	addl _gf_log(,%eax,4),%ebx	movl %ebx,%eax	movw _gf_exp(,%eax,2),%axL188:	movl -12(%ebp),%esi	xorw %ax,(%esi,%edx,2)	incl %edx	cmpl %edx,-32(%ebp)	jg L187L185:	movw -20(%ebp),%si	movl -12(%ebp),%ebx	xorw %si,-2(%ebx,%edi,2)	incl %ecx	cmpl %edi,%ecx	jl L183L181:	movl $0,-4(%ebp)	cmpl %edi,-4(%ebp)	jge L194	.align 2,0x90L196:	movl -4(%ebp),%ebx	movl -16(%ebp),%esi	movw (%esi,%ebx,2),%ax	movw $1,-28(%ebp)	movl -8(%ebp),%ebx	movw $1,-2(%ebx,%edi,2)	leal -2(%edi),%ecx	testl %ecx,%ecx	jl L198	andl $65535,%eax	movl %eax,-36(%ebp)	.align 2,0x90L200:	movl -8(%ebp),%esi	movzwl 2(%esi,%ecx,2),%eax	cmpl $0,-36(%ebp)	je L203	testl %eax,%eax	jne L202L203:	xorl %eax,%eax	jmp L201	.align 2,0x90L202:	movl -36(%ebp),%ebx	movl _gf_log(,%ebx,4),%ebx	addl _gf_log(,%eax,4),%ebx	movl %ebx,%eax	movw _gf_exp(,%eax,2),%axL201:	movl -12(%ebp),%esi	xorw 2(%esi,%ecx,2),%ax	movl -8(%ebp),%esi	movw %ax,(%esi,%ecx,2)	movl -36(%ebp),%edx	movzwl -28(%ebp),%eax	testl %edx,%edx	je L206	testl %eax,%eax	jne L205L206:	xorl %eax,%eax	jmp L204	.align 2,0x90L205:	movl _gf_log(,%edx,4),%edx	addl _gf_log(,%eax,4),%edx	movl %edx,%eax	movw _gf_exp(,%eax,2),%axL204:	movl -8(%ebp),%ebx	xorw (%ebx,%ecx,2),%ax	movw %ax,-28(%ebp)	decl %ecx	jns L200L198:	xorl %ecx,%ecx	cmpl %edi,%ecx	jge L195	movzwl -28(%ebp),%esi	movl %esi,-36(%ebp)	.align 2,0x90L211:	movl -36(%ebp),%ebx	movzwl _inverse(,%ebx,2),%edx	movl -8(%ebp),%esi	movzwl (%esi,%ecx,2),%eax	testl %edx,%edx	je L214	testl %eax,%eax	jne L213L214:	xorl %edx,%edx	jmp L212	.align 2,0x90L213:	movl _gf_log(,%edx,4),%edx	addl _gf_log(,%eax,4),%edx	movl %edx,%eax	movw _gf_exp(,%eax,2),%dxL212:	movl %ecx,%eax	imull %edi,%eax	addl -4(%ebp),%eax	movl 8(%ebp),%ebx	movw %dx,(%ebx,%eax,2)	incl %ecx	cmpl %edi,%ecx	jl L211L195:	incl -4(%ebp)	cmpl %edi,-4(%ebp)	jl L196L194:	pushl -12(%ebp)	call _free	pushl -8(%ebp)	call _free	pushl -16(%ebp)	call _freeL218:	xorl %eax,%eax	leal -48(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe6:	.size	 _invert_vdm,Lfe6-_invert_vdm.data	.align 2	.type	 _fec_initialized,@object	.size	 _fec_initialized,4_fec_initialized:	.long 0.text	.align 2	.type	 _init_fec,@function_init_fec:	pushl %ebp	movl %esp,%ebp	call _generate_gf	movl $1,_fec_initialized	leave	retLfe7:	.size	 _init_fec,Lfe7-_init_fecLC25:	.ascii "bad parameters to fec_free\12\0"	.align 2.globl _fec_free	.type	 _fec_free,@function_fec_free:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movl 8(%ebp),%ebx	testl %ebx,%ebx	je L222	movl 8(%ebx),%eax	xorl $-20181524,%eax	xorl 4(%ebx),%eax	xorl 12(%ebx),%eax	cmpl %eax,(%ebx)	je L221L222:	pushl $LC25	pushl $___sF+176	call _fprintf	jmp L220	.align 2,0x90L221:	pushl 12(%ebx)	call _free	pushl %ebx	call _freeL220:	movl -4(%ebp),%ebx	leave	retLfe8:	.size	 _fec_free,Lfe8-_fec_freeLC26:	.ascii "Invalid parameters k %d n %d GF_SIZE %d\12\0"LC27:	.ascii "new_code\0"	.align 2.globl _fec_new	.type	 _fec_new,@function_fec_new:	pushl %ebp	movl %esp,%ebp	subl $20,%esp	pushl %edi	pushl %esi	pushl %ebx	movl 8(%ebp),%edi	cmpl $0,_fec_initialized	jne L224	call _init_fecL224:	cmpl $65536,%edi	jg L226	cmpl $65536,12(%ebp)	jg L226	cmpl %edi,12(%ebp)	jge L225L226:	pushl $65535	pushl 12(%ebp)	pushl %edi	pushl $LC26	pushl $___sF+176	call _fprintf	xorl %eax,%eax	jmp L252	.align 2,0x90L225:	pushl $LC27	pushl $16	call _my_malloc	movl %eax,-8(%ebp)	movl %edi,4(%eax)	movl 12(%ebp),%esi	movl -8(%ebp),%edx	movl %esi,8(%edx)	pushl $LC19	movl 12(%ebp),%ebx	imull %edi,%ebx	addl %ebx,%ebx	pushl %ebx	call _my_malloc	movl -8(%ebp),%edx	movl %eax,12(%edx)	movl 12(%ebp),%eax	xorl $-20181524,%eax	xorl %edi,%eax	movl -8(%ebp),%edx	xorl 12(%edx),%eax	movl %eax,(%edx)	pushl $LC19	pushl %ebx	call _my_malloc	movl %eax,-4(%ebp)	movw $1,(%eax)	movl $1,%ecx	addl $24,%esp	cmpl %edi,%ecx	jge L228	.align 2,0x90L230:	movl -4(%ebp),%esi	movw $0,(%esi,%ecx,2)	incl %ecx	cmpl %edi,%ecx	jl L230L228:	movl -4(%ebp),%edx	leal (%edx,%edi,2),%edx	movl %edx,-20(%ebp)	xorl %ebx,%ebx	movl 12(%ebp),%eax	decl %eax	cmpl %eax,%ebx	jge L233	leal (%edi,%edi),%esi	movl %esi,-16(%ebp)	movl 12(%ebp),%edx	decl %edx	movl %edx,-12(%ebp)	.align 2,0x90L235:	xorl %ecx,%ecx	cmpl %edi,%ecx	jge L234	.align 2,0x90L239:	movl %ebx,%eax	imull %ecx,%eax	cmpl $65534,%eax	jle L242	.align 2,0x90L243:	addl $-65535,%eax	movl %eax,%edx	sarl $16,%edx	andl $65535,%eax	addl %edx,%eax	cmpl $65534,%eax	jg L243L242:	andl $65535,%eax	movw _gf_exp(,%eax,2),%ax	movl -20(%ebp),%esi	movw %ax,(%esi,%ecx,2)	incl %ecx	cmpl %edi,%ecx	jl L239L234:	incl %ebx	movl -16(%ebp),%edx	addl %edx,-20(%ebp)	cmpl %ebx,-12(%ebp)	jg L235L233:	pushl %edi	pushl -4(%ebp)	call _invert_vdm	pushl %edi	pushl %edi	movl 12(%ebp),%eax	subl %edi,%eax	pushl %eax	movl %edi,%ebx	imull %edi,%ebx	addl %ebx,%ebx	movl %ebx,%eax	movl -8(%ebp),%esi	addl 12(%esi),%eax	pushl %eax	pushl -4(%ebp)	movl -4(%ebp),%eax	addl %ebx,%eax	pushl %eax	call _matmul	addl $32,%esp	pushl %ebx	pushl 12(%esi)	call _bzero	movl 12(%esi),%edx	movl %edx,-20(%ebp)	xorl %ecx,%ecx	addl $8,%esp	cmpl %edi,%ecx	jge L248	leal 2(,%edi,2),%eax	.align 2,0x90L250:	movl -20(%ebp),%esi	movw $1,(%esi)	incl %ecx	addl %eax,%esi	movl %esi,-20(%ebp)	cmpl %edi,%ecx	jl L250L248:	pushl -4(%ebp)	call _free	movl -8(%ebp),%eaxL252:	leal -32(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe9:	.size	 _fec_new,Lfe9-_fec_newLC28:	.ascii "Invalid index %d (max %d)\12\0"	.align 2.globl _fec_encode	.type	 _fec_encode,@function_fec_encode:	pushl %ebp	movl %esp,%ebp	subl $4,%esp	pushl %edi	pushl %esi	pushl %ebx	movl 8(%ebp),%ebx	movl 20(%ebp),%edx	movl 4(%ebx),%ecx	movl %ecx,-4(%ebp)	movl 24(%ebp),%eax	shrl $31,%eax	addl 24(%ebp),%eax	movl %eax,%esi	sarl $1,%esi	cmpl %ecx,%edx	jge L255	leal (%esi,%esi),%eax	pushl %eax	pushl 16(%ebp)	movl 12(%ebp),%ecx	pushl (%ecx,%edx,4)	call _bcopy	jmp L256	.align 2,0x90L255:	cmpl %edx,8(%ebx)	jle L257	movl -4(%ebp),%eax	imull %edx,%eax	addl %eax,%eax	movl %eax,%edi	addl 12(%ebx),%edi	leal (%esi,%esi),%eax	pushl %eax	pushl 16(%ebp)	call _bzero	xorl %ebx,%ebx	addl $8,%esp	cmpl %ebx,-4(%ebp)	jle L256	.align 2,0x90L261:	cmpw $0,(%edi,%ebx,2)	je L260	pushl %esi	movzwl (%edi,%ebx,2),%eax	pushl %eax	movl 12(%ebp),%ecx	pushl (%ecx,%ebx,4)	pushl 16(%ebp)	call _addmul1	addl $16,%espL260:	incl %ebx	cmpl %ebx,-4(%ebp)	jg L261	jmp L256	.align 2,0x90L257:	movl 8(%ebx),%eax	decl %eax	pushl %eax	pushl %edx	pushl $LC28	pushl $___sF+176	call _fprintfL256:	leal -16(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe10:	.size	 _fec_encode,Lfe10-_fec_encode	.align 2	.type	 _shuffle,@function_shuffle:	pushl %ebp	movl %esp,%ebp	pushl %edi	pushl %esi	pushl %ebx	movl 8(%ebp),%edi	movl 12(%ebp),%esi	xorl %ecx,%ecxL276:	cmpl %ecx,16(%ebp)	jle L267	movl 16(%ebp),%edx	cmpl %edx,(%esi,%ecx,4)	jge L271	cmpl %ecx,(%esi,%ecx,4)	jne L270L271:	incl %ecx	jmp L276	.align 2,0x90L270:	movl (%esi,%ecx,4),%ebx	cmpl %ebx,(%esi,%ebx,4)	jne L273	movl $1,%eax	jmp L275	.align 2,0x90L273:	movl (%esi,%ecx,4),%edx	movl (%esi,%ebx,4),%eax	movl %eax,(%esi,%ecx,4)	movl %edx,(%esi,%ebx,4)	movl (%edi,%ecx,4),%edx	movl (%edi,%ebx,4),%eax	movl %eax,(%edi,%ecx,4)	movl %edx,(%edi,%ebx,4)	jmp L276	.align 2,0x90L267:	xorl %eax,%eaxL275:	leal -12(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe11:	.size	 _shuffle,Lfe11-_shuffleLC29:	.ascii "decode: invalid index %d (max %d)\12\0"	.align 2	.type	 _build_decode_matrix,@function_build_decode_matrix:	pushl %ebp	movl %esp,%ebp	subl $8,%esp	pushl %edi	pushl %esi	pushl %ebx	movl 8(%ebp),%ecx	movl 4(%ecx),%edi	pushl $LC19	movl %edi,%eax	imull %edi,%eax	addl %eax,%eax	pushl %eax	call _my_malloc	movl %eax,-4(%ebp)	xorl %ebx,%ebx	movl -4(%ebp),%esi	addl $8,%esp	cmpl %edi,%ebx	jge L279	leal (%edi,%edi),%ecx	movl %ecx,-8(%ebp)	.align 2,0x90L281:	movl 16(%ebp),%ecx	cmpl %edi,(%ecx,%ebx,4)	jge L282	pushl -8(%ebp)	pushl %esi	call _bzero	movw $1,(%esi,%ebx,2)	addl $8,%esp	jmp L280	.align 2,0x90L282:	movl 16(%ebp),%ecx	movl (%ecx,%ebx,4),%edx	movl 8(%ebp),%ecx	cmpl %edx,8(%ecx)	jg L284	movl 8(%ecx),%eax	decl %eax	pushl %eax	pushl %edx	pushl $LC29	pushl $___sF+176	call _fprintf	pushl -4(%ebp)	call _free	xorl %eax,%eax	jmp L288	.align 2,0x90L284:	pushl -8(%ebp)	pushl %esi	movl %edi,%eax	movl 16(%ebp),%ecx	imull (%ecx,%ebx,4),%eax	addl %eax,%eax	movl 8(%ebp),%ecx	addl 12(%ecx),%eax	pushl %eax	call _bcopy	addl $12,%espL280:	incl %ebx	addl -8(%ebp),%esi	cmpl %edi,%ebx	jl L281L279:	pushl %edi	pushl -4(%ebp)	call _invert_mat	addl $8,%esp	testl %eax,%eax	je L287	pushl -4(%ebp)	call _free	movl $0,-4(%ebp)L287:	movl -4(%ebp),%eaxL288:	leal -20(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe12:	.size	 _build_decode_matrix,Lfe12-_build_decode_matrixLC30:	.ascii "new pkt pointers\0"LC31:	.ascii "new pkt buffer\0"	.align 2.globl _fec_decode	.type	 _fec_decode,@function_fec_decode:	pushl %ebp	movl %esp,%ebp	subl $20,%esp	pushl %edi	pushl %esi	pushl %ebx	movl 8(%ebp),%ebx	movl 4(%ebx),%edi	movl 20(%ebp),%eax	shrl $31,%eax	addl 20(%ebp),%eax	sarl $1,%eax	movl %eax,-4(%ebp)	pushl %edi	pushl 16(%ebp)	pushl 12(%ebp)	call _shuffle	addl $12,%esp	testl %eax,%eax	jne L312	pushl 16(%ebp)	pushl 12(%ebp)	pushl %ebx	call _build_decode_matrix	movl %eax,-8(%ebp)	addl $12,%esp	testl %eax,%eax	jne L292L312:	movl $1,%eax	jmp L311	.align 2,0x90L292:	pushl $LC30	leal 0(,%edi,4),%eax	pushl %eax	call _my_malloc	movl %eax,-12(%ebp)	xorl %esi,%esi	addl $8,%esp	cmpl %edi,%esi	jge L294	movl -4(%ebp),%edx	addl %edx,%edx	movl %edx,-16(%ebp)	.align 2,0x90L296:	movl 16(%ebp),%edx	cmpl %edi,(%edx,%esi,4)	jl L295	pushl $LC31	pushl -16(%ebp)	call _my_malloc	movl -12(%ebp),%edx	movl %eax,(%edx,%esi,4)	pushl -16(%ebp)	pushl %eax	call _bzero	xorl %ebx,%ebx	addl $16,%esp	cmpl %edi,%ebx	jge L295	movl %esi,%edx	imull %edi,%edx	movl %edx,-20(%ebp)	.align 2,0x90L301:	movl -20(%ebp),%eax	addl %ebx,%eax	movl -8(%ebp),%edx	cmpw $0,(%edx,%eax,2)	je L300	pushl -4(%ebp)	movzwl (%edx,%eax,2),%eax	pushl %eax	movl 12(%ebp),%edx	pushl (%edx,%ebx,4)	movl -12(%ebp),%edx	pushl (%edx,%esi,4)	call _addmul1	addl $16,%espL300:	incl %ebx	cmpl %edi,%ebx	jl L301L295:	incl %esi	cmpl %edi,%esi	jl L296L294:	xorl %esi,%esi	cmpl %edi,%esi	jge L306	movl -4(%ebp),%ebx	addl %ebx,%ebx	.align 2,0x90L308:	movl 16(%ebp),%edx	cmpl %edi,(%edx,%esi,4)	jl L307	pushl %ebx	movl 12(%ebp),%edx	pushl (%edx,%esi,4)	movl -12(%ebp),%edx	pushl (%edx,%esi,4)	call _bcopy	movl -12(%ebp),%edx	pushl (%edx,%esi,4)	call _free	addl $16,%espL307:	incl %esi	cmpl %edi,%esi	jl L308L306:	pushl -12(%ebp)	call _free	pushl -8(%ebp)	call _free	xorl %eax,%eaxL311:	leal -32(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe13:	.size	 _fec_decode,Lfe13-_fec_decode.lcomm _gf_exp,262140.lcomm _gf_log,262144.lcomm _inverse,131072

⌨️ 快捷键说明

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