您的位置:首页 > 新闻 > 会展 > 代码还原动态调试之 pstree 乘法变加法

代码还原动态调试之 pstree 乘法变加法

2025/5/18 22:21:44 来源:https://blog.csdn.net/xiaozhiwise/article/details/140343708  浏览:    关键词:代码还原动态调试之 pstree 乘法变加法

乘法编译后,生成加法汇编,提升CPU执行效率;

    406a:	85 ff                	test   %edi,%edi        // x ?= 0406c:	0f 84 7e 00 00 00    	je     40f0 <__sprintf_chk@plt+0x1980>*/int digits, div;if (x != 0) {/*4072:	89 fd                	mov    %edi,%ebp        // ebp=edi=x4074:	b9 01 00 00 00       	mov    $0x1,%ecx        // ecx=div=14079:	45 31 e4             	xor    %r12d,%r12d      // digits=0407c:	0f 1f 40 00          	nopl   0x0(%rax)*/digits = 0;for (div = 1; x / div; div *= 10)/*4080:	89 e8                	mov    %ebp,%eax        // eax=x4082:	89 cb                	mov    %ecx,%ebx        // ebx=div4084:	8d 0c 89             	lea    (%rcx,%rcx,4),%ecx   // ecx=div+div*4, 5个div4087:	41 83 c4 01          	add    $0x1,%r12d       // r12d=digits++408b:	01 c9                	add    %ecx,%ecx        // ecx=div=div*10, 5个div + 5个div ==> div*10408d:	99                   	cltd   408e:	f7 f9                	idiv   %ecx             // eax=eax/ecx=x/div4090:	85 c0                	test   %eax,%eax        // x/div ?= 04092:	75 ec                	jne    4080 <__sprintf_chk@plt+0x1910>*/digits++;

div *= 10
    4084:    8d 0c 89               lea    (%rcx,%rcx,4),%ecx   // ecx=div+div*4, 5个div
    408b:    01 c9                    add    %ecx,%ecx               // ecx=div=div*10, 5个div + 5个div ==> div*10
 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com