ExamineAssembly()

Syntax

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.

Parameters

*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.

Return value

Nonzero if disassembling is possible, 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$)

See Also

NextInstruction(), InstructionAddress(), InstructionString()

Supported OS

All

<- ErrorTargetAddress() - OnError Index - InstructionAddress() ->