MVCRL

16 views
Skip to first unread message

Schmitt, Michael

unread,
Jun 7, 2022, 6:29:35 PM6/7/22
to ASSEMBL...@listserv.uga.edu
Why isn't there a Move Relative Long instruction, i.e. move with no registers, where both the source and destination are relative to the instruction address?

Is this because there's no instruction format with two RI fields and a length?

Ngan, Robert (DXC Luxoft)

unread,
Jun 7, 2022, 6:43:48 PM6/7/22
to ASSEMBL...@listserv.uga.edu
If the source is relative to the instruction address, the code would most like be non-reentrant.

Robert Ngan
DXC Luxoft

Farley, Peter x23353

unread,
Jun 7, 2022, 6:51:25 PM6/7/22
to ASSEMBL...@listserv.uga.edu
Not if the code is executing in a getmained area. I've often put code in such areas for various reasons (e.g. OPEN exits, I/O error exits. etc.), and it's annoying to have to set up base registers.

But I confess I think an "MVCRL" instruction where *both* source and destination are relative to the instruction address would see little use. If only the SOURCE address was relative to the instruction address, that might be a tad more useful. Then the D(L,B) for the destination could be in a reentrant area.

Peter
--

This message and any attachments are intended only for the use of the addressee and may contain information that is privileged and confidential. If the reader of the message is not the intended recipient or an authorized representative of the intended recipient, you are hereby notified that any dissemination of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by e-mail and delete the message and any attachments from your system.

Robin Vowels

unread,
Jun 8, 2022, 12:23:54 AM6/8/22
to ASSEMBL...@listserv.uga.edu
How would the instrction be interruptable?
How would the lengths of the source and destinations be specified?
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

Seymour J Metz

unread,
Jun 8, 2022, 6:55:24 AM6/8/22
to ASSEMBL...@listserv.uga.edu
Perhaps because IBM deemed it useless, or perhaps because instructions are limited to 48 bits.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Assembler List [ASSEMBL...@LISTSERV.UGA.EDU] on behalf of Schmitt, Michael [michael...@DXC.COM]
Sent: Tuesday, June 7, 2022 6:28 PM
To: ASSEMBL...@LISTSERV.UGA.EDU
Subject: MVCRL

Martin Trübner

unread,
Jun 8, 2022, 8:56:58 AM6/8/22
to ASSEMBL...@listserv.uga.edu
Michael,


how is this

    MACRO

    MVCRL  &REC,&SEND,&LEN

    LARG     1,&REC

    LARG     15,&SEND

    MVC       0(&LEN,1),0(15)

   MEND

Destroys R1 and R15

Sender and receiver must be on HW boundry

Supports a max length of 256

Needs 18 bytes

Martin


Am 08.06.22 um 00:28 schrieb Schmitt, Michael:

Jonathan Scott

unread,
Jun 8, 2022, 9:06:45 AM6/8/22
to ASSEMBL...@listserv.uga.edu
Please note that there is already an instruction with the
mnemonic MVCRL, "Move right to left", used to shift up data to
make a gap for inserting new data.

Jonathan Scott, HLASM
IBM Hursley, UK

Schmitt, Michael

unread,
Jun 8, 2022, 10:16:01 AM6/8/22
to ASSEMBL...@listserv.uga.edu
Most of the assembler code I write is not required to be reentrant.

However, the specific case I was looking at yesterday IS moving from my program's storage to a GETMAIN area.

Schmitt, Michael

unread,
Jun 8, 2022, 10:16:23 AM6/8/22
to ASSEMBL...@listserv.uga.edu
I was imagining something just like MVC except relative.

-----Original Message-----
From: IBM Mainframe Assembler List <ASSEMBL...@LISTSERV.UGA.EDU> On Behalf Of Robin Vowels
Sent: Tuesday, June 7, 2022 11:24 PM
To: ASSEMBL...@LISTSERV.UGA.EDU
Subject: Re: MVCRL

https://clicktime.symantec.com/37Nx1Dr4ecezgMjzVcwBojF6xn?u=https%3A%2F%2Fwww.avast.com%2Fantivirus

Steve Smith

