ExamineAssembly()

Syntaxe

Resultat = ExamineAssembly(*MemoireDébut [, *MemoireFin])
Description
Désassemblage des instructions à partir d'une adresse mémoire.

Arguments

*MemoireDébut L'adresse en mémoire de la première instruction à désassembler.

Le désassemblage se déroulera jusqu'à ce que NextInstruction() ne soit plus appelé ou si *MemoireFin est spécifié.
*MemoireFin (optionnel) L'adresse en mémoire de la dernière instruction à désassembler et NextInstruction() reverra zéro.

Valeur de retour

Renvoie une valeur non nulle si le désassemblage est possible, zéro sinon.

Remarques

Important: Les commandes de désassemblage utilisent la bibliothèque Udis86 disassembler pour décoder les instructions. Elle est disponible sous license BSD qui peut être consultée ici. Si ExamineAssembly() et ses autres commandes relatives sont utilisées dans un programme, le texte de licence ci-dessus devra être inclus avec le logiciel.

Exemple

  DisableDebugger ; Désactive le Debugger
  
  Code_Start:
    ; Placer le code à désassembler ici
    a = (Random(100) * 5) + 2000
  Code_End:
  
  Texte$ = "Code désassemblé: " + Chr(13)  
  If ExamineAssembly(?Code_Start, ?Code_End)
    While NextInstruction()
      Texte$ + RSet(Hex(InstructionAddress()), SizeOf(Integer)*2, "0")
      Texte$ + " " + InstructionString() + Chr(13)
    Wend
  EndIf
  
  MessageRequester("Resultat", Texte$)

OS Supportés

Tous

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