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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.