Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ida.final.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6 Mб
Скачать

Success MakeDouble(long ea)

Функция создает по переданному ей линейному адресу ea элемент данных типа double, длиной восемь байт. Представление типа double зависит от выбранного процессора. На микропроцессорах серии Intel 80x86 он имеет следующее строение (см. рисунок ???)

Знак

Порядок (11 бит)

мантисса (52 бит)

Рисунок 24 Представление типа double на микропроцессорах серии Intel 80x86

Если по данному адресу находится голова ранее созданного элемента данных, функция преобразует его в четвертное слово типа double, а хвост элемента (если он есть) – в бестиповые байты. Если размер элемента недостаточен для преобразования, но следом за его хвостом находятся бестиповые байты, они будут автоматически присоединены к новому элементу. В противном случае, если следом за его хвостом находится другой элемент или не находится ничего, функция возвратит ошибку, не выполнив преобразования. Для выполнения преобразования необходимо предварительно уничтожить мешающие элементы вызовом MakeUnkn (см. описание функции MakeUnkn).

Ошибка возвратится и в том случае если по переданному функции линейному адресу находится хвост элемента данных, голова или хвост элемента кода.

Если хотя бы один из восьми байт имеет неинициализированное значение, все четверное слово приобретает неинициализированное значение.

Пример использования:

seg000:0000 db 48h ; H

seg000:0001 db 65h ; e

seg000:0002 db 6Ch ; l

seg000:0003 db 6Ch ; l

seg000:0004 db 6Fh ; o

seg000:0005 db 2Ch ; ,

seg000:0006 db 20h ;

seg000:0007 db 53h ; S

a) исходные данные

Message(“>%x\n”,MakeDouble(SegByName(“seg000”)));

b) вызываем функцию MakeDouble для создания нового элемента данных типа double, передавая ей адрес цепочки из восьми бестиповых байта

seg000:0000 dq 2.635692361932979e92

>1

с) результат – элемент данных типа double успешно создан

??? #Верстальщику – change table

аргрумент

пояснения

ea

линейный адрес бестипового байта или головы элемента данных

return

=return

пояснения

==1

успешное завершение

==0

ошибка

Родственные функции: MakeByte, MakeWord, MakeDword, MakeQword, MakeQword, MakePackReal, MakeTbyte.

Интерактивный аналог: (“~Options\Setup data types”; <Alt-D>), <u>

Замечение: для включения типа «четвертного слова» в список типов данных, пролистываемых нажатием клавиши <D>, необходимо, вызвав диалог “Setup data types” установить галочку напротив пункта “Double ”.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]