There is no conflict between "it can be done" and "special cases".
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU] on behalf of Robin Vowels [robi...@dodo.com.au] Sent: Sunday, April 17, 2022 10:09 AM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Next instruction not needed 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. ...