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

📄 fec.s.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,68	.align 2	.type	 _init_mul_table,@function_init_mul_table:	pushl %ebp	movl %esp,%ebp	pushl %esi	pushl %ebx	xorl %ebx,%ebx	.align 2,0x90L24:	xorl %ecx,%ecx	movl %ebx,%eax	sall $8,%eax	leal _gf_mul_table(%eax),%esi	.align 2,0x90L28:	movl _gf_log(,%ebx,4),%eax	addl _gf_log(,%ecx,4),%eax	cmpl $254,%eax	jle L31	.align 2,0x90L32:	addl $-255,%eax	movl %eax,%edx	sarl $8,%edx	andl $255,%eax	addl %edx,%eax	cmpl $254,%eax	jg L32L31:	andl $255,%eax	movb _gf_exp(%eax),%al	movb %al,(%ecx,%esi)	incl %ecx	cmpl $255,%ecx	jle L28	incl %ebx	cmpl $255,%ebx	jle L24	xorl %ecx,%ecx	.align 2,0x90L39:	movl %ecx,%eax	sall $8,%eax	movb $0,_gf_mul_table(%eax)	movb $0,_gf_mul_table(%ecx)	incl %ecx	cmpl $255,%ecx	jle L39	leal -8(%ebp),%esp	popl %ebx	popl %esi	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 L42	pushl 12(%ebp)	pushl $LC15	pushl $___sF+176	call _fprintf	pushl $1	call _exit	.align 2,0x90L42:	leave	retLfe2:	.size	 _my_malloc,Lfe2-_my_malloc	.align 2	.type	 _generate_gf,@function_generate_gf:	pushl %ebp	movl %esp,%ebp	pushl %esi	pushl %ebx	movl _allPp+32,%esi	movb $1,%cl	movb $0,_gf_exp+8	xorl %edx,%edx	.align 2,0x90L47:	movb %cl,_gf_exp(%edx)	movzbl %cl,%eax	movl %edx,_gf_log(,%eax,4)	cmpb $49,(%edx,%esi)	jne L46	xorb %cl,_gf_exp+8L46:	incl %edx	addb %cl,%cl	cmpl $7,%edx	jle L47	movzbl _gf_exp+8,%eax	movl $8,_gf_log(,%eax,4)	movb $128,%cl	movl $9,%edx	.align 2,0x90L53:	cmpb %cl,_gf_exp-1(%edx)	jb L54	movb %cl,%al	xorb _gf_exp-1(%edx),%al	addb %al,%al	xorb _gf_exp+8,%al	movb %al,_gf_exp(%edx)	jmp L55	.align 2,0x90L54:	movb _gf_exp-1(%edx),%bl	addb %bl,%bl	movb %bl,_gf_exp(%edx)L55:	movzbl _gf_exp(%edx),%eax	movl %edx,_gf_log(,%eax,4)	incl %edx	cmpl $254,%edx	jle L53	movl $255,_gf_log	xorl %edx,%edx	.align 2,0x90L60:	movb _gf_exp(%edx),%al	movb %al,_gf_exp+255(%edx)	incl %edx	cmpl $254,%edx	jle L60	movb $0,_inverse	movb $1,_inverse+1	movl $2,%edx	.align 2,0x90L65:	movl $_gf_exp+255,%eax	subl _gf_log(,%edx,4),%eax	movb (%eax),%al	movb %al,_inverse(%edx)	incl %edx	cmpl $255,%edx	jle L65	leal -8(%ebp),%esp	popl %ebx	popl %esi	leave	retLfe3:	.size	 _generate_gf,Lfe3-_generate_gf	.align 2	.type	 _addmul1,@function_addmul1:	pushl %ebp	movl %esp,%ebp	pushl %esi	pushl %ebx	movl 8(%ebp),%edx	movl 12(%ebp),%ecx	movl 20(%ebp),%eax	addl $-15,%eax	leal (%eax,%edx),%esi	movzbl 16(%ebp),%eax	sall $8,%eax	leal _gf_mul_table(%eax),%ebx	pushl %edi	cmpl %esi,%edx	jae L69	.align 2,0x90L71:#define XYZ_0(n) /* this is basic code */ \	movzbl (n)(%ecx),%eax ; \	movb (%eax,%ebx),%al ; \	xorb %al,(n)(%edx) ;#if 0#define XYZ(n) \	XYZ_0(n) ; \	XYZ_0(n+1) ; \	XYZ_0(n+2) ; \	XYZ_0(n+3) ;#else#define XYZ(n) /* this is x4 code */ \	movl n(%ecx),%eax ; \	movzbl %al, %edi ; \	movb (%edi,%ebx),%al ; \	movzbl %ah, %edi ; \	movb (%edi,%ebx),%ah ; \	roll $16, %eax ; \	movzbl %al, %edi ; \	movb (%edi,%ebx),%al ; \	movzbl %ah, %edi ; \	movb (%edi,%ebx),%ah ; \	roll $16, %eax ; \	xorl %eax,n(%edx) ;#endif	XYZ(0)	XYZ(4)	XYZ(8)	XYZ(12)	addl $16,%edx	addl $16,%ecx	cmpl %esi,%edx	jb L71L69:	addl $15,%esi	cmpl %esi,%edx	jae L74	.align 2,0x90L76:	movzbl (%ecx),%eax	movb (%eax,%ebx),%al	xorb %al,(%edx)	incl %edx	incl %ecx	cmpl %esi,%edx	jb L76L74:	popl %edi	leal -8(%ebp),%esp	popl %ebx	popl %esi	leave	retLfe4:	.size	 _addmul1,Lfe4-_addmul1	.align 2	.type	 _matmul,@function_matmul:	pushl %ebp	movl %esp,%ebp	subl $28,%esp	pushl %edi	pushl %esi	pushl %ebx	movl $0,-4(%ebp)	movl 20(%ebp),%eax	cmpl %eax,-4(%ebp)	jge L80	.align 2,0x90L82:	xorl %ebx,%ebx	cmpl %ebx,28(%ebp)	jle L81	movl -4(%ebp),%esi	imull 24(%ebp),%esi	movl %esi,-8(%ebp)	movl -4(%ebp),%edi	imull 28(%ebp),%edi	movl %edi,-16(%ebp)	.align 2,0x90L86:	movl 8(%ebp),%eax	addl -8(%ebp),%eax	movl %eax,-28(%ebp)	movl 12(%ebp),%esi	addl %ebx,%esi	movl %esi,-24(%ebp)	movb $0,-12(%ebp)	xorl %ecx,%ecx	cmpl %ecx,24(%ebp)	jle L88	.align 2,0x90L90:	movl -28(%ebp),%edi	movzbl (%edi),%edx	sall $8,%edx	movl -24(%ebp),%eax	movzbl (%eax),%eax	movb _gf_mul_table(%eax,%edx),%dl	xorb %dl,-12(%ebp)	incl %ecx	incl %edi	movl %edi,-28(%ebp)	movl 28(%ebp),%esi	addl %esi,-24(%ebp)	cmpl %ecx,24(%ebp)	jg L90L88:	movl -16(%ebp),%edi	addl %ebx,%edi	movb -12(%ebp),%al	movl 16(%ebp),%esi	movb %al,(%edi,%esi)	incl %ebx	cmpl %ebx,28(%ebp)	jg L86L81:	incl -4(%ebp)	movl 20(%ebp),%edi	cmpl %edi,-4(%ebp)	jl L82L80:	leal -40(%ebp),%esp	popl %ebx	popl %esi	popl %edi	leave	retLfe5:	.size	 _matmul,Lfe5-_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	pushl 12(%ebp)	call _my_malloc	movl %eax,-32(%ebp)	addl $32,%esp	pushl $LC19	pushl 12(%ebp)	call _my_malloc	movl %eax,-36(%ebp)	pushl 12(%ebp)	pushl -32(%ebp)	call _bzero	xorl %eax,%eax	addl $16,%esp	cmpl %eax,12(%ebp)	jle L96	.align 2,0x90L98:	movl -28(%ebp),%ecx	movl $0,(%ecx,%eax,4)	incl %eax	cmpl %eax,12(%ebp)	jg L98L96:	movl $0,-12(%ebp)	movl 12(%ebp),%ebx	cmpl %ebx,-12(%ebp)	jge L101	.align 2,0x90L103:	movl $-1,-8(%ebp)	movl $-1,-4(%ebp)	movl -12(%ebp),%edx	movl -28(%ebp),%ecx	cmpl $1,(%ecx,%edx,4)	je L104	movl %edx,%eax	imull 12(%ebp),%eax	addl %edx,%eax	movl 8(%ebp),%ebx	cmpb $0,(%eax,%ebx)	je L104	movl %edx,-4(%ebp)	movl %edx,-8(%ebp)	jmp L105	.align 2,0x90L104:	xorl %edi,%edi	cmpl %edi,12(%ebp)	jle L107	.align 2,0x90L109:	movl -28(%ebp),%edx	cmpl $1,(%edx,%edi,4)	je L108	xorl %esi,%esi	cmpl %esi,12(%ebp)	jle L108	.align 2,0x90L114:	movl -28(%ebp),%ecx	cmpl $0,(%ecx,%esi,4)	jne L115	movl 12(%ebp),%eax	imull %edi,%eax	addl %esi,%eax	movl 8(%ebp),%ebx	cmpb $0,(%eax,%ebx)	je L113	movl %edi,-4(%ebp)	movl %esi,-8(%ebp)	jmp L105	.align 2,0x90L115:	movl -28(%ebp),%edx	cmpl $1,(%edx,%esi,4)	jle L113	pushl $LC20	jmp L162	.align 2,0x90L113:	incl %esi	cmpl %esi,12(%ebp)	jg L114L108:	incl %edi	cmpl %edi,12(%ebp)	jg L109L107:	cmpl $-1,-8(%ebp)	jne L105	pushl $LC21	jmp L162	.align 2,0x90L105:	movl -8(%ebp),%ecx	movl -28(%ebp),%ebx	incl (%ebx,%ecx,4)	cmpl %ecx,-4(%ebp)	je L123	xorl %esi,%esi	cmpl %esi,12(%ebp)	jle L123	movl -4(%ebp),%edx	imull 12(%ebp),%edx	movl %edx,-40(%ebp)	movl -8(%ebp),%edi	imull 12(%ebp),%edi	.align 2,0x90L127:	movl -40(%ebp),%ecx	addl %esi,%ecx	movl %ecx,-44(%ebp)	movl 8(%ebp),%ebx	movb (%ecx,%ebx),%bl	movb %bl,-52(%ebp)	leal (%esi,%edi),%edx	movl 8(%ebp),%ecx	movb (%edx,%ecx),%al	movl -44(%ebp),%ebx	movb %al,(%ebx,%ecx)	movb -52(%ebp),%bl	movb %bl,(%edx,%ecx)	incl %esi	cmpl %esi,12(%ebp)	jg L127L123:	movl -4(%ebp),%ebx	movl -12(%ebp),%edx	movl -24(%ebp),%ecx	movl %ebx,(%ecx,%edx,4)	movl -8(%ebp),%ecx	movl -20(%ebp),%ebx	movl %ecx,(%ebx,%edx,4)	movl -8(%ebp),%eax	imull 12(%ebp),%eax	movl 8(%ebp),%edi	addl %eax,%edi	movb (%ecx,%edi),%al	testb %al,%al	jne L129	pushl $LC22L162:	pushl $___sF+176	call _fprintf	addl $8,%esp	jmp L119	.align 2,0x90L129:	cmpb $1,%al	je L130	andl $255,%eax	movb _inverse(%eax),%al	movl -8(%ebp),%edx	movb $1,(%edx,%edi)	xorl %esi,%esi	cmpl %esi,12(%ebp)	jle L130	andl $255,%eax	sall $8,%eax	addl $_gf_mul_table,%eax	movl %eax,-52(%ebp)	.align 2,0x90L134:	movzbl (%esi,%edi),%eax	movl -52(%ebp),%ecx	movb (%eax,%ecx),%al	movb %al,(%esi,%edi)	incl %esi	cmpl %esi,12(%ebp)	jg L134L130:	movl -32(%ebp),%ebx	movl -8(%ebp),%edx	movb $1,(%edx,%ebx)	pushl 12(%ebp)	pushl %ebx	pushl %edi	call _bcmp	addl $12,%esp	testl %eax,%eax	je L136	movl 8(%ebp),%ecx	movl %ecx,-52(%ebp)	xorl %esi,%esi	cmpl %esi,12(%ebp)	jle L136	.align 2,0x90L140:	cmpl %esi,-8(%ebp)	je L139	movl -52(%ebp),%ebx	movl -8(%ebp),%edx	movb (%edx,%ebx),%al	movb $0,(%edx,%ebx)	testb %al,%al	je L139	pushl 12(%ebp)	andl $255,%eax	pushl %eax	pushl %edi	pushl %ebx	call _addmul1	addl $16,%espL139:	incl %esi	movl 12(%ebp),%ecx	addl %ecx,-52(%ebp)	cmpl %ecx,%esi	jl L140L136:	movl -32(%ebp),%ebx	movl -8(%ebp),%edx	movb $0,(%edx,%ebx)	incl -12(%ebp)	movl 12(%ebp),%ecx	cmpl %ecx,-12(%ebp)	jl L103L101:	movl 12(%ebp),%ebx	decl %ebx	movl %ebx,-12(%ebp)	js L146	.align 2,0x90L148:	movl -12(%ebp),%edx	movl -24(%ebp),%ecx	cmpl $0,(%ecx,%edx,4)	jl L150	movl 12(%ebp),%ebx	cmpl %ebx,(%ecx,%edx,4)	jl L149L150:	movl -12(%ebp),%edx	movl -24(%ebp),%ecx	pushl (%ecx,%edx,4)	pushl $LC23	jmp L163	.align 2,0x90L149:	movl -12(%ebp),%ebx	movl -20(%ebp),%edx	cmpl $0,(%edx,%ebx,4)	jl L153	movl 12(%ebp),%ecx	cmpl %ecx,(%edx,%ebx,4)	jl L152L153:	movl -12(%ebp),%ebx	movl -20(%ebp),%edx	pushl (%edx,%ebx,4)	pushl $LC24L163:	pushl $___sF+176	call _fprintf	addl $12,%esp	jmp L147	.align 2,0x90L152:	movl -12(%ebp),%ecx	movl -24(%ebp),%ebx	movl (%ebx,%ecx,4),%eax	movl -20(%ebp),%edx	cmpl %eax,(%edx,%ecx,4)	je L147	xorl %edi,%edi	cmpl %edi,12(%ebp)	jle L147	.align 2,0x90L159:	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	movb (%ecx,%ebx),%cl	movb %cl,-52(%ebp)	movl -48(%ebp),%eax	movl -12(%ebp),%edx	movl -20(%ebp),%ecx	addl (%ecx,%edx,4),%eax	movb (%eax,%ebx),%al	movl -44(%ebp),%edx	movb %al,(%edx,%ebx)	movl -48(%ebp),%edx	movl -12(%ebp),%ebx	addl (%ecx,%ebx,4),%edx	movb -52(%ebp),%cl	movl 8(%ebp),%ebx	movb %cl,(%edx,%ebx)	incl %edi	cmpl %edi,12(%ebp)	jg L159L147:	decl -12(%ebp)	jns L148L146:	movl $0,-16(%ebp)L119:	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	retLfe6:	.size	 _invert_mat,Lfe6-_invert_mat	.align 2

⌨️ 快捷键说明

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