360 彙編/360 指令/L
外觀
L - 載入 - 操作碼 58 - RX 格式指令(32 位)
- L 2,N2
- L 11,106(8,10)
具體的語法是
- L 目標暫存器,偏移量(索引暫存器,基址暫存器)
其中偏移量、索引暫存器和基址暫存器的值由彙編器自動確定,如果使用USING偽指令,並且目標地址標籤在某個基址暫存器值的 4096 位元組範圍內。
| RX 指令(4 位元組) | |||||||
| 位元組 1 | 位元組 2 | 位元組 3 和 4 | |||||
| 目標暫存器 | 源地址 | ||||||
| (十六進位制) | (8 位) 操作碼 58 |
(4 位) 0..F |
(4 位) 索引 暫存器 0..F |
(4 位) 基址 暫存器 0..F |
(12 位) 位移 0..FFF | ||
- 第一個引數是目標暫存器,其值受指令影響。
- 第二個引數是源值的記憶體地址,其中內容將被載入到目標暫存器中。它包含一個基址暫存器、一個索引暫存器和一個位移地址。位移用作基址暫存器值中 0 到 4095 的無符號偏移量,並將此位移新增到基址暫存器中包含的值。如果索引暫存器為 0,則忽略它;否則,其內容將新增到之前的結果以獲得最終地址。
- 基址暫存器和索引暫存器的值為 0 到 15。偏移地址為 0 到 4095。
如果使用 USING 偽指令,彙編器將自動確定目標和基址暫存器值,並且使用的目標地址標籤(位移)在某個基址暫存器值的 4096 位元組範圍內。
L 指令在所有 360、370 和 z/System 模型上都可用。
L 指令從引數指定的記憶體地址讀取一個 32 位整數值,並將其放入第一個引數指定的暫存器中。64 位暫存器的高位保持不變。
源引數地址應對齊到字邊界(即 4 位元組)。程式狀態字中的條件碼欄位不會改變。
- 源地址必須在有效記憶體範圍內,否則會發生操作異常。
- 源地址必須對齊到字邊界,否則會發生地址異常。
- 源地址的儲存金鑰必須允許當前程序讀取該位置(或程序必須具有金鑰為零的特權),否則會發生記憶體保護衝突異常。
最密切相關的指令
[編輯原始碼]最密切相關的指令是邏輯暫存器加法 (ALR),而不是有時假設的載入地址 (LA)。L 從記憶體載入值,而 LA 不會訪問記憶體;它只計算一個數字,它可以是地址,但不是必須是地址。
32 位指令
[編輯原始碼]- 要從記憶體載入一個 8 位位元組(字元)值,請參見IC.
- 要根據掩碼將一個或多個 8 位位元組值載入到暫存器中,請參見ICM
- 要從記憶體載入一個 16 位半字值,請參見LH.
- 要將一個 12 位無符號值載入到暫存器中,或將最多 4095 新增到一個或兩個 32 位暫存器中的值,請參見LA.
- 要將一個 32 位字值從一個暫存器複製到另一個暫存器,請參見LR.
- 要從記憶體載入一個 32 位字值,請參見L.
- 要在記憶體中儲存一個 8 位位元組(字元)值,請參見STC.
- 要根據掩碼將一個或多個 8 位位元組值儲存到記憶體中,請參見STCM
- 要在記憶體中儲存一個 16 位半字值,請參見STH.
- 要在記憶體中儲存一個 32 位字值,請參見ST.
64 位指令
[編輯原始碼]- 要將一個 20 位有符號值從擴充套件的(20 位)有符號記憶體偏移量載入到 32 位或 64 位暫存器中,請參見LAY.
- 要將一個 32 位值從擴充套件的(20 位)有符號記憶體偏移量載入到 64 位暫存器中,請參見LGF.
- 要將一個 64 位值從一個 64 位暫存器複製到另一個 64 位暫存器,請參見LGR.
- 要將一個 64 位值從記憶體載入到 64 位暫存器中,請參見LG.
- 要將一個 32 位值從暫存器儲存到擴充套件的(20 位)有符號記憶體偏移量,請參見STY.
- 要將一個 64 位值從 64 位暫存器儲存到記憶體中的地址,請參見STG.
| 上一個指令 KXBR |
360 彙編指令 {{{name}}} |
下一個指令 LA |
| 上一個操作碼 57 |
下一個操作碼 59 |
| 360 組合語言 | |
| 360 系列 | 介紹 · 基本常見問題解答 · 360 系列 · 360 架構 |
|---|---|
| 360 指令集 | 360 指令 · 分支指令 · 資料傳輸指令 · 控制流指令 · 算術指令 · 邏輯指令 · 移位和旋轉指令 · 特權指令 · 其他指令 |
| 語法和彙編器 | 360 彙編器· 偽指令 |
| 指令擴充套件 | 浮點數 · 高階語言 |
| 此頁面或部分是一個未開發的草稿或提綱。 您可以幫助開發作品,或者您可以在專案室中尋求幫助。 |