Bedingungscodes: Unterschied zwischen den Versionen
Aus C und Assembler mit Raspberry
Die Seite wurde neu angelegt: „In der Archektetur des ARMv8 gibt es Befehle, die Bedingungsflags setzen oder Bedingungscodes oder beides testen. Zu den jeweiligen Befehlen wird darauf eingegangen, wenn diese Befehle dies unterstützen. Hier ist eine Auflistung der Bedingungscodes, die verwendet werden: Code Bedeutung (Ganzzahl) Bedeutung (Gleitkomma) Bedingungsflags {| class="wikitable" |+ Bedingungscodes |- ! Code !! Bedeutung (Ganzzahl) !! Bedeutung (Gleitkomma) !! Bedingungsflags |…“ |
KKeine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
In der Archektetur des ARMv8 gibt es Befehle, die Bedingungsflags setzen oder Bedingungscodes oder beides testen. Zu den jeweiligen Befehlen wird darauf eingegangen, wenn diese Befehle dies unterstützen. Hier ist eine Auflistung der Bedingungscodes, die verwendet werden: | In der Archektetur des ARMv8 gibt es Befehle, die Bedingungsflags setzen oder Bedingungscodes oder beides testen. Zu den jeweiligen Befehlen wird darauf eingegangen, wenn diese Befehle dies unterstützen. Hier ist eine Auflistung der Bedingungscodes, die verwendet werden: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ Bedingungscodes | |+ Bedingungscodes | ||
| Zeile 9: | Zeile 8: | ||
| EQ || Gleich || Gleich || Z == 1 | | EQ || Gleich || Gleich || Z == 1 | ||
|- | |- | ||
| | | NE || Ungleich || Ungleich oder ungeordnet || Z == 0 | ||
|- | |- | ||
| | | CS, HS || Carry gesetzt || Größer als, gleich oder ungeordnet || C == 1 | ||
|- | |- | ||
| | | CC, LO || Carry gelöscht || Kleiner als || C == 0 | ||
|- | |- | ||
| | | MI || Minus, negativ || Kleiner als || N == 1 | ||
|- | |- | ||
| | | PL || Plus, positiv oder null || Größer als, gleich oder ungeordnet || N == 0 | ||
|- | |- | ||
| | | VS || Überlauf || Ungeordnet || V == 1 | ||
|- | |- | ||
| | | VC || Kein Überlauf || Geordnet || V == 0 | ||
|- | |- | ||
| | | HI || Vorzeichenlos größer als || Größer als oder ungeordnet || C ==1 && Z == 0 | ||
|- | |- | ||
| | | LS || Vorzeichenlos kleiner als oder gleich || Kleiner als oder gleich || !(C ==1 && Z ==0) | ||
|- | |- | ||
| | | GE || Vorzeichenbehaftet größer als oder gleich || Größer als oder gleich || N == V | ||
|- | |- | ||
| | | LT || Vorzeichenbehaftet kleiner als || Kleiner als oder ungeordnet || N != V | ||
|- | |- | ||
| | | GT || Vorzeichenbehaftet größer als || Größer als || Z == 0 && N == V | ||
|- | |||
| LE || Vorzeichenbehaftet kleiner als oder gleich || Kleiner als, gleich oder ungeordnet || !(Z == 0 && N == V) | |||
|- | |||
| AL || Immer || Immer || Beliebig | |||
|} | |} | ||
Version vom 26. September 2024, 07:41 Uhr
In der Archektetur des ARMv8 gibt es Befehle, die Bedingungsflags setzen oder Bedingungscodes oder beides testen. Zu den jeweiligen Befehlen wird darauf eingegangen, wenn diese Befehle dies unterstützen. Hier ist eine Auflistung der Bedingungscodes, die verwendet werden:
| Code | Bedeutung (Ganzzahl) | Bedeutung (Gleitkomma) | Bedingungsflags |
|---|---|---|---|
| EQ | Gleich | Gleich | Z == 1 |
| NE | Ungleich | Ungleich oder ungeordnet | Z == 0 |
| CS, HS | Carry gesetzt | Größer als, gleich oder ungeordnet | C == 1 |
| CC, LO | Carry gelöscht | Kleiner als | C == 0 |
| MI | Minus, negativ | Kleiner als | N == 1 |
| PL | Plus, positiv oder null | Größer als, gleich oder ungeordnet | N == 0 |
| VS | Überlauf | Ungeordnet | V == 1 |
| VC | Kein Überlauf | Geordnet | V == 0 |
| HI | Vorzeichenlos größer als | Größer als oder ungeordnet | C ==1 && Z == 0 |
| LS | Vorzeichenlos kleiner als oder gleich | Kleiner als oder gleich | !(C ==1 && Z ==0) |
| GE | Vorzeichenbehaftet größer als oder gleich | Größer als oder gleich | N == V |
| LT | Vorzeichenbehaftet kleiner als | Kleiner als oder ungeordnet | N != V |
| GT | Vorzeichenbehaftet größer als | Größer als | Z == 0 && N == V |
| LE | Vorzeichenbehaftet kleiner als oder gleich | Kleiner als, gleich oder ungeordnet | !(Z == 0 && N == V) |
| AL | Immer | Immer | Beliebig |