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_