maskg (Maske generieren), Anweisung
Zweck
Generiert eine Maske mit Einsen und Nullen und lädt sie in ein Allgemeinregister.
Hinweis: Die Anweisung maskg wird nur in der Architektur der POWER ® -Produktfamilie unterstützt.
Syntax
| Bit | Wert |
|---|---|
| 0 - 5 | 31 |
| 6 - 10 | RS |
| 11 - 15 | RA |
| 16 - 20 | RB |
| 21 - 30 | 29 |
| 31 | RC |
Beschreibung
Die Anweisung maskg generiert eine Maske von einem Ausgangspunkt, der durch die Bits 27-31 des allgemeinen Registers (GPR) RS definiert ist, zu einem Endpunkt, der durch die Bits 27-31 des GPR RB definiert ist, und speichert die Maske in GPR RA.
Beachten Sie bei Verwendung der Anweisung maskg Folgendes:
- Wenn das Startpunktbit kleiner als das Endpunktbit + 1 ist, werden die Bits zwischen und einschließlich des Startpunkts und des Endpunkts auf eins gesetzt. Alle anderen Bits werden auf 0 gesetzt.
- Wenn das Startpunktbit mit dem Endpunktbit + 1 identisch ist, werden alle 32 Bit auf eins gesetzt.
- Wenn das Startpunktbit größer als das Endpunktbit + 1 ist, werden alle Bits zwischen und einschließlich dem Endpunktbit + 1 und dem Startpunktbit -1 auf Nullen gesetzt. Alle anderen Bits werden auf Einsen gesetzt.
Die Anweisung maskg hat zwei Syntaxformate. Jedes Syntaxformular hat unterschiedliche Auswirkungen auf Bedingungsregisterfeld 0.
| Element | Beschreibung | |||
|---|---|---|---|---|
| Syntaxformat | Überlauf Ausnahmebedingung (OE) | Fixed-Point Exception Register | Record Bit (Rc) | Bedingung Feld 0 registrieren |
| Maskg | Keine | Keine | 0 | Keine |
| maskg | Keine | Keine | 1 | LT,GT, EQ, SO |
Die beiden Syntaxformen der Anweisung maskg wirken sich nie auf das Register für Ausnahmen bei festen Punkten aus. Wenn das Syntaxformat das Satzbit (Rc) auf 1 setzt, wirkt sich die Anweisung auf die Bits "Kleiner als (LT) Null", "Größer als (GT) Null", "Gleich (EQ) Null" und "Summary Overflow (SO)" im Bedingungsregisterfeld 0 aus.
Parameter
| Element | Beschreibung |
|---|---|
| RA | Gibt das Zielregister für allgemeine Zwecke an, in dem das Ergebnis der Operation gespeichert wird. |
| RS | Gibt das allgemeine Quellenregister für den Anfang der Maske an. |
| RB | Gibt das allgemeine Quellenregister für das Ende der Maske an. |
Beispiele
- Der folgende Code generiert eine Maske von 5 Einsen und speichert das Ergebnis in GPR 6:
# Assume GPR 4 contains 0x0000 0014. # Assume GPR 5 contains 0x0000 0010. maskg 6,5,4 # GPR 6 now contains 0x0000 F800. - Der folgende Code generiert eine Maske mit 6 Nullen, wobei die übrigen Bits auf eins gesetzt sind, speichert das Ergebnis in GPR 6 und legt das Bedingungsregisterfeld 0 fest, um das Ergebnis der Operation widerzuspiegeln:
# Assume GPR 4 contains 0x0000 0010. # Assume GPR 5 contains 0x0000 0017. # Assume CR = 0. maskg. 6,5,4 # GPR 6 now contains 0xFFFF 81FF. # CR now contains 0x8000 0000.