lmw 或 lm (載入多個單字) 指示
用途
將指定位置的連續單字載入至多個一般用途暫存器。
語法
位元 | VALUE |
---|---|
0 - 5 | 46 |
6 - 10 | RT |
11 - 15 | RA |
16 - 31 | D |
說明
lmw 和 lm 指令會從計算的有效位址 (EA) 開始,將 N 連續單字載入到許多通用暫存器 (GPR) 中,從 GPR RT 開始,並透過 GPR 31 填入所有 GPR。 N 等於 32-RT 欄位,這是放置在連續暫存器中的連續字組總數。
如果 GPR RA 不是 0 ,則 EA 是 GPR RA 和 D的內容總和。 如果 GPR RA 為 0 ,則 EA 為 D。
使用 PowerPC® 指示 lmw時請考量下列事項:
- 如果 GPR RA 或 GPR RB 在要載入的暫存器範圍內,或 RT = RA = 0 ,則會取消定義結果。
- EA 必須是 4 的倍數。 如果不是,則可能會呼叫系統對齊錯誤處理程式,或結果可能會被取消定義。
對於 POWER ® 系列指示 lm,如果 GPR RA 不等於 0 且 GPR RA 在要載入的範圍內,則不會寫入 GPR RA 。 已捨棄通常會寫入 RA 的資料,並正常繼續執行作業。
lmw 和 lm 指令有一個語法,不會影響「固定點異常狀況暫存器」或「條件暫存器」欄位 0。
附註: 由於資料儲存體岔斷,可岔斷 lmw 及 lm 指示。 當發生這類岔斷時,應該從頭開始重新啟動指令。
參數
項目 | 說明 |
---|---|
RT | 指定作業的啟動目標一般用途暫存器。 |
D | 指定延伸至 32 位元以進行 EA 計算的 16 位元帶正負號的 2 補數整數符號 |
RA | 指定 EA 計算的來源一般用途暫存器。 |
範例
下列程式碼會將資料載入 GPR 29 和 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.