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

LongGetOperandValue(long ea,long n)

Функция возвращает значение непосредственного операнда, принадлежащему элементу кода (не данных!), т.е. типу #5 (см. описание функции GetOpType).

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

seg000:0000 mov ax, 9

a) исходные данные – требуется получить значение непосредственного операнда

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

b) вызов функции GetOperandValue для получения значения непосредственного операнда

>9

с) результат – значение непосредственного операнда

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

аргумент

пояснения

ea

линейный адрес элемента, которому принадлежит операнд

n

=n

пояснения

==0

первый слева операнд

==1

второй слева операнд

return

=return

пояснения

==1

операция выполнена успешно

==0

ошибка

Родственные функции: GetOpnd, GetOpType

Интерактивный аналог: нет

Long FindVoid (long ea,long flag)

Функция ищет ближайший к переданному ей линейному адресу ea операнд типа “void”, возвращая в случае успешного завершения поиска адрес головы элемента кода, которому он принадлежит. В зависимости от флага направления поиск может идти как вперед (от младших адресов к старшим), так и назад (от старших адресов к младшим). Переданный функции линейный адрес в этот диапазон поиска не входит и не обязательно должен принадлежать какому-нибудь сегменту.

Аргумент flag задает направление поиска – если его младший бит установлен поиск идет от младших адресов к старшим и, соответственно, наоборот.

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

seg000:0100 mov ax, 9

seg000:0103 mov dx, 133h

a) исходные данные – требуется получить линейный адрес элемента, содержащего операнд типа “void”

Message(“>%s\n”,atoa(FindVoid(0,1)));

b) вызов функции FindVoid – адрес начала поиска равен нулю, единичное значение флага направление указывает вести поиск с увеличением адресов

>seg000:0103

результат – линейный адрес элемента, содержащего операнд типа void, найден

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

аргумент

пояснения

ea

линейный адрес начала поиска, не обязательно принадлежащий какому-нибудь сегменту

flag

=flag

пояснения

==1

прямое направление поиска

==0

обратное направление поиска

return

=return

пояснения

!=BADADDR

линейный адрес элемента, которому принадлежит найденный операнд

==BADADDR

ошибка

Родственные функции: FindImmediate

Интерактивный аналог:”~Nabigate\Search for\Next void”; <Ctrl-V>

Long FindImmediate(long ea,long flag,long value)

Функция ищет ближайший к переданному ей линейному адресу ea операнд типа константа со значением равным value. В случае успешного поиска возвращается адрес головы элемента кода, которому этот операнд принадлежит.

В зависимости от флага направления поиск может идти как вперед (от младших адресов к старшим), так и назад (от старших адресов к младшим). Переданный функции линейный адрес в этот диапазон поиска не входит и не обязательно должен принадлежать какому-нибудь сегменту.

Аргумент flag задает направление поиска – если его младший бит установлен поиск идет от младших адресов к старшим и, соответственно, наоборот.

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

seg000:0100 mov ax, 9

seg000:0103 mov dx, 133h

a) исходные данные – требуется получить линейный адрес элемента, содержащего операнд типа константа, значение которой равно 9

Message(“>%s\n”,atoa(FindImmediate(0,1,9)));

b) вызов функции FindImmediate – адрес начала поиска равен нулю, единичное значение флага направление указывает вести поиск с увеличением адресов.

>seg000:0100

результат – линейный адрес элемента, содержащего операнд типа константа, значение которой равно 9

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

аргумент

пояснения

ea

линейный адрес начала поиска, не обязательно принадлежащий какому-нибудь сегменту

flag

=flag

пояснения

==1

прямое направление поиска

==0

обратное направление поиска

value

искомое значение константы

return

=return

пояснения

!=BADADDR

линейный адрес элемента, которому принадлежит найденный операнд

==BADADDR

ошибка

Родственные функции: FindVoid

Интерактивный аналог:”~Nabigate\Search for\Immediate”; <Alt-I>, ”~Nabigate\Search for\Next Immediate”; <Ctrl-I>

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