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

📄 fec.s16.980624a

📁 当前很多文章多提到的lugi的reed-solomon编码的源代码
💻 980624A
📖 第 1 页 / 共 2 页
字号:
	.file	"fec.c"gcc2_compiled.:___gnu_compiled_c:.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,68LC15:	.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 L28	pushl 12(%ebp)	pushl $LC15	pushl $___sF+176	call _fprintf	pushl $1	call _exit	.align 2,0x90L28:	leave	retLfe1:	.size	 _my_malloc,Lfe1-_my_malloc	.align 2	.type	 _generate_gf,@function_generate_gf:	pushl %ebp	movl %esp,%ebp	pushl %esi	pushl %ebx	movl _allPp+64,%ebx	movl $1,%ecx	movw $0,_gf_exp+32	xorl %edx,%edx	.align 2,0x90L33:	movw %cx,_gf_exp(,%edx,2)	movzwl %cx,%eax	movl %edx,_gf_log(,%eax,4)	cmpb $49,(%edx,%ebx)	jne L32	xorw %cx,_gf_exp+32L32:	incl %edx	addw %cx,%cx	cmpl $15,%edx	jle L33	movzwl _gf_exp+32,%eax	movl $16,_gf_log(,%eax,4)	movl $32768,%ecx	movl $17,%edx	.align 2,0x90L39:	cmpw %cx,_gf_exp-2(,%edx,2)	jb L40	movl %ecx,%eax	xorw _gf_exp-2(,%edx,2),%ax	addw %ax,%ax	xorw _gf_exp+32,%ax	movw %ax,_gf_exp(,%edx,2)	jmp L41	.align 2,0x90L40:	movw _gf_exp-2(,%edx,2),%si	addw %si,%si	movw %si,_gf_exp(,%edx,2)L41:	movzwl _gf_exp(,%edx,2),%eax	movl %edx,_gf_log(,%eax,4)	incl %edx	cmpl $65534,%edx	jle L39	movl $65535,_gf_log	xorl %edx,%edx	.align 2,0x90L46:	movw _gf_exp(,%edx,2),%ax	movw %ax,_gf_exp+131070(,%edx,2)	incl %edx	cmpl $65534,%edx	jle L46	movw $0,_inverse	movw $1,_inverse+2	movl $2,%edx	.align 2,0x90L51:	movl $65535,%eax	subl _gf_log(,%edx,4),%eax	movw _gf_exp(,%eax,2),%ax	movw %ax,_inverse(,%edx,2)	incl %edx	cmpl $65535,%edx	jle L51	leal -8(%ebp),%esp	popl %ebx	popl %esi	leave	retLfe2:	.size	 _generate_gf,Lfe2-_generate_gf	.align 2	.type	 _addmul1,@function_addmul1:	pushl %ebp	movl %esp,%ebp	pushl %edi	pushl %esi	pushl %ebx	movl 8(%ebp),%edx	movl 20(%ebp),%edi	leal 0(,%edi,2),%eax	/* DI free now */	movl 12(%ebp),%edi	leal -30(%edx,%eax),%esi	movzwl 16(%ebp),%eax	movl _gf_log(,%eax,4),%eax	addl %eax,%eax	leal _gf_exp(%eax),%ebx	cmpl %esi,%edx	jae L55	.align 2,0x90#define XYZ(n) \	movzwl n(%edi),%eax ; \	cmpl $0,%eax;  \	je 1f;  \	movl _gf_log(,%eax,4),%eax ; \	movw (%ebx,%eax,2),%ax ; \	xorw %ax,n(%edx) ; \1: ;#define XYZ2(n) \	movl n(%edi),%eax ; \	movzwl %ax, %ecx ; \	cmpw $0,%ax;  \	je 1f;  \	movl _gf_log(,%ecx,4),%ecx ; \	movw (%ebx,%ecx,2),%ax ; \1: \	roll $16, %eax ; \	movzwl %ax, %ecx ; \	cmpw $0,%ax;  \	je 2f;  \	movl _gf_log(,%ecx,4),%ecx ; \	movw (%ebx,%ecx,2),%ax ; \2: \	roll $16, %eax ; \	xorl %ax,n(%edx) ;	L57:#if 0	XYZ2(0)	XYZ2(4)	XYZ2(8)	XYZ2(12)	XYZ2(16)	XYZ2(20)	XYZ2(24)	XYZ2(28)#else	XYZ(0)	XYZ(2)	XYZ(4)	XYZ(6)	XYZ(8)	XYZ(10)	XYZ(12)	XYZ(14)	XYZ(16)	XYZ(18)	XYZ(20)	XYZ(22)	XYZ(24)	XYZ(26)	XYZ(28)	XYZ(30)#endif	addl $32,%edx	addl $32,%edi	cmpl %esi,%edx	jb L57L55:	addl $30,%esi	cmpl %esi,%edx	jae L76	.align 2,0x90L78:	XYZ(0) ;	addl $2,%edx	addl $2,%edi	cmpl %esi,%edx	jb L78L76:	leal -12(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe3:	.size	 _addmul1,Lfe3-_addmul1	.align 2	.type	 _matmul,@function_matmul:	pushl %ebp	movl %esp,%ebp	subl $24,%esp	pushl %edi	pushl %esi	pushl %ebx	movl $0,-4(%ebp)	movl 20(%ebp),%edx	cmpl %edx,-4(%ebp)	jge L83	movl 28(%ebp),%esi	addl %esi,%esi	movl %esi,-16(%ebp)	.align 2,0x90L85:	xorl %ebx,%ebx	cmpl %ebx,28(%ebp)	jle L84	movl -4(%ebp),%eax	imull 24(%ebp),%eax	addl %eax,%eax	movl %eax,-8(%ebp)	.align 2,0x90L89:	movl 8(%ebp),%edi	addl -8(%ebp),%edi	movl 12(%ebp),%edx	leal (%edx,%ebx,2),%edx	movl %edx,-24(%ebp)	movw $0,-12(%ebp)	xorl %ecx,%ecx	cmpl %ecx,24(%ebp)	jle L91	.align 2,0x90L93:	movzwl (%edi),%esi	movl %esi,-20(%ebp)	movl -24(%ebp),%edx	movzwl (%edx),%eax	testl %esi,%esi	je L96	testl %eax,%eax	jne L95L96:	xorl %eax,%eax	jmp L94	.align 2,0x90L95:	movl -20(%ebp),%esi	movl _gf_log(,%esi,4),%esi	addl _gf_log(,%eax,4),%esi	movl %esi,%eax	movw _gf_exp(,%eax,2),%axL94:	xorw %ax,-12(%ebp)	incl %ecx	addl $2,%edi	movl -16(%ebp),%edx	addl %edx,-24(%ebp)	cmpl %ecx,24(%ebp)	jg L93L91:	movl -4(%ebp),%eax	imull 28(%ebp),%eax	addl %ebx,%eax	movw -12(%ebp),%dx	movl 16(%ebp),%esi	movw %dx,(%esi,%eax,2)	incl %ebx	cmpl %ebx,28(%ebp)	jg L89L84:	incl -4(%ebp)	movl 20(%ebp),%esi	cmpl %esi,-4(%ebp)	jl L85L83:	leal -36(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe4:	.size	 _matmul,Lfe4-_matmulLC16:	.ascii "indxc\0"LC17:	.ascii "indxr\0"LC18:	.ascii "ipiv\0"LC19:	.ascii " ## __LINE__ ## \0"LC20:	.ascii "singular matrix\12\0"LC21:	.ascii "XXX pivot not found!\12\0"LC22:	.ascii "singular matrix 2\12\0"LC23:	.ascii "AARGH, indxr[col] %d\12\0"LC24:	.ascii "AARGH, indxc[col] %d\12\0"	.align 2	.type	 _invert_mat,@function_invert_mat:	pushl %ebp	movl %esp,%ebp	subl $52,%esp	pushl %edi	pushl %esi	pushl %ebx	movl $1,-16(%ebp)	pushl $LC16	movl 12(%ebp),%edx	sall $2,%edx	movl %edx,-52(%ebp)	pushl %edx	call _my_malloc	movl %eax,-20(%ebp)	pushl $LC17	pushl -52(%ebp)	call _my_malloc	movl %eax,-24(%ebp)	pushl $LC18	pushl -52(%ebp)	call _my_malloc	movl %eax,-28(%ebp)	pushl $LC19	movl 12(%ebp),%ecx	addl %ecx,%ecx	movl %ecx,-52(%ebp)	pushl %ecx	call _my_malloc	movl %eax,-32(%ebp)	addl $32,%esp	pushl $LC19	pushl -52(%ebp)	call _my_malloc	movl %eax,-36(%ebp)	pushl -52(%ebp)	pushl -32(%ebp)	call _bzero	xorl %eax,%eax	addl $16,%esp	cmpl %eax,12(%ebp)	jle L102	.align 2,0x90L104:	movl -28(%ebp),%ebx	movl $0,(%ebx,%eax,4)	incl %eax	cmpl %eax,12(%ebp)	jg L104L102:	movl $0,-12(%ebp)	movl 12(%ebp),%edx	cmpl %edx,-12(%ebp)	jge L107	.align 2,0x90L109:	movl $-1,-8(%ebp)	movl $-1,-4(%ebp)	movl -12(%ebp),%ecx	movl -28(%ebp),%ebx	cmpl $1,(%ebx,%ecx,4)	je L110	movl %ecx,%eax	imull 12(%ebp),%eax	addl %ecx,%eax	movl 8(%ebp),%edx	cmpw $0,(%edx,%eax,2)	je L110	movl %ecx,-4(%ebp)	movl %ecx,-8(%ebp)	jmp L111	.align 2,0x90L110:	xorl %edi,%edi	cmpl %edi,12(%ebp)	jle L113	.align 2,0x90L115:	movl -28(%ebp),%ecx	cmpl $1,(%ecx,%edi,4)	je L114	xorl %esi,%esi	cmpl %esi,12(%ebp)	jle L114	.align 2,0x90L120:	movl -28(%ebp),%ebx	cmpl $0,(%ebx,%esi,4)	jne L121	movl 12(%ebp),%eax	imull %edi,%eax	addl %esi,%eax	movl 8(%ebp),%edx	cmpw $0,(%edx,%eax,2)	je L119	movl %edi,-4(%ebp)	movl %esi,-8(%ebp)	jmp L111	.align 2,0x90L121:	movl -28(%ebp),%ecx	cmpl $1,(%ecx,%esi,4)	jle L119	pushl $LC20	jmp L171	.align 2,0x90L119:	incl %esi	cmpl %esi,12(%ebp)	jg L120L114:	incl %edi	cmpl %edi,12(%ebp)	jg L115L113:	cmpl $-1,-8(%ebp)	jne L111	pushl $LC21	jmp L171	.align 2,0x90L111:	movl -8(%ebp),%ebx	movl -28(%ebp),%edx	incl (%edx,%ebx,4)	cmpl %ebx,-4(%ebp)	je L129	xorl %esi,%esi	cmpl %esi,12(%ebp)	jle L129	movl -4(%ebp),%ecx	imull 12(%ebp),%ecx	movl %ecx,-40(%ebp)	movl -8(%ebp),%edi	imull 12(%ebp),%edi	.align 2,0x90L133:	movl -40(%ebp),%ebx	addl %esi,%ebx	movl %ebx,-44(%ebp)	movl 8(%ebp),%edx	movw (%edx,%ebx,2),%dx	movw %dx,-52(%ebp)	leal (%esi,%edi),%ecx	movl 8(%ebp),%ebx	movw (%ebx,%ecx,2),%ax	movl -44(%ebp),%edx	movw %ax,(%ebx,%edx,2)	movw -52(%ebp),%dx	movw %dx,(%ebx,%ecx,2)	incl %esi	cmpl %esi,12(%ebp)	jg L133L129:	movl -4(%ebp),%edx	movl -12(%ebp),%ecx	movl -24(%ebp),%ebx	movl %edx,(%ebx,%ecx,4)	movl -8(%ebp),%ebx	movl -20(%ebp),%edx	movl %ebx,(%edx,%ecx,4)	movl -8(%ebp),%eax	imull 12(%ebp),%eax	movl 8(%ebp),%ecx	leal (%ecx,%eax,2),%edi	movw (%edi,%ebx,2),%ax	testw %ax,%ax	jne L135	pushl $LC22L171:	pushl $___sF+176	call _fprintf	addl $8,%esp	jmp L125	.align 2,0x90L135:	cmpw $1,%ax	je L136	andl $65535,%eax	movw _inverse(,%eax,2),%ax	movl -8(%ebp),%ebx	movw $1,(%edi,%ebx,2)	xorl %esi,%esi	cmpl %esi,12(%ebp)	jle L136	andl $65535,%eax	movl %eax,-52(%ebp)	.align 2,0x90L140:	movzwl (%edi,%esi,2),%eax	cmpl $0,-52(%ebp)	je L143	testl %eax,%eax	jne L142L143:	xorl %eax,%eax	jmp L141	.align 2,0x90L142:	movl -52(%ebp),%edx	movl _gf_log(,%edx,4),%edx	addl _gf_log(,%eax,4),%edx	movl %edx,%eax	movw _gf_exp(,%eax,2),%axL141:	movw %ax,(%edi,%esi,2)	incl %esi	cmpl %esi,12(%ebp)	jg L140L136:	movl -8(%ebp),%ecx	movl -32(%ebp),%ebx	movw $1,(%ebx,%ecx,2)	movl 12(%ebp),%eax	addl %eax,%eax	pushl %eax	pushl %ebx	pushl %edi	call _bcmp	addl $12,%esp	testl %eax,%eax	je L145	movl 8(%ebp),%edx	movl %edx,-52(%ebp)	xorl %esi,%esi	cmpl %esi,12(%ebp)	jle L145	.align 2,0x90L149:	cmpl %esi,-8(%ebp)	je L148	movl -8(%ebp),%ecx	movl -52(%ebp),%ebx	movw (%ebx,%ecx,2),%ax	movw $0,(%ebx,%ecx,2)	testw %ax,%ax	je L148	pushl 12(%ebp)	andl $65535,%eax	pushl %eax	pushl %edi	pushl %ebx	call _addmul1	addl $16,%espL148:	incl %esi	movl -52(%ebp),%ecx	movl 12(%ebp),%edx	leal (%ecx,%edx,2),%ecx	movl %ecx,-52(%ebp)	cmpl %edx,%esi	jl L149L145:	movl -8(%ebp),%ebx	movl -32(%ebp),%edx	movw $0,(%edx,%ebx,2)	incl -12(%ebp)	movl 12(%ebp),%ecx	cmpl %ecx,-12(%ebp)	jl L109L107:	movl 12(%ebp),%ebx	decl %ebx	movl %ebx,-12(%ebp)	js L155	.align 2,0x90L157:	movl -12(%ebp),%edx	movl -24(%ebp),%ecx	cmpl $0,(%ecx,%edx,4)	jl L159	movl 12(%ebp),%ebx	cmpl %ebx,(%ecx,%edx,4)	jl L158L159:	movl -12(%ebp),%edx	movl -24(%ebp),%ecx	pushl (%ecx,%edx,4)	pushl $LC23	jmp L172	.align 2,0x90L158:	movl -12(%ebp),%ebx	movl -20(%ebp),%edx	cmpl $0,(%edx,%ebx,4)	jl L162	movl 12(%ebp),%ecx	cmpl %ecx,(%edx,%ebx,4)	jl L161L162:	movl -12(%ebp),%ebx	movl -20(%ebp),%edx	pushl (%edx,%ebx,4)	pushl $LC24L172:	pushl $___sF+176	call _fprintf	addl $12,%esp	jmp L156	.align 2,0x90L161:	movl -12(%ebp),%ecx	movl -24(%ebp),%ebx	movl (%ebx,%ecx,4),%eax	movl -20(%ebp),%edx	cmpl %eax,(%edx,%ecx,4)	je L156	xorl %edi,%edi	cmpl %edi,12(%ebp)	jle L156	.align 2,0x90L168:	movl 12(%ebp),%ecx	imull %edi,%ecx	movl %ecx,-48(%ebp)	movl -12(%ebp),%ebx	movl -24(%ebp),%edx	addl (%edx,%ebx,4),%ecx	movl %ecx,-44(%ebp)	movl 8(%ebp),%ebx	movw (%ebx,%ecx,2),%bx	movw %bx,-52(%ebp)	movl -48(%ebp),%eax	movl -12(%ebp),%edx	movl -20(%ebp),%ecx	addl (%ecx,%edx,4),%eax	movl 8(%ebp),%ebx	movw (%ebx,%eax,2),%ax	movl -44(%ebp),%edx	movw %ax,(%ebx,%edx,2)	movl -48(%ebp),%edx	movl -12(%ebp),%ebx	addl (%ecx,%ebx,4),%edx	movw -52(%ebp),%bx	movl 8(%ebp),%ecx	movw %bx,(%ecx,%edx,2)	incl %edi	cmpl %edi,12(%ebp)	jg L168L156:	decl -12(%ebp)	jns L157L155:	movl $0,-16(%ebp)L125:	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 -64(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe5:	.size	 _invert_mat,Lfe5-_invert_mat	.align 2.globl _invert_vdm	.type	 _invert_vdm,@function_invert_vdm:	pushl %ebp	movl %esp,%ebp	subl $36,%esp	pushl %edi	pushl %esi	pushl %ebx	movl 12(%ebp),%edi	cmpl $1,%edi	je L218	pushl $LC19	leal (%edi,%edi),%ebx	pushl %ebx	call _my_malloc	movl %eax,-12(%ebp)	pushl $LC19	pushl %ebx	call _my_malloc	movl %eax,-8(%ebp)	pushl $LC19	pushl %ebx	call _my_malloc	movl %eax,-16(%ebp)	movl $1,%edx	xorl %ecx,%ecx	addl $24,%esp	cmpl %edi,%ecx	jge L176	.align 2,0x90L178:	movl -12(%ebp),%ebx	movw $0,(%ebx,%ecx,2)	movl 8(%ebp),%esi	movw (%esi,%edx,2),%ax	movl -16(%ebp),%ebx	movw %ax,(%ebx,%ecx,2)	incl %ecx	addl %edi,%edx	cmpl %edi,%ecx

⌨️ 快捷键说明

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