首页
社区
课程
招聘
[求助]这段汇编代码是啥意思?
发表于: 2015-3-26 16:46 4340

[求助]这段汇编代码是啥意思?

2015-3-26 16:46
4340
fld dword ptr ds:[esi+1E4]


而esi+1E4 = 02FCE9D4,

下面是他的内存:
02FCE9D4  00 C0 2B 45 00 C0 2B 45 00 00 00 00 00 00 00 00  .?E.?E........

而执行后,ST0 = 2748.00000000000

我想知道ST0 怎么就等于2748的,谢谢!
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 16468
活跃值: (2493)
能力值: ( LV9,RANK:147 )
在线值:
发帖
回帖
粉丝
2
32位浮点,,00 C0 2B 45 = 2748.000,,,fld指令,把数据载入栈顶.OK?
2015-3-26 17:06
0
雪    币: 8
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上完美解答
2015-3-27 07:52
0
雪    币: 225
活跃值: (304)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
说来说去,还是浮点构成的问题,根据IEEE 标准中,第一bit位为符号位,随后的8bit是指数为,剩下的23bit是底数位,考虑到是小端存储,00 C0 2B 45的数字的值为 452BC000,也即是:
   0100 0101 0010 1011 1100 0000 0000 0000
第一bit是0,说明是正数,
随后的8bit,也就是10001010 , 8A,换算成十进制是138 ,138 - 127 = 11 , 说明指数为11位
而剩下的23位值为:010 1011 1100 0000 0000 0000 , 首bit补齐省略的1, 值为:
1010 1011 1100 0000 0000 0000 , 指数11位说明,小数点的位置为:
1010 1011 1100 .  0000 0000 0000 , 换算为16进制为ABC
2015-4-1 11:06
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
明白了!
2015-4-7 10:22
0
游客
登录 | 注册 方可回帖
返回
//