# 360 Assembly/360 Instructions/LGR

LGR - Load Register - 64 Bit - Opcode B904 - RRE Instruction

## Format

    LGR 2,6
The specific syntax is
    LGR target register, source register.
RRE Instruction (4 bytes) :
| Bytes 1 and 2 | Byte 3 | Byte 4 | Byte 4 |
| | | target register | source register |
| (16 bits) Opcode B904 | (8 bits) Not used | (4 bits) 0..F | (4 bits) 0..F |
* The first argument is a target register which value is affected by the instruction.
* The second argument is the source value register.

## Availability

The LGR instruction is 64-bit, and is only available on the 370 series and z/System. It will cause an opcode exception on the 360 series.

## Operation

The LGR instruction copies a 64-bit value from the register specified by the second argument to the register specified by the first argument.
Condition codes are not changed.
Register 0 is valid for either register and is not ignored as in some other instructions.

## Exceptions and Faults

* 360 Series: Opcode Exception
* 370 Series and zSystem: None.

## Most Closely-related Instruction

The most closely-related instruction is Add Logical Register (ALR) and not Load Address (LA), as is sometimes assumed. Whereas L loads a value from memory, LA does not access memory; it only calculates a number, which can but does not have to be an address.

### 32-Bit Instructions

* To load an 8-bit byte (character) value from memory, see IC.
* To load one or more 8-bit byte values into a register according to a mask, see ICM
* To load a 16-bit half-word value from memory, see LH.
* To load a 12-bit unsigned value into a register or add up to 4095 to the values in one or two 32-bit registers, see LA.
* To copy a 32-bit word value from one register to another register, see LR.
* To load a 32-bit word value from memory, see L.
* To store an 8-bit byte (character) value in memory, see STC.
* To store one or more 8-bit byte values into memory according to a mask, see STCM
* To store a 16-bit half-word value in memory, see STH.
* To store a 32-bit word value in memory, see ST.

### 64-Bit Instructions

* To load a 20-bit signed value into a 32-bit or 64-bit register from an extended (20-bit) signed memory offset, see LAY.
* To load a 32-bit value into a 64-bit register from an extended (20-bit) signed memory offset, see LGF.
* To copy a 64-bit value from one 64-bit register to another 64-bit register, see LGR.
* To load a 64-bit value into a 64-bit register from memory, see LG.
* To store a 32-bit value from a register to an extended (20-bit) signed memory offset, see STY.
* To store a 64-bit value from a 64-bit register to an address in memory, see STG.
| Previous Instruction LGHR | 360 Assembly Instructions | Next Instruction LH |
| Previous Opcode B903 | 360 Assembly Instructions | Next Opcode B905 |
360 Assembly Language :
| 360 Family | Introduction · Basic FAQ · 360 Family · 360 Architecture |
| 360 Instruction Set | 360 Instructions · Branch Instructions · Data Transfer Instructions · Control Flow Instructions · Arithmetic Instructions · Logic Instructions · Shift and Rotate Instructions · Priveleged Instructions · Other Instructions |
| Syntaxes and Assemblers | 360 Assemblers· Pseudo Instructions |
| Instruction Extensions | Floating Point · High-Level Languages |