Table of Contents

Load Index Registers (LIX)/OP=67

Format

OP AF BF A

OP = 67

AF is the Index Register field length. The length may be indirect or indicate that the A-Syllable is a literal. A value of 00 represents a default machine dependent length for single register operations, or four times the internal register length when storing the four Mobile Index Registers. See Compatibility Notes A.62.

BF specifies the Load Variant and may be specified as an indirect field length. The variants are specified after any indirect field length has been resolved.

The least significant digit of the BF field specifies the insert of a Base Indicant value into the result as follows:

VARIANT BFL
Base Indicant Value #7 7
Base Indicant Value #6 6
Base Indicant Value #5 5
Base Indicant Value #4 4
Base Indicant Value #3 3
Base Indicant Value #2 2
Base Indicant Value #1 1
No Base Indicant Value 0

The use of all other BFL values is reserved and will cause an Invalid Instruction (IEX = 26) fault.

The most significant digit of the BF field specifies the destination index register to be loaded as follows:

VARIANT BFM
Load Index Register #7 7
Load Index Register #6 6
Load Index Register #5 5
Load Index Register #4 4
Load Index Register #3 3
Load Index Register #2 2
Load Index Register #1 1
Load Mobile Index Registers (4) 0

The use of all other BFM values is reserved and will cause an Invalid Instruction (IEX = 26) fault.

A is the address of the data field to load into the Index Register(s). Address may be indexed, indirect or extended. The final address controller must equal UN or SN or cause an Invalid Instruction (IEX = 03) fault.

Function

The Load Index Register instruction provides the memory address A of the starting location of either a field that contains the value that is to be loaded into the destination Index Register BFM or the starting location of a field that contains the values that are to be loaded into the four Mobile Index Registers (IX4, IX5, IX6 and IX7).

Each Index Register contains a Sign Digit (MSD), a Base Indicant digits (Next MSD) and a machine dependent offset field. See Compatibility Notes A.62 for the length of the offset field.

If the load of the four Mobile Index Registers is specifed (BF = 00), AF must be equal to 00 or an Invalid Instruction (IEX = 25) is reported. The length is by default four times the machine dependent length of a single Index Register. The Address Controller of the source A must be UN or an Invalid Instruction (IEX = 03) is reported.

If the load of a single register is specified (BFM <> 0) and AF is equal to 00, the length is by default the machine dependent length for a single Index Register. The Address Controller of the source A must be UN or an Invalid Instruction (IEX = 03) is reported.

If the load of a single register is specified (BFM <> 0) and the length AF is equal to or less than the combined length of the offset field and the base indicant field of the Index Register and data is UN the input data A is right-justified in the combined offset/base indicant field of the destination Index Register and padded with leading zero digits if needed. The Sign digit is set to a value of C (positive). The Base Indicant field is set to the value of BFL if BFL is non-zero, it is not modified if BF is equal to zero.

If SN data is specified, the sign digit of the input data A is saved in the sign digit of the destination Index Register.

If the load of a single register is specified (BFM <> 0) and the input length AF is greater than the combined length of the offset and base indicant fields of the destination index register and data is UN, the input data field is examined for non-zero content. If the number of significant digits is greater than the combined length of the offset and base indicant fields of the specified index register, an Invalid Instruction (IEX = 07) fault is reported and the specified Index Register is left unchanged. Otherwise, the remaining data field right justified with padding of zero digits if needed is saved in the combined offset/base indicant fields of the destination Index Register. The sign digit is set to C (positive). The Base Indicant field is set to the value of BFL if BFL is non-zero, otherwise it is left unchanged.

If the load of a single register is specified (BFM <> 0) and the input length AF is greater than the combined length of the offset and base indicant fields of the destination index register and data is SN, the most significant digit of the input field A is interpreted as the sign. The remaining input data field is examined for non-zero content. If the number of significant digits is greater than the combined length of the offset and base indicant fields of the specified index register, an Invalid Instruction (IEX = 07) fault is reported and the specified Index Register is left unchanged. Otherwise, the remaining data field right justified with padding of zero digits if needed is saved in the combined offset/base indicant fields of the destination Index Register. The sign of the input data field A is saved in the Sign digit field of the specified Index Register. The Base Indicant field is set to the value of BFL if BFL is non-zero, otherwise it is left unchanged.

See Compatibility Notes A.32 for the valid Base Indicant values.

The Mobile Index Registers (IX4, IX5, IX6 and IX7) are registers in the Hardware (i.e. not located in main memory). When the remaining Index Registers (IX1, IX2 and IX3) are loaded, the associated memory locations (000008, 000016 and 000024 relative to Base #0) will be updated to the value found in the A operand.

Comparison Flags

The Comparison Flags are set to EQUAL if all of the digits of the offset field of the specified index register are equal to zero.

The Comparison Flags are set to NULL if all of the digits of the offset field of the specified index register are equal to E.

Otherwise, the Comparison Flags are set to HIGH if the sign of the specified Index Register is positive or set to LOW if the sign of the specified Index Register is negative.

If the load of the four Mobile Index Registers is specified, the Comparison Flags will remain unchanged.

The Overflow Flag is unchanged by this instruction.