本帖最后由 xiaocainiaok 于 2010-7-2 13:56 编辑 00407BEE |> \DF28 fild qword ptr [eax] ; 1
00407BF0 |> DF0424 fild word ptr [esp]
00407BF3 |. D9C1 fld st(1)
00407BF5 |> 4E /dec esi
00407BF6 |. D9F8 |fprem
00407BF8 |. DF1C24 |fistp word ptr [esp]
00407BFB |. DCF9 |fdiv st(1), st
00407BFD |. 8A0424 |mov al, byte ptr [esp]
00407C00 |. 04 30 |add al, 30
00407C02 |. 3C 3A |cmp al, 3A
00407C04 |. 72 02 |jb short 00407C08
00407C06 |. 04 07 |add al, 7
00407C08 |> 8806 |mov byte ptr [esi], al
00407C0A |. D9C1 |fld st(1)
00407C0C |. D8D3 |fcom st(3)
00407C0E |. 9B |wait
00407C0F |. DFE0 |fstsw ax
00407C11 |. 9E |sahf
00407C12 |.^ 73 E1 \jnb short 00407BF5
00407C14 |. D96C24 02 fldcw word ptr [esp+2]
00407C18 |. 83C4 04 add esp, 4
00407C1B |. DDC3 ffree st(3)
00407C1D |. DDC2 ffree st(2)
00407C1F |. DDC1 ffree st(1)
00407C21 |. DDC0 ffree st
00407C23 |. 59 pop ecx
00407C24 |. 29F1 sub ecx, esi
00407C26 |. 29CA sub edx, ecx
00407C28 |. 76 10 jbe short 00407C3A
00407C2A |. 29D6 sub esi, edx
00407C2C |. B0 30 mov al, 30
00407C2E |. 01D1 add ecx, edx
00407C30 |. EB 03 jmp short 00407C35
00407C32 |> 880432 /mov byte ptr [edx+esi], al
00407C35 |> 4A dec edx
00407C36 |.^ 75 FA \jnz short 00407C32
00407C38 |. 8806 mov byte ptr [esi], al
这段代码看着头疼 ...竟然只是16进制转10进制 分析了一个小时 发现楼上已经贴出正确答案了.... 例如1234 取“1”的asc值31 累加1+31+2*32+3*33+4*44=1ff lsh10位 =1ff0000 减去1ff=1FEFE01 转为十进制33488385 验证下 竟然ok了 |