2012-03-25 5 views
3

필자는 그물을 뒤져서 검색했습니다 : FILD는 정수의 2의 보수를 80 비트 확장 된 정밀도 부동 소수점으로 변환하고이를 floats 스택 맨 위에 놓습니다. 그래서 프로그램을 만들었지 만 결과는 예상치 못한 결과입니다.FILD 및 FSTP는 어떻게 작동합니까?

예 : 내가 메모리에 수 0xFF20A810이 (의는 0x40000000과에서 가정 해 봅시다) Fild입니다 [0x40000000과] FSTP [0x40010000]

내가 얻을 결과는 0x41EFE41502000000입니다. 전화 번호는 어떻게 변환됩니까? 나는 이것을 사용하는 crackme의 한가운데에 있는데, 나는 해결책을 찾을 수 없다.

+0

무엇을 기대 했습니까? –

답변

3

0x41EFE41502000000를 배정 밀도로 4280330256.0 감사합니다. 0xFF20A810은 부호없는 정수로 4280330256입니다.

그래서 우연히 qword로로드했다고 생각합니다. 다른 바이트는 0입니다.

+0

대단히 감사합니다 (: – user1291797