unread,
Jun 8, 2022, 10:37:10 AM6/8/22
to ASSEMBL...@listserv.uga.edu
A Relative Long field is four bytes; obviously two would not fit into an
eight-byte instruction (there's no such thing), much less six.. A Relative
Short (to coin a term) is only two bytes, so that seems feasible, as long
as a suitable one-byte opcode is available. But then, others would want
relative to based, vice versa, and more opcodes are needed. Or, maybe
those could be defined to use a register for the length, which would allow
12-bit opcodes, which are more plentiful. The drawback is using a
register; but having variable-length MVCs would be a pretty good
compensation.

sas


On Wed, Jun 8, 2022 at 10:16 AM Schmitt, Michael <michael...@dxc.com>
wrote:

Ngan, Robert (DXC Luxoft)

unread,
Jun 8, 2022, 11:16:42 AM6/8/22
to ASSEMBL...@listserv.uga.edu
How would you gain relative access to a getmained area, other than by editing the immediate value in the instruction after the getmain?

Ngan, Robert (DXC Luxoft)

unread,
Jun 8, 2022, 11:32:49 AM6/8/22
to ASSEMBL...@listserv.uga.edu
Oops, didn't notice the "code is executing in getmained area" part. Doesn't that cause performance issues with Instruction/Data caches though?

Gary Weinhold

unread,
Jun 8, 2022, 1:51:16 PM6/8/22
to ASSEMBL...@listserv.uga.edu
Only if they are in the same cache line, which are 256 bytes the last I knew.
________________________________

Gary Weinhold
Senior Application Architect
DATAKINETICS | Data Performance & Optimization
Phone:+1.613.523.5500 x216
Email: wein...@dkl.com
Visit us online at www.DKL.com
E-mail Notification: The information contained in this email and any attachments is confidential and may be subject to copyright or other intellectual property protection. If you are not the intended recipient, you are not authorized to use or disclose this information, and we request that you notify us by reply mail or telephone and delete the original message from your mail system.

Ed Jaffe

unread,
Jun 9, 2022, 11:11:47 AM6/9/22
to ASSEMBL...@listserv.uga.edu
On 6/8/2022 6:06 AM, Jonathan Scott wrote:
> Please note that there is already an instruction with the
> mnemonic MVCRL, "Move right to left", used to shift up data to
> make a gap for inserting new data.

Destructive overlap is often quite useful (for clearing fields, etc),
but it's a PITA when you need to insert an entry into the middle of a
sequentially-organized table. I have for decades ordered such tables
backwards (in reverse address order) to facilitate better-performing
inserts using MVCL. Reverse-sequence tables are counterintuitive; harder
to understand and debug, but their use has always been worthwhile in
light of the performance gains.

The MVCRL instruction (new with z15) is only about four decades too late
for me. Still, it will be fun to be able to use it someday (if I live
that long...)


--
Phoenix Software International
Edward E. Jaffe
831 Parkview Drive North
El Segundo, CA 90245
https://www.phoenixsoftware.com/


--------------------------------------------------------------------------------
This e-mail message, including any attachments, appended messages and the
information contained therein, is for the sole use of the intended
recipient(s). If you are not an intended recipient or have otherwise
received this email message in error, any use, dissemination, distribution,
review, storage or copying of this e-mail message and the information
contained therein is strictly prohibited. If you are not an intended
recipient, please contact the sender by reply e-mail and destroy all copies
of this email message and do not otherwise utilize or retain this email
message or any or all of the information contained therein. Although this
email message and any attachments or appended messages are believed to be
free of any virus or other defect that might affect any computer system into
which it is received and opened, it is the responsibility of the recipient
to ensure that it is virus free and no responsibility is accepted by the
sender for any loss or damage arising in any way from its opening or use.

Martin Trübner

unread,
Jun 9, 2022, 11:28:45 AM6/9/22
to ASSEMBL...@listserv.uga.edu
Ed,

>> it will be fun to be able to use it someday (if I live that long...)

I thought the very same - but it is easier for me-


It is an excellent instruction when you need to extent an object (of a
PDF-file) in the middle. Had to use a work-area with a length of the
rest of the object-


But hey- wait a second! Why is there that silly(IMHO) restriction of
only the last byte of R0 can be the length(=256)?


Martin

Paul Gilmartin

unread,
Jun 9, 2022, 12:18:48 PM6/9/22
to ASSEMBL...@listserv.uga.edu
On Jun 9, 2022, at 09:11:44, Ed Jaffe wrote:
>
> ... Reverse-sequence tables are counterintuitive; harder to understand
> and debug, but their use has always been worthwhile in light of the
> performance gains.
>
You needn't keep the table in reverse sequence; merely keep the unused
space at the front rather than the back.

An additional pointer reference may be necessary too get to the front.

--
gil
Reply all
Reply to author
Forward
0 new messages