ExamineAssembly()
Синтаксис
Result = ExamineAssembly(*Address [, *EndAddress])
Описание
Инициализирует дизассемблирование инструкций по указанному адресу или указанному диапазону адресов.
Важно: Команды дизассемблирования используют библиотеку дизассемблера Udis86 для декодирования инструкций. Эта библиотека выпущена с лицензией BSD, которую можно посмотреть здесь. Если команда ExamineAssembly() и связанные с ней команды используются в программе, которая будет опубликована, текст лицензии, на который выше дана ссылка, должен быть включен в комплект программного обеспечения.
Параметры
*Address Адрес первой инструкции для дизассемблирования. *EndAddress (дополн.) Если этот задан параметр, дизассемблирование прекратится (функция NextInstruction() возвратит 0) как только будет достигнут адрес *EndAddress. Если параметр не задан, дизассемблирование будет продолжаться, пока не перестанет вызываться функция NextInstruction().
Возвращаемое значение
Возвращает не нулевое значение, если дизассемблирование возможно, в противном случае 0.
Пример
DisableDebugger ; не дизассемблировать инструкции отладчика Code_Start: ; Поместите сюда код для дизассемблирования a = (Random(100) * 5) + 2000 Code_End: Text$ = "Дизассемблированный код: " + Chr(13) If ExamineAssembly(?Code_Start, ?Code_End) While NextInstruction() Text$ + RSet(Hex(InstructionAddress()), SizeOf(Integer)*2, "0") Text$ + " " + InstructionString() + Chr(13) Wend EndIf MessageRequester("Результат", Text$)
См. также
NextInstruction(), InstructionAddress(), InstructionString()
Поддерживаемые OS
Все