Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:techinf:assembler:register:statusflags:start [13.09.2021 16:38] – angelegt sbel | faecher:informatik:oberstufe:techinf:assembler:register:statusflags:start [13.09.2021 16:41] (aktuell) – [Parityflag] sbel | ||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
oder bitweise logischen Operation Null war. Beispiel: | oder bitweise logischen Operation Null war. Beispiel: | ||
<code asm> | <code asm> | ||
- | mov ax,1 | + | mov ax,1 ;Zahlenwert 1 nach ax transportieren |
- | dec ax | + | dec ax ;ax um 1 erniedrigen, |
- | ;Zahlenwert 1 nach ax transportieren | + | |
- | ;ax um 1 erniedrigen, | + | |
- | ;Zeroflag wird gesetzt | + | |
</ | </ | ||
Zeile 20: | Zeile 18: | ||
<code asm> | <code asm> | ||
- | mov ax,5 | + | mov ax,5 ;Zahlenwert 5 nach ax einschreiben |
- | sub ax,7 | + | sub ax,7 ;7 von ax subtrahieren Ergebnis ist negativ |
- | ;Zahlenwert 5 nach ax einschreiben | + | |
- | ;7 von ax subtrahieren Ergebnis ist negativ | + | |
- | ;Signflag wird gesetzt1.2. REGISTER UND FLAGS DES 80386 | + | |
- | 17 | + | |
</ | </ | ||
===== Carryflag ===== | ===== Carryflag ===== | ||
Zeile 34: | Zeile 29: | ||
<code asm> | <code asm> | ||
- | mov al,250 | + | mov al,250 ;Zahlenwert 250 nach al einschreiben |
- | add al,10 | + | add al,10 ;10 zu al addieren. Ergebnis (260) überschreitet |
- | ;Zahlenwert 250 nach al einschreiben | + | ;den Wertebereich, |
- | ;10 zu al addieren. Ergebnis (260) überschreitet | + | ;Werte 0..255 darstellen kann; Carryflag wird gesetzt |
- | ;den Wertebereich, | + | |
- | ;Werte 0..255 darstellen kann; Carryflag wird gesetzt | + | |
</ | </ | ||
Zeile 45: | Zeile 39: | ||
- | Das Overflowflag, | + | Das Overflowflag, |
- | behaftete | + | |
das Rechnen mit vorzeichenbehafteten Zahlen, also Zahlen die positiv und negativ sein können. | das Rechnen mit vorzeichenbehafteten Zahlen, also Zahlen die positiv und negativ sein können. | ||
Beispiel: | Beispiel: | ||
<code asm> | <code asm> | ||
- | mov al,120 | + | mov al,120 ;Zahlenwert 120 nach al einschreiben |
- | add al,10 | + | add al,10 ;10 zu al addieren. Ergebnis (130) überschreitet |
- | ;Zahlenwert 120 nach al einschreiben | + | ;den Wertebereich, |
- | ;10 zu al addieren. Ergebnis (130) überschreitet | + | ;Werte -128..+127 darstellen kann; Overflowflag wird gesetzt |
- | ;den Wertebereich, | + | |
- | ;Werte -128..+127 darstellen kann; Overflowflag wird gesetzt | + | |
</ | </ | ||
Zeile 66: | Zeile 59: | ||
<code asm> | <code asm> | ||
- | mov dl,110010b | + | mov dl,110010b ; binären Zahlenwert 110010 nach dl einschreiben |
- | add dl,1 | + | add dl,1 ;1 zu ax addieren. Das Ergebnis 110011 hat eine |
- | ; binären Zahlenwert 110010 nach dl einschreiben | + | |
- | ;1 zu ax addieren. Das Ergebnis 110011 hat eine | + | |
- | ;gerade Anzahl von Einsen -> Parityflag wird gesetzt | + | |
</ | </ | ||
- | Auxiliary Carry Flag | + | ===== Auxiliary Carry Flag ===== |
Das Auxiliary Carry Flag, AF, Hilfsübertragsflag, | Das Auxiliary Carry Flag, AF, Hilfsübertragsflag, | ||
ein Übertrag von Bit 3 auf Bit 4, also ein Übertrag vom der unteren auf die obere Tetrade, ent- | ein Übertrag von Bit 3 auf Bit 4, also ein Übertrag vom der unteren auf die obere Tetrade, ent- | ||
standen ist. Dieses Flag ist nur beim Rechnen mit BCD-Zahlen nützlich und wird prozessorintern | standen ist. Dieses Flag ist nur beim Rechnen mit BCD-Zahlen nützlich und wird prozessorintern | ||
von den Ausrichtungsbefehlen benutzt. | von den Ausrichtungsbefehlen benutzt. |