Carry-Flag, Overflow-Flag, Zero-Flag?

2 Antworten

Arithmetik, Vergleiche, bit Operationen, shifts sind die vornehmlichen Kandidaten, die das Z flag setzen. Also auch Subtraktion. Ist das Ergebnis 0, also beide Operanden identisch, wird mit Z=1 dies ausgedrückt.

Eine Compare-Operation stellt im Wesen eine Subtraktion dar, bloß ohne Festhalten der Differenz. Flags werden aber dem Ergebnis entsprechend ebenfalls gesetzt, also auch das Z flag.


RedDevil1982 
Fragesteller
 29.05.2023, 09:14

Wie sieht es bei den anderen Kombinationen aus? Unter welchen Relationen

= ungleich, <, <=, >, >= sind diese im im 2er Komplement erfüllt bei x - y

Z = 0 =>

N = V und Z = 0 =>

N = V =>

N ungleich V =>

N ungleich V oder Z = 1 =>

0
Bushmills145  29.05.2023, 12:20
@RedDevil1982

Die Operationen setzen weitere flags. Carry ist wichtig, auch als Borrow verwendet, für Durchgang unter der 0, womit auch "kleiner als" dargestellt wird, und Half Carry, bzw Overflow, für Vorzeichenänderung ohne Carry.

Carry flag wird aber nicht nur für Durchgang unter der 0 verwendet. So können z.B. Shift-Operationen ein herausgeschobenes bit im Carry-flag abbilden.

0

Wenn das Zeroflag 0 ist, war das Ergebnis der letzten Operation ungleich 0.

Und ja, die Zahlen müssen ungleich sein, wenn das Zeroflag 0 werden soll.


RedDevil1982 
Fragesteller
 29.05.2023, 09:15

Wie sieht es bei den anderen Kombinationen aus? Unter welchen Relationen

= ungleich, <, <=, >, >= sind diese im im 2er Komplement erfüllt bei x - y

N = V und Z = 0 =>

N = V =>

N ungleich V =>

N ungleich V oder Z = 1 =>

0