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

Success MakeRptCmt(long ea,char comment)

Функция создает повторяемый комментарий comment, размещая его справа от элемента, расположенного по линейному адресу ea. Переданный линейный адрес должен быть либо адресом головы элемента любого вида, либо адресом бестипового байта; в противном случае функция возвратит ошибку.

Комментарий автоматически отделяется от элемента символом «точка с запятой» и в самой строке комментария его указывать не нужно. Величина отступа задается настойками IDA (см. главу «Глобальные настойки»).

Строка комментария может содержать как символы латиницы, так и символы кириллицы, однако, нормальное отображение кириллицы возможно только в той ипостаси IDA, в которой они были созданы.

Удалить комментарий можно задав в качестве нового пустую строку. Функция поддерживает спецификатор переноса строки '\n', автоматически создавая новую строку и перенося на нее хвост комментария.

Отличие повторяемого комментария от постоянное заключается в том, что повторяемый комментарий автоматически отображается около всех элементов, ссылающихся на элемент, помеченный повторяемым комментарием.

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

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

seg000:0100 mov ah, 9

seg000:0102 mov dx, offset aHello

seg000:0105 int 21h ;

seg000:0107 retn

seg000:0107 ; ──────────────────────────────────────────────────────────────────────────

seg000:0108 aHello db 'Hello,',0 ; DATA XREF: seg000:0102↑o

seg000:0108 ;

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

MakeRptCmt(SegByName(“seg000”)+0x108,”Это повторяемый комментарий”);

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

seg000:0100 mov ah, 9

seg000:0102 mov dx, offset aHello ; Это повторяемый комментарий

seg000:0105 int 21h ; DOS - PRINT STRING

seg000:0105 ; DS:DX -> string terminated by "$"

seg000:0107 retn

seg000:0107 ; ──────────────────────────────────────────────────────────────────────────

seg000:0108 aHello db 'Hello,',0 ; DATA XREF: seg000:0102↑o

seg000:0108 ; Это повторяемый комментарий

с) результат – повторяемый комментарий создан – теперь он будет отображаться возле всех элементов, ссылающихся на метку aHello (обратите внимание на текст, выделенный в листинге жирным шрифтом)

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

аргумент

пояснения

ea

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

comment

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

return

=return

пояснения

==1

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

==0

ошибка

Родственные функции: MakeComm, ExrLinA, ExtLinB

Интерактивный аналог: “Edit\Comments\Enter repeatable comment”; <;

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