Betreff: Re: warum denn immer so negativ...


Antwort(en)   Eine Antwort erstellen   Diskussionsforum


Gesendet von Maurice am 26. Mai 2003 um 12:56 Uhr.
Als Antwort auf warum denn immer so negativ... gesendet von schweikert am 24. Mai 2003 um 21:19 Uhr.
 
: ...kaum dass man zwei zahlen voneinander abzieht und die zweite grösser ist als die erste, dann bin ich immer im negativen. muss das mein addierer ( tschuldigung ) subtrahieerer eigentlich auch können oder darf er dann einen error machen ( so "OUT OF RANGE"-technisch )..

Hola Schweiki,

also eigentlich ist das janz einfach:
Wenn Du da diesen Subtrahierbefehl hast und z.B.
80-90 rechnen willst, dann bekommst du da 246 raus. Außerdem ist das 'C' Flag (ich denke Bit 0 von STATUS) gesetzt.. (oder nicht gesetzt??).

Warum? Intern ist das ja so ein 8-bit dingensbums und da gibts nur Werte im Bereich [0, 2^8-1 = 255].
Wenn Du also 80 hast und 90 abziehen willst, dann kann er 80 abziehen und für die restlichen 10 fängt er dann bei 255 an... sprich es gibt 245.

Jetzt musst Du dir überlegen welche Werte Dein Rechner annimmt (z.B. jeweils nur von 00 bis 99, also zweistellig) und zu den 245 einen festen Wert addieren, so dass sich diese Grenzen verschieben und er "richtig rechnet". Sprich, Du musst zum Schluss +10 rausbekommen und das C Flag sagt dir am Anfang, ob es Minus oder Plus ist.

Alles etwas konfus, aber ich hab auch grad nix hier was mit HWP zu tun hat....
Wenn es dich ernsthaft noch interessiert, schreib ne Mail oder schreib hier was hin oder mach Dir ganz einfach 'nen schönen Tag ... :-)

Gruß Maurice.


Antwort(en)


Eine Antwort erstellen

Name:
EMail:
Betreff:
Nachricht:
 


       Letzte Änderung: März 2003, Tobias Schubert