社区
汇编语言
帖子详情
有关cccccccd的问题!
BrightseaChen
2004-08-04 11:50:00
MOV ESI, DWORD PTR SS:[ESP+10] //esi为一个数
MOV EAX, CCCCCCCD
MOV EDI, EDX
MUL ESI
SHR EDX, 3
ADD EDI, 30
MOV ESI, EDX
-------------------------------------------
象这样的语句我见了好几个了,我想应该是某种计算的优化处理,但一直搞不清楚,不知哪位能告知一声?
...全文
298
9
打赏
收藏
有关cccccccd的问题!
MOV ESI, DWORD PTR SS:[ESP+10] //esi为一个数 MOV EAX, CCCCCCCD MOV EDI, EDX MUL ESI SHR EDX, 3 ADD EDI, 30 MOV ESI, EDX ------------------------------------------- 象这样的语句我见了好几个了,我想应该是某种计算的优化处理,但一直搞不清楚,不知哪位能告知一声?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BrightseaChen
2004-09-08
打赏
举报
回复
>>回复人: dunkel(内心和夜 哪个黑)
>>我想, 最可能的原因应该是迷惑分析人的目的吧.
不是迷惑分析人的,你用vc编译一个再看他的返汇编代码就可发现了
dunkel
2004-08-06
打赏
举报
回复
>> 回复人: BrightseaChen(阿海) ( )
>> 我已经知道答案了,是编译器的优化处理,把除法变成乘法来计算,从而使程序效率提高。
应该不是这样的吧? 从你那个 '完整' 的帖子来看, 这是个将 dword 转换为的字符串形式的, 虽然是 unicode 格式的, 但由于是数字字符, 所以, 只要补 00 就可以了. 它也是采用除 10 取余数的方法:
779A2409 MOV EDI, 0A
779A240E ADD ECX, 2
779A2411 DIV EDI
从后面的那些操作来看, 也只是获得除 10 之后的 '商' 而已:
779A2422 MOV ESI, EDX
779A2424 MOV WORD PTR DS:[ECX-2], DI
779A2428 TEST ESI, ESI
779A242A JA SHORT 779A2405
但其实上面的 div 指令之后, eax 中不就已经是 '商' 了吗? 为什么还要这么做呢? 我想, 最可能的原因应该是迷惑分析人的目的吧.
如果是由高级语言生成的代码的话, 一个除法指令, 难得还比一个乘法指令再加上一堆其它指令还费时间吗?
大熊猫侯佩
2004-08-06
打赏
举报
回复
长见识了!^O^
BrightseaChen
2004-08-05
打赏
举报
回复
我已经知道答案了,是编译器的优化处理,把除法变成乘法来计算,从而使程序效率提高。
不同的除数,0xcccccccd会变成不同的数,大家可以试试,呵呵。
这里,esi=esi/10。
smallmaster
2004-08-05
打赏
举报
回复
iEsi=0xCCCCCCCD*iVar
iEdi=iEdx/8+30
iEsi=iEdx
谁知道这是什么?估计你是把反汇编的代码粘下来的
MOV ESI, DWORD PTR SS:[ESP+10]这个,呵呵
大熊猫侯佩
2004-08-04
打赏
举报
回复
我怎么看像是将16进制数 CCCCCCCD 放到 EAX 寄存器中啊!
难道其中还有玄妙?^O^
BrightseaChen
2004-08-04
打赏
举报
回复
完整的例子有一个
http://soft.winzheng.com/infoview/Article_643.htm
kugou123
2004-08-04
打赏
举报
回复
没有完整代码,不知道什么意思。只知道那是在做乘法运算和移位运算。
大熊猫侯佩
2004-08-04
打赏
举报
回复
难道是和文件破解有关?
MP3格式解析
BCCCCCCC CCCCCCCC CCCCCCCC
CCCCCCCD
DDDDDDDD DDDDDDDD DDDDDDDD DDDDDEEE EFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFG 符号 长度(byte) 位置 描述 A 3 (0~2) 标签标志。如果存在标签并且正确的话,必须包含'TAG'。 B...
Linux基础(三)
目录Linux 编译安装、压缩打包、定时任务编译安装压缩打包gzip压缩bzip2压缩tar打包定时任务磁盘管理windows 下的分区磁盘管理相关命令分区及挂载实现步骤添加硬盘分区步骤挂载步骤卸载分区步骤Linux 三剑客之grep...
MP3文件分析:TAG区,C#小试牛刀!
BCCCCCCC CCCCCCCC CCCCCCCC
CCCCCCCD
DDDDDDDD DDDDDDDD DDDDDDDD DDDDDEEE EFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFG Sign Length (bytes) Position (bytes) Description A 3 (0-2) Tag ...
字节文件MP3格式音频文件结构解析
最近使用开发的过程中出现了一个小
问题
,顺便记录一下原因和方法--字节文件 一、概述 Layer-3 音频文件,MPEG(Moving Picture Experts Group) 在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG...
[链接] 除法优化与编译时常量参数的函数调用优化
我脑子跟不上节奏了,把东西写成代码试了下觉得有
问题
,然后讨论变得激烈了起来……我决定直接写段简单的代码看看我机上的编译器会如何优化。结果我得到了些一时没料到的结果。仔细想想,以前其实碰到过一模一样的...
汇编语言
21,458
社区成员
41,600
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章