Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: EDV-Dompteur/Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Samstag, 16. Oktober 2021, 12:19

AVR8ASM : Das Two's complement overflow flag ( V-Flag )

Hallo zusammen,

das Verständnis zum V-Flag war eine ziemliche Tortur. Aus der Logikschaltung, die zeigt wie dass V-Flag zustande kommt, geht hervor dass das V-Flag gesetzt wird, wenn beide Operatoren dass gleiche Vorzeichen haben, aber dass Resultat ein anderes. Dabei gilt es zu beachten, dass der AVR8-uC eine Subtraktion als Addition mit dem Zweierkomplement durchführt, aber die Flags natürlich, wie bei einer Subtraktion beeinflußt werden. Die Zweierkomplementdarstellung von -127 ist $81 bzw. 129.
Die Subtraktion als Addition mit dem Zweierkomplement, erklärt die Funktion der Logikschaltung, es ist aber unbedingt zu berücksichtigen, dass das H-Flag richtigerweise gesetzt wird und nicht dass C-Flag, da ja eine Subtraktion ausgeführt wird. Das Ergebnis ist natürlich falsch, da der vorzeichenbehaftete Zahlenbereich ( -128 bis +127 ) mit -129 verlassen wurde, was mit V=1 angezeigt wird.

Um den Zustand des V-Flags bestimmen zu können, ist es am besten dezimal zu rechnen und zu gucken, ob dass Resultat den vorzeichenbehafteten Zahlenbereich verlassen hat.



_Machtwas_
CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Machtwas« (16. Oktober 2021, 18:57)


Zur Zeit ist neben Ihnen 1 Benutzer in diesem Thema unterwegs:

1 Besucher