跳转到内容

360 汇编/360 指令/LR

来自维基教科书,开放的书籍,开放的世界

LR - 加载寄存器 - RR 指令 - 操作码 18

LR 2,6 将寄存器 6 的内容复制到寄存器 2,替换寄存器 2 的现有内容

具体语法为

LR 目标寄存器, 源寄存器.

操作码

[编辑 | 编辑源代码]
RR 指令 (2 字节)
字节 1
位 (0-7)
字节 2
目标寄存器
(8-11)
源寄存器
(12-15)
(十六进制) 操作码
18
(4 位)
0..F / (十进制 0..15)
(4 位)
0..F / (十进制 0..15)
  • 第一个参数是目标寄存器,其值受指令影响。
  • 第二个参数是源寄存器
  • 目标寄存器源寄存器的值为 0 到 15。


示例用法

[编辑 | 编辑源代码]

LR 指令用于将第二个寄存器参数(源寄存器)的内容复制到第一个寄存器参数(目标寄存器),用源寄存器的内容替换目标寄存器的内容。以下是该指令如何从汇编语言列表中以各种形式组装的示例

1826        LR   2,6
1892        LR   9,2
18FA        LR   15,10

典型用法

[编辑 | 编辑源代码]

当需要复制寄存器的内容以保留原始寄存器中的值时,或者当目的是将一个寄存器中包含的值传播到另一个寄存器时。

可用性

[编辑 | 编辑源代码]

LR 指令在 360、370 和 z/System 的所有型号上都可用。

LR 指令将第二个参数指定的寄存器的 32 位值复制到第一个参数指定的寄存器。

寄存器 0 对任何寄存器都是有效的,不像其他一些指令那样会被忽略。

条件码

[编辑 | 编辑源代码]

条件码不会改变。

异常和故障

[编辑 | 编辑源代码]

无。

[编辑源代码]

最密切相关的指令是逻辑加寄存器 (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
  • 要从扩展的 (20 位) 带符号内存偏移量将 32 位值加载到 64 位寄存器中,请参见 LGF
  • 要将 64 位值从一个 64 位寄存器复制到另一个 64 位寄存器,请参见 LGR
  • 要从内存将 64 位值加载到 64 位寄存器中,请参见 LG
  • 要将 32 位值从寄存器存储到扩展的 (20 位) 带符号内存偏移量,请参见 STY
  • 要将 64 位值从 64 位寄存器存储到内存中的地址,请参见 STG
上一条指令
LPXR
360 汇编指令
{{{name}}}
下一条指令
LRA
上一个操作码
17
下一个操作码
19
360 汇编语言
360 家族 简介 · 基本常见问题解答 · 360 家族 · 360 架构
360 指令集 360 指令 · 分支指令 · 数据传输指令 · 控制流指令 · 算术指令 · 逻辑指令 · 移位和旋转指令 · 特权指令 · 其他指令
语法和汇编器 360 汇编器· 伪指令
指令扩展 浮点 · 高级语言


华夏公益教科书