Сейчас на форуме: 2nd, asfa, rus935 (+10 невидимых)

 eXeL@B —› Оффтоп —› Просветление в Assembler`е
Посл.ответ Сообщение


Ранг: 73.2 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 06 июля 2006 21:55
· Личное сообщение · #1

Добрый вечер всем

После выполнения команды:
FLD DWORD PTR DS:[EBP+84]
в вершине стека появляется число 569,0000

но по адресу EBP+84 содержится - 00400E44 (или так 440E4000)

Разъясните мне как число 569 получается из 00400E44 (или так 440E4000)?????



Ранг: 15.3 (новичок)
Активность: 0.020
Статус: Участник

Создано: 06 июля 2006 22:21
· Личное сообщение · #2

а посмотреть что лежит по адресу 00400e44 ты непробовал
увидишь там свое 519
и почитай книжку по асму




Ранг: 73.2 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 06 июля 2006 22:44 · Поправил: ShEriF
· Личное сообщение · #3

Valenok Pirojkov пишет:
а посмотреть что лежит по адресу 00400e44 ты непробовал

Пробывал, но там нечего похожего на 569,0000 нет

Вот вырезка из книги:
команда FLD загружает действительные числа - нельзя ли сказать как представляются в HEX числа действительные числа (с точкой вроде :s15???



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 07 июля 2006 12:32
· Личное сообщение · #4

ShEriF пишет:
нельзя ли сказать как представляются в HEX числа действительные числа

Так в книжке и должно быть написано. Грубо говоря, в первом байте степень 16(!) ( там еще один бит по-моему из следующего участвует), а в остальных байтах мантисса. Я теперь смотрю числа в олли(кстати некоторые сборки нагло врут в плавающих регистрах) или в интерпретаторе WinHex.
Ага - в WinHEX 12.25 тоже лажа - перепутаны real и double.


 eXeL@B —› Оффтоп —› Просветление в Assembler`е

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати