R1 + 1 F irst-Operand Length 0 8 31
R2 Second-Operand Address 0 8 31
R2 + 1 Second-Operand Length 0 8 31
The: movement starts at the high-order end of
both fields and proceeds to the right. The operation
isendt,d when the number of bytes specified by bit
positions 8-31 of register Rl + 1 have been moved
into the first-operand location. If the second oper
and is shorter than the first operand, theremaining low-order bytes of the first operand are filled with
the padding character.
As part of the execution of the instruction, the
values of the two count fields are compared for the
setting of the condition code, and a check is made
for destructive overlap of the operands.Operands are said to overlap destructively when the first
operand location is used as a source after data has
been moved into it, assuming the inspection for ov
erlap is performed by the use of logical operand ad
dresses. When the operands overlap destnlctively, no
movement takes place, and condition code 3 is set.Depending on whether the second operand wraps
around from location 16,777,215 to location0, movement takes place in the following cases:
1. When the second operand does not wrap
around, movement is performed when the
high-order byte of the first operand coincides
with or is to the left of the high-order byte of
the second operand, or if the high-order byteof the first operand is to the right of the right
most second-operand byte participating in the
operation.
2.\Vhen the second operand wraps around, move
ment is performed when the high-order byte ofthe first operand coincides with or is to the left of the high-order byte of the second operand,
and if the high-order byte of the first operand
iis to the right of the rightmost second-operand
byte participating in the operation.
The rightmost second-operand byte is determined
by using the smaller of the first-operand and second
operand counts.
When the count specified by bit positions 8-31 ofregistt,r Rl + 1 is zero, no movement takes place, and
the condition code is set to0 or 1 to indicate the
relative values of the counts.
134System/370 Principles of Operation The execution of the instruction is interruptible.
When an interruption occurs, the contents of regis
ters Rl + 1 and R2+ 1 are decremented by the num
ber of bytes moved, and the contents of register Rl
and R2 are incremented by the same number, so that
the instruction, when re-executed, resumes at the
point of interruption. The high-order byte of regis
ters Rl and R2 is set to zero; the contents of the
high-order byte of registers Rl + 1 and R2+ 1 remain
unchanged; and the condition code is unpredictable.
If the operation is interrupted during padding, the
count field in register R2 + 1 is zero, the address in
register R2 is incremented by the original contents of
register R2 + 1, and registers R 1 and R 1 + 1 reflect the
extent of the padding operation.
When the first-operand location includes the loca
tion of the instruction, the instruction may be re
fetched from main storage and reinterpreted even in
the absence of an interruption during execution. The
exact point in the execution at which such a ref etch
occurs is unpredictable.
At the completion of the operation, the count in
register Rl + 1 is zero, and the address in register Rl
is incremented by the original value of the count in
register Rl + 1. The count in register R2+ 1 is decre
mented by the number of bytes moved out of the
second-operand location, and the address in register
R2 is incremented by the same amount. The contents
of bit positions0-7 of registers R 1 and R2 are set to
zero, including the case when one or both of the
original count values are zero or when condition
code 3 is set. The contents of bit positions0-7 of
registers Rl + 1 and R2+ 1 remain unchanged.
When the count specified by bit positions 8-31 of
register Rl + 1 is zero, or condition code 3 is set, no
exceptions associated with operand access are recog
nized. When the count specified by bit positions
8-31 of register R2+ 1 is zero, no access exceptions
for the second-operand location are recognized.
Similarly, when the second operand is larger than the
first operand, access exceptions are not recognized
for the part of the second-operand field that is in
excess of the first-operand field.
Resulting Condition Code:
o First-operand and second-operand counts are
equal
1 First-operand count is low
2 First-operand count is high
3 No movement performed because of destruc
tive overlapProgram Exceptions: Access (fetch, operand 2; store, operand 1)
Specification
R2
R2 + 1
The: movement starts at the high-order end of
both fields and proceeds to the right. The operation
is
positions 8-31 of register Rl + 1 have been moved
into the first-operand location. If the second oper
and is shorter than the first operand, the
the padding character.
As part of the execution of the instruction, the
values of the two count fields are compared for the
setting of the condition code, and a check is made
for destructive overlap of the operands.
operand location is used as a source after data has
been moved into it, assuming the inspection for ov
erlap is performed by the use of logical operand ad
dresses. When the operands overlap destnlctively, no
movement takes place, and condition code 3 is set.
around from location 16,777,215 to location
1. When the second operand does not wrap
around, movement is performed when the
high-order byte of the first operand coincides
with or is to the left of the high-order byte of
the second operand, or if the high-order byte
most second-operand byte participating in the
operation.
2.
ment is performed when the high-order byte of
and if the high-order byte of the first operand
iis to the right of the rightmost second-operand
byte participating in the operation.
The rightmost second-operand byte is determined
by using the smaller of the first-operand and second
operand counts.
When the count specified by bit positions 8-31 of
the condition code is set to
relative values of the counts.
134
When an interruption occurs, the contents of regis
ters Rl + 1 and R2+ 1 are decremented by the num
ber of bytes moved, and the contents of register Rl
and R2 are incremented by the same number, so that
the instruction, when re-executed, resumes at the
point of interruption. The high-order byte of regis
ters Rl and R2 is set to zero; the contents of the
high-order byte of registers Rl + 1 and R2+ 1 remain
unchanged; and the condition code is unpredictable.
If the operation is interrupted during padding, the
count field in register R2 + 1 is zero, the address in
register R2 is incremented by the original contents of
register R2 + 1, and registers R 1 and R 1 + 1 reflect the
extent of the padding operation.
When the first-operand location includes the loca
tion of the instruction, the instruction may be re
fetched from main storage and reinterpreted even in
the absence of an interruption during execution. The
exact point in the execution at which such a ref etch
occurs is unpredictable.
At the completion of the operation, the count in
register Rl + 1 is zero, and the address in register Rl
is incremented by the original value of the count in
register Rl + 1. The count in register R2+ 1 is decre
mented by the number of bytes moved out of the
second-operand location, and the address in register
R2 is incremented by the same amount. The contents
of bit positions
zero, including the case when one or both of the
original count values are zero or when condition
code 3 is set. The contents of bit positions
registers Rl + 1 and R2+ 1 remain unchanged.
When the count specified by bit positions 8-31 of
register Rl + 1 is zero, or condition code 3 is set, no
exceptions associated with operand access are recog
nized. When the count specified by bit positions
8-31 of register R2+ 1 is zero, no access exceptions
for the second-operand location are recognized.
Similarly, when the second operand is larger than the
first operand, access exceptions are not recognized
for the part of the second-operand field that is in
excess of the first-operand field.
Resulting Condition Code:
o First-operand and second-operand counts are
equal
1 First-operand count is low
2 First-operand count is high
3 No movement performed because of destruc
tive overlap
Specification