Einzelnen Beitrag anzeigen

Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Disassembler: Länge der Instruction / Flags vorhanden?

  Alt 2. Dez 2008, 17:18
Du brauchst einen gültigen Opcode-Anfang. Du kannst nicht mitten in den Anweisungs-Stream hineinfinden. Dies lässt sich auch am Delphi-Disassembler sehen: Wenn man in einer Assembler-Routine Direktiven wie dd verwendet, kommt erst einmal Nonsens raus, der auch weit über diese Definition hinausgehen kann, eben weil eine Anweisung "übergebunden" zu sein scheint. In der Praxis ist das allerdings selten ein Problem, da Calls und Jumps auf gültige Adressen verweisen und es außerdem innerhalb des Code-Segments häufig längere Blöcke von Nop oder Int 3 gibt (je nach Compiler): Dies sind Ein-Byte-Opcodes, sodass du am Ende eines solchen Blocks in jedem Fall eine neue Anweisung beginnt.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat