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

📄 fec.s.980621e

📁 当前很多文章多提到的lugi的reed-solomon编码的源代码
💻 980621E
📖 第 1 页 / 共 4 页
字号:
	movl %ebx,%edx	movl -48(%ebp),%ecx	addl (%ecx),%edx	movl %edx,-68(%ebp)	movl 8(%ebp),%ecx	movb (%edx,%ecx),%dl	movl %ebx,%eax	addl (%esi),%eax	movb (%eax,%ecx),%al	movl -68(%ebp),%edi	movb %al,(%edi,%ecx)	movl %ebx,%eax	addl (%esi),%eax	movb %dl,(%eax,%ecx)	addl 12(%ebp),%ebx	incl -60(%ebp)	jmp L494	.align 2,0x90	.align 2,0x90L353:	movl %ebx,%ecx	movl -48(%ebp),%edi	addl (%edi),%ecx	movl %ecx,-68(%ebp)	movl 8(%ebp),%edx	movb (%ecx,%edx),%dl	movl %ebx,%eax	addl (%esi),%eax	movl 8(%ebp),%ecx	movb (%eax,%ecx),%al	movl -68(%ebp),%edi	movb %al,(%edi,%ecx)	movl %ebx,%eax	addl (%esi),%eax	movb %dl,(%eax,%ecx)	addl 12(%ebp),%ebx	movl %ebx,%edx	movl -48(%ebp),%ecx	addl (%ecx),%edx	movl %edx,-68(%ebp)	movl 8(%ebp),%ecx	movb (%edx,%ecx),%dl	movl %ebx,%eax	addl (%esi),%eax	movb (%eax,%ecx),%al	movl -68(%ebp),%edi	movb %al,(%edi,%ecx)	movl %ebx,%eax	addl (%esi),%eax	movb %dl,(%eax,%ecx)	addl 12(%ebp),%ebx	movl %ebx,%edx	movl -48(%ebp),%ecx	addl (%ecx),%edx	movl %edx,-68(%ebp)	movl 8(%ebp),%ecx	movb (%edx,%ecx),%dl	movl %ebx,%eax	addl (%esi),%eax	movb (%eax,%ecx),%al	movl -68(%ebp),%edi	movb %al,(%edi,%ecx)	movl %ebx,%eax	addl (%esi),%eax	movb %dl,(%eax,%ecx)	addl 12(%ebp),%ebx	movl %ebx,%edx	movl -48(%ebp),%ecx	addl (%ecx),%edx	movl %edx,-68(%ebp)	movl 8(%ebp),%ecx	movb (%edx,%ecx),%dl	movl %ebx,%eax	addl (%esi),%eax	movb (%eax,%ecx),%al	movl -68(%ebp),%edi	movb %al,(%edi,%ecx)	movl %ebx,%eax	addl (%esi),%eax	movb %dl,(%eax,%ecx)	addl 12(%ebp),%ebx	addl $4,-60(%ebp)L494:	movl 12(%ebp),%edx	cmpl %edx,-60(%ebp)	jl L353L341:	addl $-4,%esi	addl $-4,-48(%ebp)	decl -12(%ebp)	jns L342L340:	movl $0,-16(%ebp)L313:	pushl -20(%ebp)	call _free	pushl -24(%ebp)	call _free	pushl -28(%ebp)	call _free	pushl -32(%ebp)	call _free	pushl -36(%ebp)	call _free	movl -16(%ebp),%eax	leal -92(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe7:	.size	 _invert_mat,Lfe7-_invert_mat	.align 2.globl _invert_vdm	.type	 _invert_vdm,@function_invert_vdm:	pushl %ebp	movl %esp,%ebp	subl $40,%esp	pushl %edi	pushl %esi	pushl %ebx	cmpl $1,12(%ebp)	je L604	pushl $LC19	pushl 12(%ebp)	call _my_malloc	movl %eax,-12(%ebp)	pushl $LC19	pushl 12(%ebp)	call _my_malloc	movl %eax,-8(%ebp)	pushl $LC19	pushl 12(%ebp)	call _my_malloc	movl %eax,-16(%ebp)	movl $1,%ecx	movl $0,-40(%ebp)	addl $24,%esp	movl 12(%ebp),%ebx	cmpl %ebx,-40(%ebp)	jge L498	movl %ebx,%eax	andl $3,%eax	je L500	cmpl $1,%eax	jle L587	cmpl $2,%eax	jle L588	movl -12(%ebp),%esi	movb $0,(%esi)	movl 8(%ebp),%edi	movb 1(%edi),%al	movl -16(%ebp),%ebx	movb %al,(%ebx)	incl -40(%ebp)	movl 12(%ebp),%ecx	incl %ecxL588:	movl -12(%ebp),%esi	movl -40(%ebp),%edi	movb $0,(%edi,%esi)	movl 8(%ebp),%ebx	movb (%ecx,%ebx),%al	movl -16(%ebp),%esi	movb %al,(%edi,%esi)	incl %edi	movl %edi,-40(%ebp)	addl 12(%ebp),%ecxL587:	movl -12(%ebp),%edi	movl -40(%ebp),%ebx	movb $0,(%ebx,%edi)	movl 8(%ebp),%esi	movb (%ecx,%esi),%al	movl -16(%ebp),%edi	movb %al,(%ebx,%edi)	incl %ebx	movl %ebx,-40(%ebp)	addl 12(%ebp),%ecx	movl 12(%ebp),%esi	cmpl %esi,%ebx	jge L498	.align 2,0x90L500:	movl -12(%ebp),%edi	movl -40(%ebp),%ebx	movb $0,(%ebx,%edi)	movl 8(%ebp),%esi	movb (%ecx,%esi),%al	movl -16(%ebp),%edi	movb %al,(%ebx,%edi)	movl -40(%ebp),%edx	incl %edx	addl 12(%ebp),%ecx	movl -12(%ebp),%ebx	movb $0,(%edx,%ebx)	movb (%ecx,%esi),%al	movb %al,(%edx,%edi)	movl -40(%ebp),%edx	addl $2,%edx	addl 12(%ebp),%ecx	movb $0,(%edx,%ebx)	movb (%ecx,%esi),%al	movb %al,(%edx,%edi)	movl -40(%ebp),%edx	addl $3,%edx	addl 12(%ebp),%ecx	movb $0,(%edx,%ebx)	movb (%ecx,%esi),%al	movb %al,(%edx,%edi)	addl $4,-40(%ebp)	addl 12(%ebp),%ecx	movl 12(%ebp),%esi	cmpl %esi,-40(%ebp)	jl L500L498:	movl -16(%ebp),%edi	movb (%edi),%al	movl 12(%ebp),%ebx	movl -12(%ebp),%esi	movb %al,-1(%esi,%ebx)	movl $1,-40(%ebp)	cmpl %ebx,-40(%ebp)	jge L503	decl %ebx	movl %ebx,-28(%ebp)	.align 2,0x90L505:	movl -16(%ebp),%ebx	movl -40(%ebp),%esi	movb (%esi,%ebx),%bl	movb %bl,-24(%ebp)	movl 12(%ebp),%ecx	subl %esi,%ecx	cmpl %ecx,-28(%ebp)	jle L507	movzbl %bl,%eax	sall $8,%eax	addl $_gf_mul_table,%eax	movl %eax,-36(%ebp)	movl -12(%ebp),%edx	addl %ecx,%edx	movl -28(%ebp),%eax	subl %ecx,%eax	andl $3,%eax	je L567	cmpl $1,%eax	jle L568	cmpl $2,%eax	jle L569	movl -12(%ebp),%edi	movzbl 1(%edi,%ecx),%eax	movl -36(%ebp),%ebx	movb (%eax,%ebx),%al	xorb %al,(%edx)	incl %edx	incl %ecxL569:	movl -12(%ebp),%esi	movzbl 1(%esi,%ecx),%eax	movl -36(%ebp),%edi	movb (%eax,%edi),%al	xorb %al,(%edx)	incl %edx	incl %ecxL568:	movl -12(%ebp),%ebx	movzbl 1(%ebx,%ecx),%eax	movl -36(%ebp),%esi	movb (%eax,%esi),%al	xorb %al,(%edx)	incl %edx	incl %ecx	cmpl %ecx,-28(%ebp)	jle L507L567:	movl %edx,-32(%ebp)	.align 2,0x90L509:	movl -12(%ebp),%edi	movzbl 1(%edi,%ecx),%eax	movb (%edx),%bl	movl -36(%ebp),%esi	xorb (%eax,%esi),%bl	movl -32(%ebp),%esi	movb %bl,(%esi)	movzbl 2(%edi,%ecx),%eax	movb 1(%edx),%bl	movl -36(%ebp),%esi	xorb (%eax,%esi),%bl	movl -32(%ebp),%esi	movb %bl,1(%esi)	movzbl 3(%edi,%ecx),%eax	movb 2(%edx),%bl	movl -36(%ebp),%esi	xorb (%eax,%esi),%bl	movl -32(%ebp),%esi	movb %bl,2(%esi)	movzbl 4(%edi,%ecx),%eax	movb 3(%edx),%bl	movl -36(%ebp),%esi	xorb (%eax,%esi),%bl	movl -32(%ebp),%esi	movb %bl,3(%esi)	addl $4,%esi	movl %esi,-32(%ebp)	addl $4,%edx	addl $4,%ecx	cmpl %ecx,-28(%ebp)	jg L509L507:	movb -24(%ebp),%bl	movl 12(%ebp),%esi	movl -12(%ebp),%edi	xorb %bl,-1(%edi,%esi)	incl -40(%ebp)	cmpl %esi,-40(%ebp)	jl L505L503:	movl $0,-4(%ebp)	movl 12(%ebp),%ebx	cmpl %ebx,-4(%ebp)	jge L513	.align 2,0x90L515:	movl -16(%ebp),%esi	movl -4(%ebp),%edi	movb (%edi,%esi),%al	movb $1,-20(%ebp)	movl 12(%ebp),%ebx	movl -8(%ebp),%esi	movb $1,-1(%esi,%ebx)	addl $-2,%ebx	movl %ebx,-40(%ebp)	js L517	andl $255,%eax	sall $8,%eax	leal _gf_mul_table(%eax),%ecx	movl -8(%ebp),%edx	addl %ebx,%edx	movl %ebx,%eax	notl %eax	andl $3,%eax	cmpl $-1,%ebx	jle L549	testl %eax,%eax	je L548	cmpl $3,%eax	jge L549	cmpl $2,%eax	jge L550	movzbl 1(%esi,%ebx),%eax	movl -12(%ebp),%esi	movb 1(%esi,%ebx),%bl	xorb (%eax,%ecx),%bl	movb %bl,(%edx)	movb 1(%ecx),%bl	xorb (%edx),%bl	movb %bl,-20(%ebp)	decl %edx	movl 12(%ebp),%esi	addl $-3,%esi	movl %esi,-40(%ebp)L550:	movl -40(%ebp),%edi	movl -8(%ebp),%ebx	movzbl 1(%ebx,%edi),%eax	movl -12(%ebp),%ebx	movb 1(%ebx,%edi),%bl	xorb (%eax,%ecx),%bl	movb %bl,(%edx)	movzbl -20(%ebp),%eax	movb (%eax,%ecx),%al	xorb %bl,%al	movb %al,-20(%ebp)	decl %edx	decl %edi	movl %edi,-40(%ebp)L549:	movl -40(%ebp),%esi	movl -8(%ebp),%edi	movzbl 1(%edi,%esi),%eax	movl -12(%ebp),%ebx	movb 1(%ebx,%esi),%bl	xorb (%eax,%ecx),%bl	movb %bl,(%edx)	movzbl -20(%ebp),%eax	movb (%eax,%ecx),%al	xorb %bl,%al	movb %al,-20(%ebp)	decl %edx	decl -40(%ebp)	js L517L548:	movl %edx,-36(%ebp)	movl %edx,-32(%ebp)	.align 2,0x90L519:	movl -40(%ebp),%esi	movl -8(%ebp),%edi	movzbl 1(%edi,%esi),%eax	movl -12(%ebp),%ebx	movb 1(%ebx,%esi),%bl	xorb (%eax,%ecx),%bl	movl -32(%ebp),%esi	movb %bl,(%esi)	movzbl -20(%ebp),%eax	movb (%eax,%ecx),%al	movl -36(%ebp),%esi	xorb (%esi),%al	movb %al,-20(%ebp)	movl -40(%ebp),%eax	decl %eax	movzbl 1(%edi,%eax),%edx	movl -12(%ebp),%edi	movb 1(%edi,%eax),%al	xorb (%edx,%ecx),%al	movl -32(%ebp),%edi	movb %al,-1(%edi)	movzbl -20(%ebp),%eax	movb (%eax,%ecx),%al	xorb -1(%esi),%al	movb %al,-20(%ebp)	movl -40(%ebp),%eax	addl $-2,%eax	movl -8(%ebp),%ebx	movzbl 1(%ebx,%eax),%edx	movl -12(%ebp),%esi	movb 1(%esi,%eax),%al	xorb (%edx,%ecx),%al	movb %al,-2(%edi)	movzbl -20(%ebp),%eax	movb (%eax,%ecx),%al	movl -36(%ebp),%edi	xorb -2(%edi),%al	movb %al,-20(%ebp)	movl -40(%ebp),%eax	addl $-3,%eax	movzbl 1(%ebx,%eax),%edx	movb 1(%esi,%eax),%al	xorb (%edx,%ecx),%al	movl -32(%ebp),%ebx	movb %al,-3(%ebx)	movzbl -20(%ebp),%eax	movb (%eax,%ecx),%al	xorb -3(%edi),%al	movb %al,-20(%ebp)	addl $-4,%edi	movl %edi,-36(%ebp)	addl $-4,%ebx	movl %ebx,-32(%ebp)	addl $-4,-40(%ebp)	jns L519L517:	movl $0,-36(%ebp)	movl 12(%ebp),%esi	cmpl %esi,-36(%ebp)	jge L514	movzbl -20(%ebp),%edi	movl %edi,-40(%ebp)	movl -4(%ebp),%ecx	movl %esi,%eax	andl $3,%eax	je L524	cmpl $1,%eax	jle L530	cmpl $2,%eax	jle L531	movzbl _inverse(%edi),%eax	sall $8,%eax	movl -8(%ebp),%ebx	movzbl (%ebx),%edx	movb _gf_mul_table(%edx,%eax),%al	movl 8(%ebp),%esi	movb %al,(%ecx,%esi)	movl -4(%ebp),%ecx	addl 12(%ebp),%ecx	movl $1,-36(%ebp)L531:	movl -40(%ebp),%edi	movzbl _inverse(%edi),%eax	sall $8,%eax	movl -8(%ebp),%ebx	movl -36(%ebp),%esi	movzbl (%esi,%ebx),%edx	movb _gf_mul_table(%edx,%eax),%al	movl 8(%ebp),%edi	movb %al,(%ecx,%edi)	addl 12(%ebp),%ecx	incl %esi	movl %esi,-36(%ebp)L530:	movl -40(%ebp),%ebx	movzbl _inverse(%ebx),%eax	sall $8,%eax	movl -8(%ebp),%esi	movl -36(%ebp),%edi	movzbl (%edi,%esi),%edx	movb _gf_mul_table(%edx,%eax),%al	movl 8(%ebp),%ebx	movb %al,(%ecx,%ebx)	addl 12(%ebp),%ecx	incl %edi	movl %edi,-36(%ebp)	movl 12(%ebp),%esi	cmpl %esi,%edi	jge L514	.align 2,0x90L524:	movl -40(%ebp),%edi	movzbl _inverse(%edi),%eax	sall $8,%eax	movl -8(%ebp),%ebx	movl -36(%ebp),%esi	movzbl (%esi,%ebx),%edx	movb _gf_mul_table(%edx,%eax),%al	movl 8(%ebp),%edi	movb %al,(%ecx,%edi)	addl 12(%ebp),%ecx	movl -40(%ebp),%ebx	movzbl _inverse(%ebx),%eax	sall $8,%eax	movl -8(%ebp),%edi	movzbl 1(%edi,%esi),%edx	movb _gf_mul_table(%edx,%eax),%al	movl 8(%ebp),%ebx	movb %al,(%ecx,%ebx)	addl 12(%ebp),%ecx	movl -40(%ebp),%esi	movzbl _inverse(%esi),%eax	sall $8,%eax	movl -36(%ebp),%ebx	movzbl 2(%edi,%ebx),%edx	movb _gf_mul_table(%edx,%eax),%al	movl 8(%ebp),%esi	movb %al,(%ecx,%esi)	addl 12(%ebp),%ecx	movl -40(%ebp),%edi	movzbl _inverse(%edi),%eax	sall $8,%eax	movl -8(%ebp),%esi	movzbl 3(%esi,%ebx),%edx	movb _gf_mul_table(%edx,%eax),%al	movl 8(%ebp),%edi	movb %al,(%ecx,%edi)	addl 12(%ebp),%ecx	addl $4,%ebx	movl %ebx,-36(%ebp)	movl 12(%ebp),%esi	cmpl %esi,%ebx	jl L524L514:	incl -4(%ebp)	movl 12(%ebp),%edi	cmpl %edi,-4(%ebp)	jl L515L513:	pushl -12(%ebp)	call _free	pushl -8(%ebp)	call _free	pushl -16(%ebp)	call _freeL604:	xorl %eax,%eax	leal -52(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe8:	.size	 _invert_vdm,Lfe8-_invert_vdm	.align 2.globl _fec_free	.type	 _fec_free,@function_fec_free:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movl 8(%ebp),%ebx	pushl 8(%ebx)	call _free	pushl %ebx	call _free	movl -4(%ebp),%ebx	leave	retLfe9:	.size	 _fec_free,Lfe9-_fec_freeLC25:	.ascii "Invalid parameters k %d n %d GF_SIZE %d\12\0"LC26:	.ascii "new_code\0"	.align 2.globl _fec_new	.type	 _fec_new,@function_fec_new:	pushl %ebp	movl %esp,%ebp	subl $24,%esp	pushl %edi	pushl %esi	pushl %ebx	cmpl $256,8(%ebp)	jg L608	cmpl $256,12(%ebp)	jg L608	movl 12(%ebp),%edx	cmpl %edx,8(%ebp)	jle L607L608:	pushl $255	pushl 12(%ebp)	pushl 8(%ebp)	pushl $LC25	pushl $___sF+176	call _fprintf	xorl %eax,%eax	jmp L634	.align 2,0x90L607:	pushl $LC26	pushl $12	call _my_malloc	movl %eax,-8(%ebp)	movl 8(%ebp),%edi	movl %edi,(%eax)	movl 12(%ebp),%edi	movl -8(%ebp),%edx	movl %edi,4(%edx)	pushl $LC19	movl 12(%ebp),%ebx	imull 8(%ebp),%ebx	pushl %ebx	call _my_malloc	movl -8(%ebp),%edx	movl %eax,8(%edx)	pushl $LC19	pushl %ebx	call _my_malloc	movl %eax,-4(%ebp)	movb $1,(%eax)	movl $1,%ebx	addl $24,%esp	cmpl %ebx,8(%ebp)	jle L610	movl 8(%ebp),%eax	decl %eax	andl $3,%eax	je L612	cmpl $1,%eax	jle L690	cmpl $2,%eax	jle L691	movl -4(%ebp),%edi	movb $0,1(%edi)	movl $2,%ebxL691:	movl -4(%ebp),%edx	movb $0,(%ebx,%edx)	incl %ebxL690:	movl -4(%ebp),%edi	movb $0,(%ebx,%edi)	incl %ebx	cmpl %ebx,8(%ebp)	jle L610	.align 2,0x90L612:	movl -4(%ebp),%edx	movb $0,(%ebx,%edx)	movb $0,1(%edx,%ebx)	movb $0,2(%edx,%ebx)	movb $0,3(%edx,%ebx)	addl $4,%ebx	cmpl %ebx,8(%ebp)	jg L612L610:	movl -4(%ebp),%esi	addl 8(%ebp),%esi	movl $0,-24(%ebp)	jmp L707	.align 2,0x90	.align 2,0x90L617:	xorl %ebx,%ebx	cmpl %ebx,8(%ebp)	jle L616	xorl %ecx,%ecx	movl 8(%ebp),%eax	andl $3,%eax	je L621	cmpl $1,%eax	jle L657	cmpl $2,%eax	jle L658	xorl %eax,%eax	movb _gf_exp,%al	movb %al,(%ebx,%esi)	addl -24(%ebp),%ecx	incl %ebxL658:	movl %ecx,%eax	cmpl $254,%ecx	jle L665	.align 2,0x90L666:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L666L665:	andl $255,%eax	movb _gf_exp(%eax),%al	movb %al,(%ebx,%esi)	addl -24(%ebp),%ecx	incl %ebxL657:	movl %ecx,%eax	cmpl $254,%ecx	jle L669	.align 2,0x90L670:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L670L669:	andl $255,%eax	movb _gf_exp(%eax),%al	movb %al,(%ebx,%esi)	addl -24(%ebp),%ecx	incl %ebx	cmpl %ebx,8(%ebp)	jle L616	.align 2,0x90L621:	movl %ecx,%eax	cmpl $254,%ecx	jle L673	.align 2,0x90L674:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L674L673:	andl $255,%eax	movb _gf_exp(%eax),%al	movb %al,(%ebx,%esi)	addl -24(%ebp),%ecx	leal 1(%ebx),%edi	movl %edi,-12(%ebp)	movl %ecx,%eax	cmpl $254,%ecx	jle L677	.align 2,0x90L678:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L678L677:	andl $255,%eax	movb _gf_exp(%eax),%al	movl -12(%ebp),%edx	movb %al,(%edx,%esi)	addl -24(%ebp),%ecx	leal 2(%ebx),%edi	movl %edi,-16(%ebp)	movl %ecx,%eax	cmpl $254,%ecx	jle L681	.align 2,0x90L682:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L682L681:	andl $255,%eax	movb _gf_exp(%eax),%al	movl -16(%ebp),%edx	movb %al,(%edx,%esi)	addl -24(%ebp),%ecx	leal 3(%ebx),%edi	movl %edi,-20(%ebp)	movl %ecx,%eax	cmpl $254,%ecx	jle L685	.align 2,0x90L686:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L686L685:	andl $255,%eax	movb _gf_exp(%eax),%al	movl -20(%ebp),%edx	movb %al,(%edx,%esi)	addl -24(%ebp),%ecx	addl $4,%ebx	cmpl %ebx,8(%ebp)	jg L621L616:	incl -24(%ebp)	addl 8(%ebp),%esi

⌨️ 快捷键说明

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