Forum: Mikrocontroller und Digitale Elektronik SBIW und C-Flag


von Thomas Waller (Gast)


Lesenswert?

Hallo,

komme mit der Beschreibung des SBIW Befehls im Atmel 8-Bit AVR 
Instruction Set nicht ganz klar. Wann wird dabei nun eigentlich genau 
das C-Flag gesetzt? Die Operation ist ja wie beschrieben Rd+1:Rd <-- 
Rd+1:Rd - K. Nun heißt es dazu, das C-Flag ist "Set if the absolute 
value of K is larger than the absolute value of Rd...", und eben nicht 
Rd+1:Rd!
Das würde ja bedeuten, dass hierbei nur der 8-bittige Low-Anteil des 
Werts ausgewertet wird. Kann das sein?

Thomas

von Michael U. (Gast)


Lesenswert?

Hallo,

ich habe den Nachsatz noch nicht so richtig auseinandergenommen...
R (Result) equals Rdh:Rdl after the operation (Rdh7-Rdh0 = R15-R8, 
Rdl7-Rdl0=R7-R0).

Da müßte eigentlich des Rätsels Lösung liegen.

Gruß aus Berlin
Michael

von Thomas Waller (Gast)


Lesenswert?

Ja, wenn man davon ausgeht, daß Rdh:Rdl der 16-Bit Wert VOR der 
Operation ist (und R15 das 15.Bit des Ergebnisses NACH der Operation) 
dann macht die Aussage C-Flag = R15* /Rdh7 Sinn und bedeutet Vergleich 
des GANZEN 16-Bit Werts mit K. Somit würde C nur bei Unterschreitung von 
0000H gesetzt und nicht etwa bei xx00H, so wie man diesen Befehl ja 
eigentlich auch in 16-Bit Sinn verstehen sollte !??

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.