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

📄 fec.s.980621e

📁 当前很多文章多提到的lugi的reed-solomon编码的源代码
💻 980621E
📖 第 1 页 / 共 4 页
字号:
L707:	movl 12(%ebp),%eax	decl %eax	cmpl %eax,-24(%ebp)	jl L617	pushl 8(%ebp)	pushl -4(%ebp)	call _invert_vdm	pushl 8(%ebp)	pushl 8(%ebp)	movl 12(%ebp),%eax	subl 8(%ebp),%eax	pushl %eax	movl 8(%ebp),%ebx	imull %ebx,%ebx	movl %ebx,%eax	movl -8(%ebp),%edi	addl 8(%edi),%eax	pushl %eax	pushl -4(%ebp)	movl -4(%ebp),%eax	addl %ebx,%eax	pushl %eax	call _matmul	addl $32,%esp	pushl %ebx	pushl 8(%edi)	call _bzero	movl 8(%edi),%esi	xorl %ebx,%ebx	addl $8,%esp	cmpl %ebx,8(%ebp)	jle L630	movl 8(%ebp),%ecx	incl %ecx	movl 8(%ebp),%eax	andl $3,%eax	je L632	cmpl $1,%eax	jle L637	cmpl $2,%eax	jle L638	movb $1,(%esi)	incl %ebx	addl %ecx,%esiL638:	movb $1,(%esi)	incl %ebx	addl %ecx,%esiL637:	movb $1,(%esi)	incl %ebx	jmp L708	.align 2,0x90	.align 2,0x90L632:	movb $1,(%esi)	addl %ecx,%esi	movb $1,(%esi)	addl %ecx,%esi	movb $1,(%esi)	addl %ecx,%esi	movb $1,(%esi)	addl $4,%ebxL708:	addl %ecx,%esi	cmpl %ebx,8(%ebp)	jg L632L630:	pushl -4(%ebp)	call _free	movl -8(%ebp),%eaxL634:	leal -36(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe10:	.size	 _fec_new,Lfe10-_fec_new	.align 2.globl _init_fec	.type	 _init_fec,@function_init_fec:	pushl %ebp	movl %esp,%ebp	call _generate_gf	call _init_mul_table	leave	retLfe11:	.size	 _init_fec,Lfe11-_init_fecLC27:	.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 (%ebx),%ecx	movl %ecx,-4(%ebp)	cmpl %ecx,%edx	jge L712	pushl 24(%ebp)	pushl 16(%ebp)	movl 12(%ebp),%ecx	pushl (%ecx,%edx,4)	call _bcopy	jmp L713	.align 2,0x90L712:	cmpl %edx,4(%ebx)	jle L714	movl -4(%ebp),%eax	imull %edx,%eax	movl %eax,%esi	addl 8(%ebx),%esi	pushl 24(%ebp)	pushl 16(%ebp)	call _bzero	xorl %ebx,%ebx	addl $8,%esp	cmpl %ebx,-4(%ebp)	jle L713	movl -4(%ebp),%eax	andl $3,%eax	je L723	cmpl $1,%eax	jle L724	cmpl $2,%eax	jle L725	cmpb $0,(%esi)	je L727	pushl 24(%ebp)	movzbl (%esi),%eax	pushl %eax	movl 12(%ebp),%ecx	pushl (%ecx)	pushl 16(%ebp)	call _addmul1	addl $16,%espL727:	incl %esi	incl %ebxL725:	cmpb $0,(%esi)	je L730	pushl 24(%ebp)	movzbl (%esi),%eax	pushl %eax	movl 12(%ebp),%ecx	pushl (%ecx,%ebx,4)	pushl 16(%ebp)	call _addmul1	addl $16,%espL730:	incl %esi	incl %ebxL724:	cmpb $0,(%esi)	je L733	pushl 24(%ebp)	movzbl (%esi),%eax	pushl %eax	movl 12(%ebp),%ecx	pushl (%ecx,%ebx,4)	pushl 16(%ebp)	call _addmul1	addl $16,%espL733:	incl %esi	incl %ebx	cmpl %ebx,-4(%ebp)	jle L713L723:	movl %esi,%edi	.align 2,0x90L718:	cmpb $0,(%esi)	je L736	pushl 24(%ebp)	movzbl (%edi),%eax	pushl %eax	movl 12(%ebp),%ecx	pushl (%ecx,%ebx,4)	pushl 16(%ebp)	call _addmul1	addl $16,%espL736:	leal 1(%ebx),%edx	cmpb $0,1(%esi)	je L739	pushl 24(%ebp)	movzbl 1(%edi),%eax	pushl %eax	movl 12(%ebp),%ecx	pushl (%ecx,%edx,4)	pushl 16(%ebp)	call _addmul1	addl $16,%espL739:	leal 2(%ebx),%edx	cmpb $0,2(%esi)	je L742	pushl 24(%ebp)	movzbl 2(%edi),%eax	pushl %eax	movl 12(%ebp),%ecx	pushl (%ecx,%edx,4)	pushl 16(%ebp)	call _addmul1	addl $16,%espL742:	leal 3(%ebx),%edx	cmpb $0,3(%esi)	je L745	pushl 24(%ebp)	movzbl 3(%edi),%eax	pushl %eax	movl 12(%ebp),%ecx	pushl (%ecx,%edx,4)	pushl 16(%ebp)	call _addmul1	addl $16,%espL745:	addl $4,%edi	addl $4,%esi	addl $4,%ebx	cmpl %ebx,-4(%ebp)	jg L718	jmp L713	.align 2,0x90L714:	movl 4(%ebx),%eax	decl %eax	pushl %eax	pushl %edx	pushl $LC27	pushl $___sF+176	call _fprintfL713:	leal -16(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe12:	.size	 _fec_encode,Lfe12-_fec_encode	.align 2	.type	 _shuffle,@function_shuffle:	pushl %ebp	movl %esp,%ebp	subl $8,%esp	pushl %edi	pushl %esi	pushl %ebx	xorl %edi,%edi	cmpl %edi,16(%ebp)	jle L750	movl 8(%ebp),%edx	movl %edx,-8(%ebp)	movl 12(%ebp),%ebx	.align 2,0x90L752:	movl 16(%ebp),%esi	cmpl %esi,(%ebx)	jge L754	cmpl %edi,(%ebx)	jne L753L754:	addl $4,-8(%ebp)	addl $4,%ebx	incl %edi	jmp L749	.align 2,0x90L753:	movl (%ebx),%ecx	movl 12(%ebp),%edx	cmpl %ecx,(%edx,%ecx,4)	jne L756	movl $1,%eax	jmp L758	.align 2,0x90L756:	movl (%ebx),%esi	movl 12(%ebp),%edx	movl (%edx,%ecx,4),%eax	movl %eax,(%ebx)	movl %esi,(%edx,%ecx,4)	movl -8(%ebp),%esi	movl (%esi),%esi	movl %esi,-4(%ebp)	movl 8(%ebp),%edx	movl (%edx,%ecx,4),%eax	movl -8(%ebp),%esi	movl %eax,(%esi)	movl -4(%ebp),%esi	movl %esi,(%edx,%ecx,4)L749:	cmpl %edi,16(%ebp)	jg L752L750:	xorl %eax,%eaxL758:	leal -20(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe13:	.size	 _shuffle,Lfe13-_shuffleLC28:	.ascii "decode: invalid index %d (max %d)\12\0"	.align 2.globl _build_decode_matrix	.type	 _build_decode_matrix,@function_build_decode_matrix:	pushl %ebp	movl %esp,%ebp	subl $20,%esp	pushl %edi	pushl %esi	pushl %ebx	movl 8(%ebp),%ecx	movl (%ecx),%ebx	pushl $LC19	movl %ebx,%eax	imull %ebx,%eax	pushl %eax	call _my_malloc	movl %eax,-8(%ebp)	movl $0,-4(%ebp)	movl -8(%ebp),%esi	addl $8,%esp	cmpl %ebx,-4(%ebp)	jge L762	movl 16(%ebp),%edi	testb $1,%bl	je L773	cmpl %ebx,(%edi)	jge L777	pushl %ebx	pushl -8(%ebp)	call _bzero	movl -8(%ebp),%ecx	movb $1,(%ecx)	addl $8,%esp	jmp L775	.align 2,0x90L777:	movl (%edi),%edx	movl 8(%ebp),%ecx	cmpl %edx,4(%ecx)	jle L790	pushl %ebx	pushl %esi	movl %ebx,%eax	imull (%edi),%eax	movl 8(%ebp),%ecx	addl 8(%ecx),%eax	pushl %eax	call _bcopy	addl $12,%espL775:	addl $4,%edi	incl -4(%ebp)	addl %ebx,%esi	cmpl %ebx,-4(%ebp)	jge L762L773:	movl %edi,-12(%ebp)	movl %edi,-16(%ebp)	movl %edi,-20(%ebp)	.align 2,0x90L764:	movl -20(%ebp),%ecx	cmpl %ebx,(%ecx)	jge L782	pushl %ebx	pushl %esi	call _bzero	movl -4(%ebp),%ecx	movb $1,(%ecx,%esi)	addl $8,%esp	jmp L780	.align 2,0x90L782:	movl -16(%ebp),%ecx	movl (%ecx),%edx	movl 8(%ebp),%ecx	cmpl %edx,4(%ecx)	jle L790	pushl %ebx	pushl %esi	movl %ebx,%eax	movl -12(%ebp),%ecx	imull (%ecx),%eax	movl 8(%ebp),%ecx	addl 8(%ecx),%eax	pushl %eax	call _bcopy	addl $12,%espL780:	movl -4(%ebp),%edi	incl %edi	addl %ebx,%esi	movl -20(%ebp),%ecx	cmpl %ebx,4(%ecx)	jge L787	pushl %ebx	pushl %esi	call _bzero	movb $1,(%edi,%esi)	addl $8,%esp	jmp L785	.align 2,0x90L787:	movl -16(%ebp),%ecx	movl 4(%ecx),%edx	movl 8(%ebp),%ecx	cmpl %edx,4(%ecx)	jg L788L790:	movl 4(%ecx),%eax	decl %eax	pushl %eax	pushl %edx	pushl $LC28	pushl $___sF+176	call _fprintf	pushl -8(%ebp)	call _free	xorl %eax,%eax	jmp L771	.align 2,0x90L788:	pushl %ebx	pushl %esi	movl %ebx,%eax	movl -12(%ebp),%ecx	imull 4(%ecx),%eax	movl 8(%ebp),%ecx	addl 8(%ecx),%eax	pushl %eax	call _bcopy	addl $12,%espL785:	addl $8,-12(%ebp)	addl $8,-16(%ebp)	addl $8,-20(%ebp)	addl $2,-4(%ebp)	addl %ebx,%esi	cmpl %ebx,-4(%ebp)	jl L764L762:	pushl %ebx	pushl -8(%ebp)	call _invert_mat	addl $8,%esp	testl %eax,%eax	je L770	pushl -8(%ebp)	call _free	movl $0,-8(%ebp)L770:	movl -8(%ebp),%eaxL771:	leal -32(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe14:	.size	 _build_decode_matrix,Lfe14-_build_decode_matrixLC29:	.ascii "new pkt pointers\0"LC30:	.ascii "new pkt buffer\0"	.align 2.globl _fec_decode	.type	 _fec_decode,@function_fec_decode:	pushl %ebp	movl %esp,%ebp	subl $24,%esp	pushl %edi	pushl %esi	pushl %ebx	movl 8(%ebp),%ebx	movl (%ebx),%edx	movl %edx,-12(%ebp)	pushl %edx	pushl 16(%ebp)	pushl 12(%ebp)	call _shuffle	addl $12,%esp	testl %eax,%eax	jne L866	pushl 16(%ebp)	pushl 12(%ebp)	pushl %ebx	call _build_decode_matrix	movl %eax,-4(%ebp)	addl $12,%esp	testl %eax,%eax	jne L794L866:	movl $1,%eax	jmp L813	.align 2,0x90L794:	pushl $LC29	movl -12(%ebp),%ecx	leal 0(,%ecx,4),%eax	pushl %eax	call _my_malloc	movl %eax,-8(%ebp)	xorl %edi,%edi	addl $8,%esp	cmpl %edi,-12(%ebp)	jle L796	movl -8(%ebp),%esi	movl $0,-20(%ebp)	.align 2,0x90L798:	movl -12(%ebp),%ecx	movl 16(%ebp),%edx	cmpl %ecx,(%edx,%edi,4)	jl L797	pushl $LC30	pushl 20(%ebp)	call _my_malloc	movl %eax,(%esi)	pushl 20(%ebp)	pushl %eax	call _bzero	xorl %ebx,%ebx	addl $16,%esp	cmpl %ebx,-12(%ebp)	jle L797	movl -20(%ebp),%edx	movl %edx,-16(%ebp)	movl -12(%ebp),%eax	andl $3,%eax	je L803	cmpl $1,%eax	jle L842	cmpl $2,%eax	jle L843	movl -4(%ebp),%ecx	cmpb $0,(%edx,%ecx)	je L845	pushl 20(%ebp)	movzbl (%edx,%ecx),%eax	pushl %eax	movl 12(%ebp),%edx	pushl (%edx)	pushl (%esi)	call _addmul1	addl $16,%espL845:	incl %ebxL843:	movl -16(%ebp),%eax	addl %ebx,%eax	movl -4(%ebp),%ecx	cmpb $0,(%eax,%ecx)	je L848	pushl 20(%ebp)	movzbl (%eax,%ecx),%eax	pushl %eax	movl 12(%ebp),%edx	pushl (%edx,%ebx,4)	pushl (%esi)	call _addmul1	addl $16,%espL848:	incl %ebxL842:	movl -16(%ebp),%eax	addl %ebx,%eax	movl -4(%ebp),%ecx	cmpb $0,(%eax,%ecx)	je L851	pushl 20(%ebp)	movzbl (%eax,%ecx),%eax	pushl %eax	movl 12(%ebp),%edx	pushl (%edx,%ebx,4)	pushl (%esi)	call _addmul1	addl $16,%espL851:	incl %ebx	cmpl %ebx,-12(%ebp)	jle L797	.align 2,0x90L803:	movl -16(%ebp),%eax	addl %ebx,%eax	movl -4(%ebp),%ecx	cmpb $0,(%eax,%ecx)	je L854	pushl 20(%ebp)	movzbl (%eax,%ecx),%eax	pushl %eax	movl 12(%ebp),%edx	pushl (%edx,%ebx,4)	pushl (%esi)	call _addmul1	addl $16,%espL854:	leal 1(%ebx),%ecx	movl %ecx,-24(%ebp)	movl -16(%ebp),%eax	addl %ecx,%eax	movl -4(%ebp),%edx	cmpb $0,(%eax,%edx)	je L857	pushl 20(%ebp)	movzbl (%eax,%edx),%eax	pushl %eax	movl 12(%ebp),%edx	pushl (%edx,%ecx,4)	pushl (%esi)	call _addmul1	addl $16,%espL857:	leal 2(%ebx),%ecx	movl %ecx,-24(%ebp)	movl -16(%ebp),%eax	addl %ecx,%eax	movl -4(%ebp),%edx	cmpb $0,(%eax,%edx)	je L860	pushl 20(%ebp)	movzbl (%eax,%edx),%eax	pushl %eax	movl 12(%ebp),%edx	pushl (%edx,%ecx,4)	pushl (%esi)	call _addmul1	addl $16,%espL860:	leal 3(%ebx),%ecx	movl %ecx,-24(%ebp)	movl -16(%ebp),%eax	addl %ecx,%eax	movl -4(%ebp),%edx	cmpb $0,(%eax,%edx)	je L863	pushl 20(%ebp)	movzbl (%eax,%edx),%eax	pushl %eax	movl 12(%ebp),%edx	pushl (%edx,%ecx,4)	pushl (%esi)	call _addmul1	addl $16,%espL863:	addl $4,%ebx	cmpl %ebx,-12(%ebp)	jg L803L797:	addl $4,%esi	movl -12(%ebp),%ecx	addl %ecx,-20(%ebp)	incl %edi	cmpl %ecx,%edi	jl L798L796:	xorl %edi,%edi	cmpl %edi,-12(%ebp)	jle L808	movl -8(%ebp),%ebx	movl -12(%ebp),%eax	andl $3,%eax	je L815	cmpl $1,%eax	jle L816	cmpl $2,%eax	jle L817	movl -12(%ebp),%ecx	movl 16(%ebp),%edx	cmpl %ecx,(%edx)	jl L819	pushl 20(%ebp)	movl 12(%ebp),%edx	pushl (%edx)	movl -8(%ebp),%ecx	pushl (%ecx)	call _bcopy	movl -8(%ebp),%edx	pushl (%edx)	call _free	addl $16,%espL819:	addl $4,%ebx	incl %ediL817:	movl -12(%ebp),%edx	movl 16(%ebp),%ecx	cmpl %edx,(%ecx,%edi,4)	jl L822	pushl 20(%ebp)	movl 12(%ebp),%ecx	pushl (%ecx,%edi,4)	pushl (%ebx)	call _bcopy	pushl (%ebx)	call _free	addl $16,%espL822:	addl $4,%ebx	incl %ediL816:	movl -12(%ebp),%ecx	movl 16(%ebp),%edx	cmpl %ecx,(%edx,%edi,4)	jl L825	pushl 20(%ebp)	movl 12(%ebp),%edx	pushl (%edx,%edi,4)	pushl (%ebx)	call _bcopy	pushl (%ebx)	call _free	addl $16,%espL825:	addl $4,%ebx	incl %edi	cmpl %edi,-12(%ebp)	jle L808L815:	movl %ebx,%esi	.align 2,0x90L810:	movl -12(%ebp),%edx	movl 16(%ebp),%ecx	cmpl %edx,(%ecx,%edi,4)	jl L828	pushl 20(%ebp)	movl 12(%ebp),%ecx	pushl (%ecx,%edi,4)	pushl (%ebx)	call _bcopy	pushl (%esi)	call _free	addl $16,%espL828:	leal 1(%edi),%eax	movl -12(%ebp),%ecx	movl 16(%ebp),%edx	cmpl %ecx,(%edx,%eax,4)	jl L831	pushl 20(%ebp)	movl 12(%ebp),%edx	pushl (%edx,%eax,4)	pushl 4(%ebx)	call _bcopy	pushl 4(%esi)	call _free	addl $16,%espL831:	leal 2(%edi),%eax	movl -12(%ebp),%edx	movl 16(%ebp),%ecx	cmpl %edx,(%ecx,%eax,4)	jl L834	pushl 20(%ebp)	movl 12(%ebp),%ecx	pushl (%ecx,%eax,4)	pushl 8(%ebx)	call _bcopy	pushl 8(%esi)	call _free	addl $16,%espL834:	leal 3(%edi),%eax	movl -12(%ebp),%ecx	movl 16(%ebp),%edx	cmpl %ecx,(%edx,%eax,4)	jl L837	pushl 20(%ebp)	movl 12(%ebp),%edx	pushl (%edx,%eax,4)	pushl 12(%ebx)	call _bcopy	pushl 12(%esi)	call _free	addl $16,%espL837:	addl $16,%esi	addl $16,%ebx	addl $4,%edi	cmpl %edi,-12(%ebp)	jg L810L808:	pushl -8(%ebp)	call _free	pushl -4(%ebp)	call _free	xorl %eax,%eaxL813:	leal -36(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe15:	.size	 _fec_decode,Lfe15-_fec_decode.lcomm _gf_exp,256.lcomm _gf_log,1024.lcomm _inverse,256.lcomm _gf_mul_table,65536

⌨️ 快捷键说明

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