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 specifies the address of the first instruction to disassemble. If *EndAddress is specified, the disassembling will end (NextInstruction() will return 0) as soon as *EndAddress is reached. If *EndAddress is not specified, the disassembling will run until NextInstruction() is no longer called.
Returns nonzero if disassembling is possible and zero otherwise.
Example: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$)
Windows, Linux, MacOS X (x86)