Anweisung lmw oder lm (Mehrere Wörter laden)
Zweck
Lädt aufeinanderfolgende Wörter an einer angegebenen Position in mehrere Allgemeinregister.
Syntax
| Bit | Wert |
|---|---|
| 0 - 5 | 46 |
| 6 - 10 | RT |
| 11 - 15 | RA |
| 16 - 31 | D |
Beschreibung
Die Lmw -und Lm -Anweisungen laden N aufeinanderfolgende Wörter beginnend bei der berechneten effektiven Adresse (EA) in eine Reihe von Allgemeinregistern (GPR), beginnend bei GPR RT und füllen alle GPRs bis GPR 31. N ist gleich 32-RT Feld, die Gesamtzahl der aufeinanderfolgenden Wörter, die in aufeinanderfolgenden Registern platziert werden.
Wenn GPR RA nicht 0 ist, ist EA die Summe der Inhalte von GPR RA und D. Wenn GPR RA 0 ist, ist der EA D.
Beachten Sie Folgendes, wenn Sie die PowerPC® -Anweisung lmwverwenden:
- Wenn GPR RA oder GPR RB im Bereich der zu ladenden Register liegt oder RT = RA = 0 ist, sind die Ergebnisse nicht definiert.
- Der EA muss ein Vielfaches von 4 sein. Ist dies nicht der Fall, kann das Fehlerbehandlungsprogramm für Systemausrichtung aufgerufen werden oder die Ergebnisse können undefiniert sein.
Für die Anweisung der POWER ® -Produktfamilie Lmgilt: Wenn GPR RA ungleich 0 ist und GPR RA in dem Bereich liegt, in den geladen werden soll, wird GPR RA nicht geschrieben. Die Daten, die normalerweise in RA geschrieben würden, werden gelöscht und die Operation wird normal fortgesetzt.
Die Anweisungen Lmw und Lm weisen eine Syntax auf und wirken sich nicht auf das Register für Festpunktausnahmebedingungen oder das Bedingungsregisterfeld 0 aus.
Anmerkung: Die Anweisungen Lmw und Lm können aufgrund einer Datenspeicherunterbrechung unterbrochen werden. Wenn eine solche Unterbrechung auftritt, sollte die Anweisung von Anfang an neu gestartet werden.
Parameter
| Element | Beschreibung |
|---|---|
| RT | Gibt das Startzielregister für allgemeine Zwecke für die Operation an |
| D | Gibt ein 16-Bit-Zweierkomplementganzzahlzeichen mit Vorzeichen an, das für die EA-Berechnung auf 32 Bit erweitert wird. |
| RA | Gibt das allgemeine Quellenregister für die EA-Berechnung an. |
Beispiele
Der folgende Code lädt Daten in GPR 29 und GPR 31:
.csect data[rw]
.long 0x8971
.long -1
.long 0x7ffe c100
# Assume GPR 30 contains the address of csect data[rw].
.csect text[pr]
lmw 29,0(30)
# GPR 29 now contains 0x0000 8971.
# GPR 30 now contains the address of csect data[rw].
# GPR 31 now contains 0x7ffe c100.