首页
社区
课程
招聘
[旧帖] [求助]遇到个极其恶心的问题,求解 0.00雪花
发表于: 2009-9-29 12:02 3861

[旧帖] [求助]遇到个极其恶心的问题,求解 0.00雪花

2009-9-29 12:02
3861
00409042  /$  31C0          xor     eax, eax
00409044  |.  31D2          xor     edx, edx
00409046  |>  AC            /lods    byte ptr [esi]   
取输入的一位,我输入的是“11111”,EAX值变为00000001

00409047  |.  2C 3A         |sub     al, 3A               
00409049  |.  04 0A         |add     al, 0A               
这两行,执行后,EAX仍然为1,但我用计算机算,不是得00000001,这是怎么回事啊   ???

0040904B  |.  73 0F         |jnb     short 0040905C   
跳转没实现
0040904D  |.  DA0D 74214500 |fimul   dword ptr [452174]   
st(o)初值为0,452174处的值是0000000A也就是十进制的10,执行完后,ST(0)仍为零

00409053  |.  8945 F4       |mov     dword ptr [ebp-C], eax
EAX值为00000001,传入[ebp-c]

00409056  |.  DA45 F4       |fiadd   dword ptr [ebp-C]
执行,0+1赋给st(0),st(0)为1.0

00409059  |.  42            |inc     edx
0040905A  |.^ EB EA         \jmp     short 00409046
跳回去取,“11111”的第二位;跳回去,再执行到这里的时候就出问题了,本来应该是1.0*10+1=11的,但执行到这里的时候ST(0)却变成了76.000,太奇怪了,求解惑


0040905C  |>  4E            dec     esi
0040905D  \.  C3            retn

此程序来自天草汇编教程,已上传
Project1.rar

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 7
活跃值: (14)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
怎么没人,帮我啊,痛苦中
2009-9-29 12:47
0
雪    币: 7
活跃值: (14)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
在线等,高手,帮忙 啊
2009-9-29 13:52
0
雪    币: 7
活跃值: (14)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
看雪的牛人呢,
这大个牛场,没一个愿意帮忙的吗???
2009-9-29 13:52
0
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习了,
楼主一起努力把!
2009-9-29 14:55
0
雪    币: 7
活跃值: (14)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
没人帮忙,
2009-9-29 15:29
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
7
你的计算机有问题。嘿嘿。应该是很正常的整数转浮点数的过程
2009-9-29 16:14
0
雪    币: 444
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我输入11111,EAX的值变为是00000031,而不是00000001.楼主可能弄错了。
2009-9-29 16:17
0
雪    币: 292
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
取输入的一位,我输入的是“11111”,EAX值变为00000001.

这应该有问题吧
2009-9-29 17:01
0
雪    币: 7
活跃值: (14)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
是两段执行完后,变成00000001,我写的不清楚不好意思,
开始是00000031,再一下,就是00000001,呵呵
2009-9-29 17:10
0
游客
登录 | 注册 方可回帖
返回
//