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

📄 x86-lnxa.s

📁 openssl是ssl的开源项目
💻 S
字号:
	.file	"bn_mulw.c"	.version	"01.01"gcc2_compiled.:.text	.align 4.globl _bn_mul_add_word	.type	 _bn_mul_add_word,@function_bn_mul_add_word:	pushl %ebp	pushl %edi	pushl %esi	pushl %ebx	# ax		L(t)	# dx		H(t)	# bx		a	# cx		w	# di		r	# si		c	# bp		num	xorl %esi,%esi		# c=0	movl 20(%esp),%edi	# r => edi	movl 24(%esp),%ebx	# a => exb	movl 32(%esp),%ecx	# w => ecx	movl 28(%esp),%ebp	# num => ebp	shrl $2,%ebp		# num/4	je .L910#	.align 4.L110:	# Round 1	movl %ecx,%eax		# w => eax	mull (%ebx)		# w * *a 	addl (%edi),%eax	# *r+=L(t)	adcl $0,%edx		# H(t)+= carry	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,(%edi)	# *r+=L(t)	movl %edx,%esi		# c=H(t)	# Round 2	movl %ecx,%eax		# w => eax	mull 4(%ebx)		# w * *a 	addl 4(%edi),%eax	# *r+=L(t)	adcl $0,%edx		# H(t)+= carry	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,4(%edi)	# *r+=L(t)	movl %edx,%esi		# c=H(t)	# Round 3	movl %ecx,%eax		# w => eax	mull 8(%ebx)		# w * *a 	addl 8(%edi),%eax	# *r+=L(t)	adcl $0,%edx		# H(t)+=carry	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,8(%edi)	# *r+=L(t)	movl %edx,%esi		# c=H(t)	# Round 4	movl %ecx,%eax		# w => eax	mull 12(%ebx)		# w * *a 	addl 12(%edi),%eax	# *r+=L(t)	adcl $0,%edx		# H(t)+=carry	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,12(%edi)	# *r+=L(t)	movl %edx,%esi		# c=H(t)	addl $16,%ebx		# a+=4 (4 words)	addl $16,%edi		# r+=4 (4 words)	decl %ebp		# --num	je .L910	jmp .L110#	.align 4.L910:	movl 28(%esp),%ebp	# num => ebp	andl $3,%ebp	je .L111	# Round 1	movl %ecx,%eax		# w => eax	mull (%ebx)		# w * *a 	addl (%edi),%eax	# *r+=L(t)	adcl $0,%edx		# H(t)+=carry	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,(%edi)	# *r+=L(t)	movl %edx,%esi		# c=H(t)	decl %ebp		# --num	je .L111	# Round 2	movl %ecx,%eax		# w => eax	mull 4(%ebx)		# w * *a 	addl 4(%edi),%eax	# *r+=L(t)	adcl $0,%edx		# H(t)+=carry	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,4(%edi)	# *r+=L(t)	movl %edx,%esi		# c=H(t)	decl %ebp		# --num	je .L111	# Round 3	movl %ecx,%eax		# w => eax	mull 8(%ebx)		# w * *a 	addl 8(%edi),%eax	# *r+=L(t)	adcl $0,%edx		# H(t)+=carry	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,8(%edi)	# *r+=L(t)	movl %edx,%esi		# c=H(t)#	.align 4.L111:	movl %esi,%eax		# return(c)	popl %ebx	popl %esi	popl %edi	popl %ebp	ret.Lfe1:	.size	 _bn_mul_add_word,.Lfe1-_bn_mul_add_word	.align 4.globl _bn_mul_word	.type	 _bn_mul_word,@function_bn_mul_word:	pushl %ebp	pushl %edi	pushl %esi	pushl %ebx	# ax		L(t)	# dx		H(t)	# bx		a	# cx		w	# di		r	# num		bp	# si		c	xorl %esi,%esi		# c=0	movl 20(%esp),%edi	# r => edi	movl 24(%esp),%ebx	# a => exb	movl 28(%esp),%ebp	# num => bp	movl 32(%esp),%ecx	# w => ecx#	.align 4.L210:	movl %ecx,%eax		# w => eax	mull (%ebx)		# w * *a 	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,(%edi)	# *r=L(t)	movl %edx,%esi		# c=H(t)	decl %ebp		# --num	je .L211	movl %ecx,%eax		# w => eax	mull 4(%ebx)		# w * *a 	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,4(%edi)	# *r=L(t)	movl %edx,%esi		# c=H(t)	decl %ebp		# --num	je .L211	movl %ecx,%eax		# w => eax	mull 8(%ebx)		# w * *a 	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,8(%edi)	# *r=L(t)	movl %edx,%esi		# c=H(t)	decl %ebp		# --num	je .L211	movl %ecx,%eax		# w => eax	mull 12(%ebx)		# w * *a 	addl %esi,%eax		# L(t)+=c	adcl $0,%edx		# H(t)+=carry	movl %eax,12(%edi)	# *r=L(t)	movl %edx,%esi		# c=H(t)	decl %ebp		# --num	je .L211	addl $16,%ebx		# a+=4 (4 words)	addl $16,%edi		# r+=4 (4 words)	jmp .L210#	.align 4.L211:	movl %esi,%eax		# return(c)	popl %ebx	popl %esi	popl %edi	popl %ebp	ret.Lfe2:	.size	 _bn_mul_word,.Lfe2-_bn_mul_word	.align 4.globl _bn_sqr_words	.type	 _bn_sqr_words,@function_bn_sqr_words:	pushl %edi	pushl %esi	pushl %ebx	movl 16(%esp),%esi	# r	movl 20(%esp),%edi	# a	movl 24(%esp),%ebx	# n#	.align 4	shrl $2,%ebx	jz .L99.L28:	movl (%edi),%eax	# get a	mull %eax		# a*a	movl %eax,(%esi)	# put low into return addr	movl %edx,4(%esi)	# put high into return addr	movl 4(%edi),%eax	# get a	mull %eax		# a*a	movl %eax,8(%esi)	# put low into return addr	movl %edx,12(%esi)	# put high into return addr	movl 8(%edi),%eax	# get a	mull %eax		# a*a	movl %eax,16(%esi)	# put low into return addr	movl %edx,20(%esi)	# put high into return addr	movl 12(%edi),%eax	# get a	mull %eax		# a*a	movl %eax,24(%esi)	# put low into return addr	movl %edx,28(%esi)	# put high into return addr	addl $16,%edi	addl $32,%esi	decl %ebx		# n-=4;	jz .L99	jmp .L28#	.align 4.L99:	movl 24(%esp),%ebx	# n	andl $3,%ebx	jz .L29	movl (%edi),%eax	# get a	mull %eax		# a*a	movl %eax,(%esi)	# put low into return addr	movl %edx,4(%esi)	# put high into return addr	decl %ebx		# n--;	jz .L29	movl 4(%edi),%eax	# get a	mull %eax		# a*a	movl %eax,8(%esi)	# put low into return addr	movl %edx,12(%esi)	# put high into return addr	decl %ebx		# n--;	jz .L29	movl 8(%edi),%eax	# get a	mull %eax		# a*a	movl %eax,16(%esi)	# put low into return addr	movl %edx,20(%esi)	# put high into return addr.L29:	popl %ebx	popl %esi	popl %edi	ret.Lfe3:	.size	 _bn_sqr_words,.Lfe3-_bn_sqr_words	.align 4.globl _bn_div64	.type	 _bn_div64,@function_bn_div64:	movl 4(%esp),%edx	# a	movl 8(%esp),%eax	# b	divl 12(%esp)		# ab/c	ret.Lfe4:	.size	 _bn_div64,.Lfe4-_bn_div64	.ident	"GCC: (GNU) 2.6.3"

⌨️ 快捷键说明

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