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:


Code Bedeutung (Ganzzahl) Bedeutung (Gleitkomma) Bedingungsflags
{| class="wikitable"
{| class="wikitable"
|+ Bedingungscodes
|+ Bedingungscodes
Zeile 9: Zeile 8:
| EQ || Gleich || Gleich || Z == 1
| EQ || Gleich || Gleich || Z == 1
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| NE || Ungleich || Ungleich oder ungeordnet || Z == 0
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| CS, HS || Carry gesetzt || Größer als, gleich oder ungeordnet || C == 1
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| CC, LO || Carry gelöscht || Kleiner als || C == 0
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| MI || Minus, negativ || Kleiner als || N == 1
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| PL || Plus, positiv oder null || Größer als, gleich oder ungeordnet || N == 0
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| VS || Überlauf || Ungeordnet || V == 1
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| VC || Kein Überlauf || Geordnet || V == 0
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| HI || Vorzeichenlos größer als || Größer als oder ungeordnet || C ==1 && Z == 0
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| LS || Vorzeichenlos kleiner als oder gleich || Kleiner als oder gleich || !(C ==1 && Z ==0)
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| GE || Vorzeichenbehaftet größer als oder gleich || Größer als oder gleich || N == V
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| LT || Vorzeichenbehaftet kleiner als || Kleiner als oder ungeordnet || N != V
|-
|-
| Beispiel || Beispiel || Beispiel || Beispiel
| 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
|}
|}
cond Mnemonische Bedeutung (Ganzzahl) Bedeutung (Gleitkomma)a Bedingungsflags
0000 EQ Gleich Gleich Z == 1
0001 NE Ungleich Ungleich oder ungeordnet Z == 0
0010 CS oder HS Übertragssatz Größer als, gleich oder ungeordnet C == 1
0011 CC oder LO Übertragslöschung Kleiner als C == 0
0100 MI Minus, negativ Kleiner als N == 1
0101 PL Plus, positiv oder null Größer als, gleich oder ungeordnet N == 0
0110 VS Überlauf Ungeordnet V == 1
0111 VC Kein Überlauf Geordnet V == 0
1000 HI Vorzeichenlos höher Größer als oder ungeordnet C ==1 && Z == 0
1001 LS Vorzeichenlos niedriger oder gleich Kleiner als oder gleich !(C ==1 && Z ==0)
1010 GE Vorzeichenbehaftet größer als oder gleich Größer als oder gleich N == V
1011 LT Vorzeichenbehaftet kleiner als Kleiner als oder ungeordnet N != V
1100 GT Vorzeichenbehaftet größer als Größer als Z == 0 && N == V
1101 LE Vorzeichenbehaftet kleiner als oder gleich Kleiner als, gleich oder ungeordnet !(Z == 0 && N == V)
1110 AL Immer Immer Beliebig
1111 NVb 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:

Bedingungscodes
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