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

📄 fec.s.980621e

📁 当前很多文章多提到的lugi的reed-solomon编码的源代码
💻 980621E
📖 第 1 页 / 共 4 页
字号:
	.file	"fec.c"gcc2_compiled.:___gnu_compiled_c:.globl _allPp.data	.align 2	.type	 _allPp,@object_allPp:	.long 0	.long 0	.long LC0	.long LC1	.long LC2	.long LC3	.long LC4	.long LC5	.long LC6	.long LC7	.long LC8	.long LC9	.long LC10	.long LC11	.long LC12	.long LC13	.long LC14.textLC14:	.ascii "11010000000010001\0"LC13:	.ascii "1100000000000001\0"LC12:	.ascii "110000100010001\0"LC11:	.ascii "11011000000001\0"LC10:	.ascii "1100101000001\0"LC9:	.ascii "101000000001\0"LC8:	.ascii "10010000001\0"LC7:	.ascii "1000100001\0"LC6:	.ascii "101110001\0"LC5:	.ascii "10010001\0"LC4:	.ascii "1100001\0"LC3:	.ascii "101001\0"LC2:	.ascii "11001\0"LC1:	.ascii "1101\0"LC0:	.ascii "111\0"	.size	 _allPp,68	.align 2	.type	 _init_mul_table,@function_init_mul_table:	pushl %ebp	movl %esp,%ebp	subl $4,%esp	pushl %edi	pushl %esi	pushl %ebx	movl $_gf_log,%esi	movl $_gf_mul_table,-4(%ebp)	.align 2,0x90L24:	xorl %ecx,%ecx	movl -4(%ebp),%edi	.align 2,0x90L28:	movl (%esi),%eax	addl _gf_log(,%ecx,4),%eax	cmpl $254,%eax	jle L75	.align 2,0x90L76:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L76L75:	andl $255,%eax	movb _gf_exp(%eax),%al	movb %al,(%ecx,%edi)	leal 1(%ecx),%ebx	movl (%esi),%eax	addl _gf_log(,%ebx,4),%eax	cmpl $254,%eax	jle L79	.align 2,0x90L80:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L80L79:	andl $255,%eax	movb _gf_exp(%eax),%al	movb %al,(%ebx,%edi)	leal 2(%ecx),%ebx	movl (%esi),%eax	addl _gf_log(,%ebx,4),%eax	cmpl $254,%eax	jle L83	.align 2,0x90L84:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L84L83:	andl $255,%eax	movb _gf_exp(%eax),%al	movb %al,(%ebx,%edi)	leal 3(%ecx),%ebx	movl (%esi),%eax	addl _gf_log(,%ebx,4),%eax	cmpl $254,%eax	jle L87	.align 2,0x90L88:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L88L87:	andl $255,%eax	movb _gf_exp(%eax),%al	movb %al,(%ebx,%edi)	addl $4,%ecx	cmpl $255,%ecx	jle L28	addl $4,%esi	addl $256,-4(%ebp)	cmpl $_gf_log+1020,%esi	jle L24	xorl %ecx,%ecx	movl $_gf_mul_table,%eax	.align 2,0x90L39:	movb $0,(%eax)	movb $0,_gf_mul_table(%ecx)	movb $0,256(%eax)	movb $0,_gf_mul_table+1(%ecx)	movb $0,512(%eax)	movb $0,_gf_mul_table+2(%ecx)	movb $0,768(%eax)	movb $0,_gf_mul_table+3(%ecx)	movb $0,1024(%eax)	movb $0,_gf_mul_table+4(%ecx)	movb $0,1280(%eax)	movb $0,_gf_mul_table+5(%ecx)	movb $0,1536(%eax)	movb $0,_gf_mul_table+6(%ecx)	movb $0,1792(%eax)	movb $0,_gf_mul_table+7(%ecx)	movb $0,2048(%eax)	movb $0,_gf_mul_table+8(%ecx)	movb $0,2304(%eax)	movb $0,_gf_mul_table+9(%ecx)	movb $0,2560(%eax)	movb $0,_gf_mul_table+10(%ecx)	movb $0,2816(%eax)	movb $0,_gf_mul_table+11(%ecx)	movb $0,3072(%eax)	movb $0,_gf_mul_table+12(%ecx)	movb $0,3328(%eax)	movb $0,_gf_mul_table+13(%ecx)	movb $0,3584(%eax)	movb $0,_gf_mul_table+14(%ecx)	movb $0,3840(%eax)	movb $0,_gf_mul_table+15(%ecx)	addl $4096,%eax	addl $16,%ecx	cmpl $255,%ecx	jle L39	leal -16(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe1:	.size	 _init_mul_table,Lfe1-_init_mul_tableLC15:	.ascii "-- malloc failure allocating %s\12\0"	.align 2	.type	 _my_malloc,@function_my_malloc:	pushl %ebp	movl %esp,%ebp	pushl 8(%ebp)	call _malloc	addl $4,%esp	testl %eax,%eax	jne L91	pushl 12(%ebp)	pushl $LC15	pushl $___sF+176	call _fprintf	pushl $1	call _exit	.align 2,0x90L91:	leave	retLfe2:	.size	 _my_malloc,Lfe2-_my_malloc	.align 2	.type	 _generate_gf,@function_generate_gf:	pushl %ebp	movl %esp,%ebp	subl $40,%esp	pushl %edi	pushl %esi	pushl %ebx	movl _allPp+32,%ecx	movb $1,%dl	movb $0,_gf_exp+8	movb $1,_gf_exp	movl $0,_gf_log+4	cmpb $49,(%ecx)	jne L139	movb $1,_gf_exp+8L139:	addb %dl,%dl	movb %dl,_gf_exp+1	movzbl %dl,%eax	movl $1,_gf_log(,%eax,4)	cmpb $49,1(%ecx)	jne L142	xorb %dl,_gf_exp+8L142:	addb %dl,%dl	movb %dl,_gf_exp+2	movzbl %dl,%eax	movl $2,_gf_log(,%eax,4)	cmpb $49,2(%ecx)	jne L145	xorb %dl,_gf_exp+8L145:	addb %dl,%dl	movb %dl,_gf_exp+3	movzbl %dl,%eax	movl $3,_gf_log(,%eax,4)	cmpb $49,3(%ecx)	jne L148	xorb %dl,_gf_exp+8L148:	addb %dl,%dl	movb %dl,_gf_exp+4	movzbl %dl,%eax	movl $4,_gf_log(,%eax,4)	cmpb $49,4(%ecx)	jne L151	xorb %dl,_gf_exp+8L151:	addb %dl,%dl	movb %dl,_gf_exp+5	movzbl %dl,%eax	movl $5,_gf_log(,%eax,4)	cmpb $49,5(%ecx)	jne L154	xorb %dl,_gf_exp+8L154:	addb %dl,%dl	movb %dl,_gf_exp+6	movzbl %dl,%eax	movl $6,_gf_log(,%eax,4)	cmpb $49,6(%ecx)	jne L157	xorb %dl,_gf_exp+8L157:	addb %dl,%dl	movb %dl,_gf_exp+7	movzbl %dl,%eax	movl $7,_gf_log(,%eax,4)	cmpb $49,7(%ecx)	jne L160	xorb %dl,_gf_exp+8L160:	movzbl _gf_exp+8,%eax	movl $8,_gf_log(,%eax,4)	movb $128,%dl	movl $9,%ecx	movl $_gf_exp+9,-4(%ebp)	movl $_gf_exp+9,-8(%ebp)	movl $_gf_exp+8,-12(%ebp)	movl $_gf_exp+9,%edi	movl $_gf_exp+8,-40(%ebp)	movl $_gf_exp+8,-36(%ebp)	.align 2,0x90L102:	movl -36(%ebp),%ebx	cmpb %dl,(%ebx)	jb L116	movb %dl,%al	movl -40(%ebp),%esi	xorb (%esi),%al	addb %al,%al	xorb _gf_exp+8,%al	movb %al,(%edi)	jmp L117	.align 2,0x90L116:	movl -12(%ebp),%ebx	movb (%ebx),%bl	addb %bl,%bl	movl -8(%ebp),%esi	movb %bl,(%esi)L117:	movl -4(%ebp),%esi	movzbl (%esi),%eax	movl %ecx,_gf_log(,%eax,4)	leal 1(%ecx),%ebx	movl %ebx,-16(%ebp)	movl -36(%ebp),%esi	cmpb %dl,1(%esi)	jb L120	movb %dl,%al	movl -40(%ebp),%ebx	xorb 1(%ebx),%al	addb %al,%al	xorb _gf_exp+8,%al	movb %al,1(%edi)	jmp L121	.align 2,0x90L120:	movl -12(%ebp),%ebx	movb 1(%ebx),%bl	addb %bl,%bl	movl -8(%ebp),%esi	movb %bl,1(%esi)L121:	movl -4(%ebp),%esi	movzbl 1(%esi),%eax	movl -16(%ebp),%ebx	movl %ebx,_gf_log(,%eax,4)	leal 2(%ecx),%esi	movl %esi,-20(%ebp)	movl -36(%ebp),%ebx	cmpb %dl,2(%ebx)	jb L124	movb %dl,%al	movl -40(%ebp),%esi	xorb 2(%esi),%al	addb %al,%al	xorb _gf_exp+8,%al	movb %al,2(%edi)	jmp L125	.align 2,0x90L124:	movl -12(%ebp),%ebx	movb 2(%ebx),%bl	addb %bl,%bl	movl -8(%ebp),%esi	movb %bl,2(%esi)L125:	movl -4(%ebp),%esi	movzbl 2(%esi),%eax	movl -20(%ebp),%ebx	movl %ebx,_gf_log(,%eax,4)	leal 3(%ecx),%esi	movl %esi,-24(%ebp)	movl -36(%ebp),%ebx	cmpb %dl,3(%ebx)	jb L128	movb %dl,%al	movl -40(%ebp),%esi	xorb 3(%esi),%al	addb %al,%al	xorb _gf_exp+8,%al	movb %al,3(%edi)	jmp L129	.align 2,0x90L128:	movl -12(%ebp),%ebx	movb 3(%ebx),%bl	addb %bl,%bl	movl -8(%ebp),%esi	movb %bl,3(%esi)L129:	movl -4(%ebp),%esi	movzbl 3(%esi),%eax	movl -24(%ebp),%ebx	movl %ebx,_gf_log(,%eax,4)	leal 4(%ecx),%esi	movl %esi,-28(%ebp)	movl -36(%ebp),%ebx	cmpb %dl,4(%ebx)	jb L132	movb %dl,%al	movl -40(%ebp),%esi	xorb 4(%esi),%al	addb %al,%al	xorb _gf_exp+8,%al	movb %al,4(%edi)	jmp L133	.align 2,0x90L132:	movl -12(%ebp),%ebx	movb 4(%ebx),%bl	addb %bl,%bl	movl -8(%ebp),%esi	movb %bl,4(%esi)L133:	movl -4(%ebp),%esi	movzbl 4(%esi),%eax	movl -28(%ebp),%ebx	movl %ebx,_gf_log(,%eax,4)	leal 5(%ecx),%esi	movl %esi,-32(%ebp)	movl -36(%ebp),%ebx	cmpb %dl,5(%ebx)	jb L136	movb %dl,%al	movl -40(%ebp),%esi	xorb 5(%esi),%al	addb %al,%al	xorb _gf_exp+8,%al	movb %al,5(%edi)	jmp L137	.align 2,0x90L136:	movl -12(%ebp),%ebx	movb 5(%ebx),%bl	addb %bl,%bl	movl -8(%ebp),%esi	movb %bl,5(%esi)L137:	movl -4(%ebp),%esi	movzbl 5(%esi),%eax	movl -32(%ebp),%ebx	movl %ebx,_gf_log(,%eax,4)	addl $6,%esi	movl %esi,-4(%ebp)	addl $6,-8(%ebp)	addl $6,%edi	addl $6,-12(%ebp)	addl $6,-40(%ebp)	addl $6,-36(%ebp)	addl $6,%ecx	cmpl $254,%ecx	jle L102	movl $255,_gf_log	movb $0,_gf_exp+255	movb $0,_inverse	movb $1,_inverse+1	movl $2,%ecx	.align 2,0x90L109:	movl $_gf_exp+255,%eax	subl _gf_log(,%ecx,4),%eax	movb (%eax),%al	movb %al,_inverse(%ecx)	leal 1(%ecx),%edx	movl $_gf_exp+255,%eax	subl _gf_log(,%edx,4),%eax	movb (%eax),%al	movb %al,_inverse(%edx)	addl $2,%ecx	cmpl $255,%ecx	jle L109	leal -52(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe3:	.size	 _generate_gf,Lfe3-_generate_gf	.align 2	.type	 _addmul1,@function_addmul1:	pushl %ebp	movl %esp,%ebp	subl $16,%esp	pushl %edi	pushl %esi	pushl %ebx	movl 8(%ebp),%ebx	movl 12(%ebp),%esi	movb 16(%ebp),%cl	movb %cl,-4(%ebp)	xorl %edx,%edx	movl 20(%ebp),%edi	addl $-16,%edi	movl %edi,-8(%ebp)	cmpl %edi,%edx	jge L165	movzbl %cl,%eax	sall $8,%eax	addl $_gf_mul_table,%eax	movl %eax,-12(%ebp)	movl %ebx,-16(%ebp)	movl -12(%ebp),%edi	.align 2,0x90L167:	movw (%edx,%esi),%cx	movzbl %cl, %eax	movzbl %ch, %ecx	movb (%eax,%edi),%al	movb (%ecx,%edi),%ah	xorw %ax,0(%ebx,%edx)	movw 2(%esi,%edx),%cx	movzbl %cl, %eax	movzbl %ch, %ecx	movb (%eax,%edi),%al	movb (%ecx,%edi),%ah	xorw %ax,2(%ebx,%edx)	movw 4(%esi,%edx),%cx	movzbl %cl, %eax	movzbl %ch, %ecx	movb (%eax,%edi),%al	movb (%ecx,%edi),%ah	xorw %ax,4(%ebx,%edx)	movw 6(%esi,%edx),%cx	movzbl %cl, %eax	movzbl %ch, %ecx	movb (%eax,%edi),%al	movb (%ecx,%edi),%ah	xorw %ax,6(%ebx,%edx)	movw 8(%esi,%edx),%cx	movzbl %cl, %eax	movzbl %ch, %ecx	movb (%eax,%edi),%al	movb (%ecx,%edi),%ah	xorw %ax,8(%ebx,%edx)	movw 10(%esi,%edx),%cx	movzbl %cl, %eax	movzbl %ch, %ecx	movb (%eax,%edi),%al	movb (%ecx,%edi),%ah	xorw %ax,10(%ebx,%edx)	movw 12(%esi,%edx),%cx	movzbl %cl, %eax	movzbl %ch, %ecx	movb (%eax,%edi),%al	movb (%ecx,%edi),%ah	xorw %ax,12(%ebx,%edx)	movw 14(%esi,%edx),%cx	movzbl %cl, %eax	movzbl %ch, %ecx	movb (%eax,%edi),%al	movb (%ecx,%edi),%ah	xorw %ax,14(%ebx,%edx)	addl $16,%edx	cmpl %edx,-8(%ebp)	jg L167L165:	cmpl %edx,20(%ebp)	jle L174	movzbl -4(%ebp),%eax	sall $8,%eax	addl $_gf_mul_table,%eax	movl %eax,-16(%ebp)	addl %edx,%ebx	movl %ebx,-12(%ebp)	movl 20(%ebp),%eax	subl %edx,%eax	andl $3,%eax	je L176	cmpl $1,%eax	jle L177	cmpl $2,%eax	jle L178	movzbl (%edx,%esi),%eax	movl -16(%ebp),%ecx	movb (%eax,%ecx),%al	xorb %al,(%ebx)	incl -12(%ebp)	incl %edxL178:	movzbl (%edx,%esi),%eax	movl -16(%ebp),%edi	movb (%eax,%edi),%al	movl -12(%ebp),%edi	xorb %al,(%edi)	incl %edi	movl %edi,-12(%ebp)	incl %edxL177:	movzbl (%edx,%esi),%eax	movl -16(%ebp),%ecx	movb (%eax,%ecx),%al	movl -12(%ebp),%ecx	xorb %al,(%ecx)	incl %ecx	movl %ecx,-12(%ebp)	incl %edx	cmpl %edx,20(%ebp)	jle L174L176:	movl -12(%ebp),%ebx	movl %ebx,-12(%ebp)	.align 2,0x90L172:	movzbl (%edx,%esi),%eax	movl -12(%ebp),%ecx	movb (%ecx),%cl	movl -16(%ebp),%edi	xorb (%eax,%edi),%cl	movb %cl,(%ebx)	movzbl 1(%esi,%edx),%eax	movl -12(%ebp),%ecx	movb 1(%ecx),%cl	xorb (%eax,%edi),%cl	movb %cl,1(%ebx)	movzbl 2(%esi,%edx),%eax	movl -12(%ebp),%ecx	movb 2(%ecx),%cl	xorb (%eax,%edi),%cl	movb %cl,2(%ebx)	movzbl 3(%esi,%edx),%eax	movl -12(%ebp),%ecx	movb 3(%ecx),%cl	xorb (%eax,%edi),%cl	movb %cl,3(%ebx)	addl $4,%ebx	addl $4,-12(%ebp)	addl $4,%edx	cmpl %edx,20(%ebp)	jg L172L174:	leal -28(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe4:	.size	 _addmul1,Lfe4-_addmul1	.align 2	.type	 _matmul,@function_matmul:	pushl %ebp	movl %esp,%ebp	subl $20,%esp	pushl %edi	pushl %esi	pushl %ebx	movl $0,-4(%ebp)	movl 20(%ebp),%edi	cmpl %edi,-4(%ebp)	jge L196	movl $0,-12(%ebp)	movl $0,-16(%ebp)	.align 2,0x90L198:	movl $0,-8(%ebp)	jmp L229	.align 2,0x90	.align 2,0x90L202:	movl 8(%ebp),%esi	addl -16(%ebp),%esi	movl 12(%ebp),%ecx	addl -8(%ebp),%ecx	xorb %bl,%bl	movl $0,-20(%ebp)	movl 24(%ebp),%edi	cmpl %edi,-20(%ebp)	jge L204	movl %edi,%eax	andl $3,%eax	je L206	cmpl $1,%eax	jle L212	cmpl $2,%eax	jle L213	movzbl (%esi),%eax	sall $8,%eax	movzbl (%ecx),%edx	movb _gf_mul_table(%edx,%eax),%bl	incl -20(%ebp)	incl %esi	addl 28(%ebp),%ecxL213:	movzbl (%esi),%eax	sall $8,%eax	movzbl (%ecx),%edx	xorb _gf_mul_table(%edx,%eax),%bl	incl -20(%ebp)	incl %esi	addl 28(%ebp),%ecxL212:	movzbl (%esi),%eax	sall $8,%eax	movzbl (%ecx),%edx	xorb _gf_mul_table(%edx,%eax),%bl	incl -20(%ebp)	incl %esi	jmp L230	.align 2,0x90	.align 2,0x90L206:	movzbl (%esi),%edx	sall $8,%edx	movzbl (%ecx),%eax	xorb _gf_mul_table(%eax,%edx),%bl	addl 28(%ebp),%ecx	movzbl 1(%esi),%edx	sall $8,%edx	movzbl (%ecx),%eax	xorb _gf_mul_table(%eax,%edx),%bl	addl 28(%ebp),%ecx	movzbl 2(%esi),%edx	sall $8,%edx	movzbl (%ecx),%eax	xorb _gf_mul_table(%eax,%edx),%bl	addl 28(%ebp),%ecx	movzbl 3(%esi),%edx	sall $8,%edx	movzbl (%ecx),%eax	xorb _gf_mul_table(%eax,%edx),%bl	addl $4,-20(%ebp)	addl $4,%esiL230:	addl 28(%ebp),%ecx	movl 24(%ebp),%edi	cmpl %edi,-20(%ebp)	jl L206L204:	movl -12(%ebp),%eax	addl -8(%ebp),%eax	movl 16(%ebp),%edi	movb %bl,(%eax,%edi)	incl -8(%ebp)L229:	movl 28(%ebp),%edi	cmpl %edi,-8(%ebp)	jl L202	movl 28(%ebp),%edi	addl %edi,-12(%ebp)	movl 24(%ebp),%edi	addl %edi,-16(%ebp)	incl -4(%ebp)	movl 20(%ebp),%edi	cmpl %edi,-4(%ebp)	jl L198L196:	leal -32(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe5:	.size	 _matmul,Lfe5-_matmul	.align 2	.type	 _is_identity,@function_is_identity:	pushl %ebp	movl %esp,%ebp	pushl %esi	pushl %ebx	movl 8(%ebp),%edx	movl 12(%ebp),%esi	xorl %ebx,%ebx	cmpl %esi,%ebx	jge L233	.align 2,0x90L235:	xorl %ecx,%ecx	cmpl %esi,%ecx	jge L234	movl %esi,%eax	andl $3,%eax	je L239	cmpl $1,%eax	jle L250	cmpl $2,%eax	jle L251	testl %ebx,%ebx	jne L256	cmpb $1,(%edx)	jne L285	jmp L254	.align 2,0x90L256:	cmpb $0,(%edx)	jne L285L254:	incl %edx	incl %ecxL251:	cmpl %ecx,%ebx	jne L261	cmpb $1,(%edx)	jne L285	jmp L259	.align 2,0x90L261:	cmpb $0,(%edx)	jne L285L259:	incl %edx	incl %ecxL250:	cmpl %ecx,%ebx	jne L266	cmpb $1,(%edx)

⌨️ 快捷键说明

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