Есть два дизасмовых листинга (первый .ехе файл, второй .dll):
CODE:00444F50 var_C= dword ptr -0Ch
...
CODE:00444FAF fild [ebp+var_C] ; [ebp+var_C] = 00047E0
CODE:00444FB2 fmul ds:dbl_446A80
...
DATA:00446A80 dbl_446A80 dq 7.26
и
CODE:00D94F24 var_88= dword ptr -88
...
CODE:00D95D5B fild [ebp+var_88] ; [ebp+var_88] = 00047E0
CODE:00D95D61 fmul ds:dbl_DA64F
...
DATA:00DA64FC dbl_DA64FC dq 7.26
Если в дебагере посмотреть на значения регистра ST0, то после выполнения первого листинга туда загружается
1.3358399999999999608e5, а после второго 1.33584e5!
Значения, по-сути, одинаковые, отличия лишь в представлении.. Но учитывая, что в моём случае это критично, хотелось бы
узнать возможные причины этой разницы? Тип операндов совпадает, значения и сам код тоже.. Что же тогда?
Единственное, видное мне, отличие — второй код выполняется в dll, но каким местом это может влиять — ума не приложу..
Спасибо!