der Threadtitel ist evtl. etwas "ungünstig" gewählt, aber ich wollte da keinen ganzen Roman rein schreiben.
Nunja, also ich möchte sozusagen ohne Asm. eine Funktion schreiben, die einen Parameter (Pointer) immer negativ setzt. D.h., dass wenn die Variable bereits negativ ist, soll sie den Wert nicht ändern. Ist sie noch positiv, wird sie negiert.
Sicher kann man das mittels
Code: Alles auswählen
If n > 0
n = -n
EndIf

Ich habe mir gedacht, das z.B. mittels
Code: Alles auswählen
n.b = 10
n = n | $80
Aber warum? Das höchstwertige Bit gibt doch das Vorzeichen an und da das Bit mit dem ODER immer gesetzt wird, sollte sich doch nur das Vorzeichen ändern, scheinbar irre ich mich da jedoch

Denn eigentlich ist das ganze (meines Erachtens nach) nichts weiter als eine andere Schreibweise für a = a - 128.
Deswegen meine Frage: Wie stell ich es an, dass die Variable IMMER vorzeichenbehaftet ist (sprich: das höchstwertige Bit ist gesetzt)?
Und ich möchte kein Asm dafür :P
Falls jmd. Rat weiß, so solle er (oder sie) bitte sprechen.
MfG plusman