Bedingungscodes: Unterschied zwischen den Versionen

Aus C und Assembler mit Raspberry
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 4: Zeile 4:
|+ Bedingungscodes
|+ Bedingungscodes
|-
|-
! Code !! colspan="2"|Bedeutung (Ganzzahl) !! colspan="2"|Bedeutung (Gleitkomma) !! Bedingungsflags
! Symbol !! colspan="2"|Bedeutung (Ganzzahl) !! colspan="2"|Bedeutung (Gleitkomma) !! Bedingungsflags
|-
|-
| EQ || Gleich || = || Gleich || = || Z == 1
| EQ || gleich || = || gleich || = || Z == 1
|-
|-
| NE || Ungleich || <>, != || Ungleich oder ungeordnet || <>, != || Z == 0
| NE || ungleich || <>, != || ungleich oder ungeordnet || <>, != || Z == 0
|-
|-
| CS, HS || Carry gesetzt || || Größer als, gleich oder ungeordnet || || C == 1
| CS, HS || Vorzeichenlos größer oder gleich || >= || Größer , gleich oder ungeordnet || >= || C == 1
|-
|-
| CC, LO || Carry gelöscht || || Kleiner als || || C == 0
| CC, LO || Vorzeichenlos kleiner || < || Kleiner als || < || C == 0
|-
|-
| MI || Minus, negativ || < 0 || Kleiner als || < || N == 1
| MI || Minus, negativ || < 0 || Kleiner als || < || N == 1
|-
|-
| PL || Plus, positiv oder null || >= 0 || Größer als, gleich oder ungeordnet || >= || N == 0
| PL || Plus, positiv oder null || >= 0 || Größer, gleich oder ungeordnet || >= || N == 0
|-
|-
| VS || Überlauf || || Ungeordnet || || V == 1
| VS || Überlauf || || Ungeordnet || || V == 1
Zeile 22: Zeile 22:
| VC || Kein Überlauf || || Geordnet || || V == 0
| VC || Kein Überlauf || || Geordnet || || V == 0
|-
|-
| HI || Vorzeichenlos größer als || > || Größer als oder ungeordnet || > || C ==1 && Z == 0
| HI || Vorzeichenlos größer || > || Größer oder ungeordnet || > || C ==1 && Z == 0
|-
|-
| LS || Vorzeichenlos kleiner als oder gleich || <= || Kleiner als oder gleich || <= || !(C ==1 && Z ==0)
| LS || Vorzeichenlos kleiner oder gleich || <= || Kleiner oder gleich || <= || !(C ==1 && Z ==0)
|-
|-
| GE || Vorzeichenbehaftet größer als oder gleich || >= || Größer als oder gleich || >= || N == V
| GE || Vorzeichenbehaftet größer oder gleich || >= || Größer oder gleich || >= || N == V
|-
|-
| LT || Vorzeichenbehaftet kleiner als || < || Kleiner als oder ungeordnet || < || N != V
| LT || Vorzeichenbehaftet kleiner || < || Kleiner oder ungeordnet || < || N != V
|-
|-
| GT || Vorzeichenbehaftet größer als || > || Größer als || > || Z == 0 && N == V
| GT || Vorzeichenbehaftet größer || > || Größer || > || Z == 0 && N == V
|-
|-
| LE || Vorzeichenbehaftet kleiner als oder gleich || <= || Kleiner als, gleich oder ungeordnet || <= || !(Z == 0 && N == V)
| LE || Vorzeichenbehaftet kleiner oder gleich || <= || Kleiner, gleich oder ungeordnet || <= || !(Z == 0 && N == V)
|-
|-
| AL || Immer || || Immer || || Beliebig
| AL || Immer || || Immer || || Beliebig
|}
|}

Version vom 26. September 2024, 08:06 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
Symbol Bedeutung (Ganzzahl) Bedeutung (Gleitkomma) Bedingungsflags
EQ gleich = gleich = Z == 1
NE ungleich <>, != ungleich oder ungeordnet <>, != Z == 0
CS, HS Vorzeichenlos größer oder gleich >= Größer , gleich oder ungeordnet >= C == 1
CC, LO Vorzeichenlos kleiner < Kleiner als < C == 0
MI Minus, negativ < 0 Kleiner als < N == 1
PL Plus, positiv oder null >= 0 Größer, gleich oder ungeordnet >= N == 0
VS Überlauf Ungeordnet V == 1
VC Kein Überlauf Geordnet V == 0
HI Vorzeichenlos größer > Größer oder ungeordnet > C ==1 && Z == 0
LS Vorzeichenlos kleiner oder gleich <= Kleiner oder gleich <= !(C ==1 && Z ==0)
GE Vorzeichenbehaftet größer oder gleich >= Größer oder gleich >= N == V
LT Vorzeichenbehaftet kleiner < Kleiner oder ungeordnet < N != V
GT Vorzeichenbehaftet größer > Größer > Z == 0 && N == V
LE Vorzeichenbehaftet kleiner oder gleich <= Kleiner, gleich oder ungeordnet <= !(Z == 0 && N == V)
AL Immer Immer Beliebig