On 2022-04-17 23:11, Seymour J Metz wrote:
What's more, the 3 or 4 registers needed for MVCL can be loaded by a single instruction.

Only in special cases.
.
Depends how you program the task.  It can be done.
.
Also, there are no cases where you need 4
registers to fill a block.
.
Had you read what I wrote, you will see that I explicitly quoted
3 registers for filling a block.
.

________________________________________
From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU]
on behalf of Robin Vowels [robi...@dodo.com.au]
Sent: Friday, April 15, 2022 11:28 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Next instruction not needed

From: "Tom Harper" <tomhar...@phoenixsoftware.com>
Sent: Saturday, April 16, 2022 12:34 AM
Subject: Re: Next instruction needed


Robin,

See embedded remarks.

See mine.

MVCL will do what you want.
It was designed to do the operation without overruns.
The lengths of the source and the destination areas are both
specified in the relevant registers, and the move terminates
when the destination area has been filled.
The true lengths of the data areas are given in registers,
and MVCL will even deal with zero lengths.
It's a dream instruction.
What's more, the 3 or 4 registers needed for MVCL can be loaded
by a single instruction.

The most common use of MVCL is to move some text to a destination
area, and to pad that area with a given character (commonly blank,
not zero), if required.
To set an area to zeros is not something that's done frequently.
I would say, almost never.

Your objection to MVCL needing 3 registers for your special case
(rarely needed) is specious; that 3 registers are not often available,
also specious; other instructions need 3 registers, such as MR, DR,
BXH, BXLE, and other instructions need 2 registers e,g, BCTR,
SLDA, SRDA, etc.
...

Reply via email to