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
Produktfamilie POWER ® 
Maskg RA, RS, RB
maskg RA, RS, RB

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

  1. 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.
    
  2. 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.