Result = ExamineAssembly(*Address [, *EndAddress])Description
Initializes the disassembling at the given address or address range.
Important: The disassembly commands use the Udis86 disassembler library to decode the instructions. This library is released under the BSD license which can be viewed here. If ExamineAssembly() and the related commands are used in a program that is to be made public, the above linked licence text must be included with the software.
*Address The address of the first instruction to disassemble. *EndAddress (optional) If specified, the disassembling will end (NextInstruction() will return zero) as soon as *EndAddress is reached. If not specified, the disassembling will run until NextInstruction() is no longer called.
Nonzero if disassembling is possible, zero otherwise.
DisableDebugger ; do not disassemble any debugger related instructions Code_Start: ; Place code to be disassembled here a = (Random(100) * 5) + 2000 Code_End: Text$ = "Disassembled code: " + 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("Result", Text$)
NextInstruction(), InstructionAddress(), InstructionString()