跳轉到內容

360 彙編/360 指令/LGR

來自 Wikibooks,開放世界開放書籍

LGR - 載入暫存器 - 64 位 - 操作碼 B904 - RRE 指令

LGR 2,6

具體的語法是

LGR 目標暫存器, 源暫存器
RRE 指令(4 位元組)
位元組 1 和 2 位元組 3 位元組 4
目標暫存器 源暫存器
(16 位)
操作碼
B904
(8 位)
未使用
(4 位)

0..F
(4 位)

0..F
  • 第一個引數是目標暫存器,其值受指令影響。
  • 第二個引數是源值暫存器。

可用性

[編輯 | 編輯原始碼]

LGR 指令是 64 位的,並且僅在 370 系列和 z/System 上可用。它將在 360 系列上導致操作碼異常。

LGR 指令將第二個引數指定的暫存器中的 64 位值複製到第一個引數指定的暫存器中。

條件程式碼不會改變。

暫存器 0 對任何暫存器都是有效的,不像某些其他指令那樣被忽略。

異常和故障

[編輯 | 編輯原始碼]
  • 360 系列:操作碼異常
  • 370 系列和 zSystem:無。
[編輯原始碼]

最密切相關的指令是邏輯加暫存器 (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


上一條指令
LGHR
360 彙編指令   下一條指令
LH
上一個操作碼
B903
下一個操作碼
B905
360 組合語言
360 家族 介紹 · 基本常見問題解答 · 360 家族 · 360 架構
360 指令集 360 指令 · 分支指令 · 資料傳輸指令 · 控制流指令 · 算術指令 · 邏輯指令 · 移位和旋轉指令 · 特權指令 · 其他指令
語法和彙編器 360 彙編器· 偽指令
指令擴充套件 浮點數 · 高階語言


華夏公益教科書