gut, dann hatte ich das mal falsch verstanden,
dachte bei signed wird das vorzeichen im höchstwertigen Bit gespeichert und der rest bleibt...
jetzt hab ich mich aber mal blamiert...
aber jetzt wo ihrs sagt, fällt mir grade ein, dass ich beim Zerlegen von Binärdateien schon drüber gestolpert bin, dass 0xFFFFFFFF = -1 ist.
stimmt das
if x<0 then x:=not x + 1;
immer? also bei allen signed datentypen?
auch wenn mir der
asm-weg noch bisschen Probleme bereitet, trotz
asm buch vor mir...
wenn ich das richtig verstehe, müsste cdq ja das höchstwertige bit von eax in alle bits von edx schreiben....
also
Code:
edx eax
$FFFFFFFF $FFFFFFFF
bzw.
xor setzt dann bei ersterem eax auf $0, da eax=edx.
jetzt subtrahiere ich edx von eax also $0-$FFFFFFFF...und da kommt 1 raus?
beim zweiten wird bei xor einfach nur edx nach eax kopiert (unterste 31 bit verschieden), wenn ich nun edx von eax subtrahiere kommt doch 0 raus
wo hab ich da jetzt grade den denkfehler?
Gruß Frank