PureBasic

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

Все

<- ErrorTargetAddress() - Оглавление OnError - InstructionAddress()->