Einzelnen Beitrag anzeigen

Apollonius

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

Re: Disassembler: Wie negative Werte von Positiven untersche

  Alt 1. Dez 2008, 18:51
Du musst zwischen Byte- und DWord-Displacements unterscheiden. Wenn es sich um ein Byte-Displacement handelt, musst du negative Werte auch negativ darstellen. Beispielsweise ist add [ebx + $FF], edx objektiv falsch, denn die CPU interpretiert Byte-Displacements immer als vorzeichenbehaftet, also [ebx - 1].
Bei DWord-Displacements ist diese Eindeutigkeit nicht gegeben, denn es ist nunmal egal, ob du eine Zahl addierst oder ihr 32-Bit-Zweierkomplement subtrahierst. In den allermeisten Fällen dürfte es allerdings besser sein, auch die DWords als vorzeichenbehaftet darzustellen, d.h. den betragsmäßig kleineren Wert zu verwenden.
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