Re: Branch-and-Link nomenclature question

2022-02-10 Thread Seymour J Metz
No, architecturally they really are branch and save the previous instruction 
address. The physical sequence of events to make that happen may differ from 
model to model. In, e.g., the 3168 the I-unit will have already done some of 
the work, and I would expect  the z pipelines to be more sophisticated. 
Sometimes there are seemingly different descriptions with equivalent semantics.


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


From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU] on behalf 
of Schmitt, Michael [michael.schm...@dxc.com]
Sent: Thursday, February 10, 2022 1:17 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Branch-and-Link nomenclature question

Then there's the point that they really are Save and (then) Branch, not Branch 
and (then) Save...

-Original Message-
From: IBM Mainframe Assembler List  On Behalf 
Of David Cole
Sent: Thursday, February 10, 2022 10:04 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Branch-and-Link nomenclature question

In Assembler there are many machine instructions that are suitable
for calling subroutines:
   - They go somewhere,
   - But they also set a register that can be used to return to the
next following instruction.

These instructions include:
   - BAL   (Branch and link)
   - BALR  (Branch and link register)
   - BAS   (Branch and save)
   - JAS   (jump and save)
   - BRAS  (Branch relative and save)
   - BRASL (Branch relative and save long)
   - BASSM (Branch and save and set mode)



My question is this...
What is the collective name for these instructions?

In a sentence such as "Then you branch and link to a subroutine...",
I tend to say "branch and link",

but I'm always unhappy about that...
   - Yes, "branch and link" is an accurate description of you're doing,
   - While "branch and save" is a bit opaque.
   - However, the phrase "branch and link" is ambiguous and invites
unnecessary quibbling.


So my question is... What would you say?

TIA,
David Cole
dbc...@gmail.com (personal)
dbc...@colesoft.com (business)
540-456-6518 (cell)


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Seymour J Metz
Are BALR R12,0 and BASR R12,0 linkage instructions?


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


From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU] on behalf 
of Dan Greiner [dan_grei...@att.net]
Sent: Thursday, February 10, 2022 1:27 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Branch-and-Link nomenclature question

Having learned this stuff in the 1970s — before the linkage stack showed up in 
the late 1980s — I was accustomed to hearing them called simply "linkage 
instructions." For the common usage of application programmers who need a 
simple instruction to branch to Oz while leaving a footprint of how to get back 
to Kansas, that's probably sufficient.

The z/Architecture Principles of Operation (SA22-7832-10) refers to such 
instruction in a section labelled "Subroutine Linkage without the Linkage 
Stack" (p. 5-16 onward), with the simple stuff like BAL[R], BAS[R] and friends 
called "Simple Branch Instructions". This text shows the awkwardness that crept 
into the architecture when various commonly-used terms get redeployed for other 
purposes. [A brief aside: During the design of the S/360, the designers 
deliberately eschewed a stack architecture in favor of the chained save-area 
approach. With the advent of ESA, they changed their minds (sort of) and 
implemented a linkage stack.]

A gentle reminder on terminology: The term "JUMP" appears neither in the PoO 
nor in the z/Architecture Reference Summary (SA22-7832). What you refer to as 
"JAS (jump and save)" is simply reflecting the extended mnemonic for BRANCH 
RELATIVE AND SAVE (BRAS).


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Steve Smith
FWIW, I think both the Principles of Operation and the HLASM Reference are
the epitome of manuals.

sas


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Seymour J Metz
The only uses of "alternative mnemonic" that I could find in PoOps were for 
suffixed letters indicting that X'80' was set in an I3 field.


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


From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU] on behalf 
of David Cole [dbc...@colesoft.com]
Sent: Thursday, February 10, 2022 2:40 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Branch-and-Link nomenclature question

WRT:
>"A gentle reminder on terminology: The term
>"JUMP" appears neither in the PoO nor in the
>z/Architecture Reference Summary (SA22-7832).
>What you refer to as "JAS (jump and save)" is
>simply reflecting the extended mnemonic for BRANCH RELATIVE AND SAVE (BRAS)."



The PoOps has some inconsistencies... One that I
find rather irritating is the presences of
extended mnemonics for a large number of newer
instructions, but the omission of same for all of
the BC, BRC, BRAS and related instructions.

Yes, I am quite aware that I included redundant
entries in my list. I didn't care because it was beside the point.

Speaking of fake mnemonics... What is the
difference between "extended mnemonics" (such as
CGIJNE) and "alternative mnemonics" (such as
JAS)? Is it that one is documented only in the
PoOp and the other only in HLASM Ref?

(FWIW, I find both books to be abysmal documents!)
(There. That ought to create a firestorm!)


Dave






At 2/10/2022 01:27 PM, Dan Greiner wrote:
>Having learned this stuff in the 1970s — before
>the linkage stack showed up in the late 1980s —
>I was accustomed to hearing them called simply
>"linkage instructions." For the common usage of
>application programmers who need a simple
>instruction to branch to Oz while leaving a
>footprint of how to get back to Kansas, that's probably sufficient.
>.
>
>The z/Architecture Principles of Operation
>(SA22-7832-10) refers to such instruction in a
>section labelled "Subroutine Linkage without the
>Linkage Stack" (p. 5-16 onward), with the simple
>stuff like BAL[R], BAS[R] and friends called
>"Simple Branch Instructions". This text shows
>the awkwardness that crept into the architecture
>when various commonly-used terms get redeployed
>for other purposes. [A brief aside: During the
>design of the S/360, the designers deliberately
>eschewed a stack architecture in favor of the
>chained save-area approach. With the advent of
>ESA, they changed their minds (sort of) and implemented a linkage stack.]
>
>A gentle reminder on terminology: The term
>"JUMP" appears neither in the PoO nor in the
>z/Architecture Reference Summary (SA22-7832).
>What you refer to as "JAS (jump and save)" is
>simply reflecting the extended mnemonic for BRANCH RELATIVE AND SAVE (BRAS).


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Charles Mills
My *impression* is that the PoOp as we know it is actually a byproduct. There 
is (I understand) some sort of internal architectural reference that drives the 
chip validation tests and so forth -- and one of its "potential outputs" is the 
PoOp as we know it.

That's neither criticizing nor defending the PoOp as we know it. It is still 
fair to criticize the PoOp even if "it has to be that way because of the way 
the thing that generates it works." It would be fair then to respond "well 
don't generate it that way then, or generate some better form in addition."

> Perhaps there's someone out there who has the time

Well, someone might start with the popular and common instructions and move on 
from there.

With enough work one could create animations: showing how an ICM or a TRT 
operated, for example.

Charles


-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On 
Behalf Of Melvyn Maltz
Sent: Thursday, February 10, 2022 12:30 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Branch-and-Link nomenclature question

Hi Guys,

Specifically to Dave Cole's query...

 >>>(FWIW, I find both books to be abysmal documents!)
 >>>(There. That ought to create a firestorm!)

A few years ago and on this forum  I dared to say that the PoO was 
totally inadequate for the 21st century...an opinion I still hold

It did get a 'firestorm' reaction, about evenly distributed between, 
"it's a bible and cannot be modified" to those agreeing with me

Among my suggestions, only applying to instruction descriptions is that...
These should be in a separate Manual, one 'page' per instruction, 
hyperlinks to similar instructions, maybe a tracker saying 'people who 
looked at AHI also looked at LHI :-)'

Perhaps there's someone out there who has the time


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Abe Kornelis
Hi Melvyn,

is this what you are looking for? It does not duplicate PoP, but does
have some references ...

http://www.bixoft.com/english/opcd/balr.htm

Kind regards,
Abe
===



Op 10/02/2022 om 21:30 schreef Melvyn Maltz:
> Hi Guys,
>
> Specifically to Dave Cole's query...
>
> >>>(FWIW, I find both books to be abysmal documents!)
> >>>(There. That ought to create a firestorm!)
>
> A few years ago and on this forum  I dared to say that the PoO was
> totally inadequate for the 21st century...an opinion I still hold
>
> It did get a 'firestorm' reaction, about evenly distributed between,
> "it's a bible and cannot be modified" to those agreeing with me
>
> Among my suggestions, only applying to instruction descriptions is
> that...
> These should be in a separate Manual, one 'page' per instruction,
> hyperlinks to similar instructions, maybe a tracker saying 'people who
> looked at AHI also looked at LHI :-)'
>
> Perhaps there's someone out there who has the time
>
> Melvyn Maltz.
>
> On 10/02/2022 07:40 pm, David Cole wrote:
>> WRT:
>>> "A gentle reminder on terminology: The term "JUMP" appears neither
>>> in the PoO nor in the z/Architecture Reference Summary (SA22-7832).
>>> What you refer to as "JAS (jump and save)" is simply reflecting the
>>> extended mnemonic for BRANCH RELATIVE AND SAVE (BRAS)."
>>
>>
>>
>> The PoOps has some inconsistencies... One that I find rather
>> irritating is the presences of extended mnemonics for a large number
>> of newer instructions, but the omission of same for all of the BC,
>> BRC, BRAS and related instructions.
>>
>> Yes, I am quite aware that I included redundant entries in my list. I
>> didn't care because it was beside the point.
>>
>> Speaking of fake mnemonics... What is the difference between
>> "extended mnemonics" (such as CGIJNE) and "alternative mnemonics"
>> (such as JAS)? Is it that one is documented only in the PoOp and the
>> other only in HLASM Ref?
>>
>> (FWIW, I find both books to be abysmal documents!)
>> (There. That ought to create a firestorm!)
>>
>>
>> Dave
>>
>>
>>
>>
>>
>>
>> At 2/10/2022 01:27 PM, Dan Greiner wrote:
>>> Having learned this stuff in the 1970s — before the linkage stack
>>> showed up in the late 1980s — I was accustomed to hearing them
>>> called simply "linkage instructions." For the common usage of
>>> application programmers who need a simple instruction to branch to
>>> Oz while leaving a footprint of how to get back to Kansas, that's
>>> probably sufficient.
>>> .
>>>
>>> The z/Architecture Principles of Operation (SA22-7832-10) refers to
>>> such instruction in a section labelled "Subroutine Linkage without
>>> the Linkage Stack" (p. 5-16 onward), with the simple stuff like
>>> BAL[R], BAS[R] and friends called "Simple Branch Instructions". This
>>> text shows the awkwardness that crept into the architecture when
>>> various commonly-used terms get redeployed for other purposes. [A
>>> brief aside: During the design of the S/360, the designers
>>> deliberately eschewed a stack architecture in favor of the chained
>>> save-area approach. With the advent of ESA, they changed their minds
>>> (sort of) and implemented a linkage stack.]
>>>
>>> A gentle reminder on terminology: The term "JUMP" appears neither in
>>> the PoO nor in the z/Architecture Reference Summary (SA22-7832).
>>> What you refer to as "JAS (jump and save)" is simply reflecting the
>>> extended mnemonic for BRANCH RELATIVE AND SAVE (BRAS).


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Dave Clark
"IBM Mainframe Assembler List"  wrote on 
02/10/2022 03:30:00 PM:
> Among my suggestions, only applying to instruction descriptions is 
that...
> These should be in a separate Manual, one 'page' per instruction, 
> hyperlinks to similar instructions, maybe a tracker saying 'people who 
> looked at AHI also looked at LHI :-)'
> 
> Perhaps there's someone out there who has the time


It would be perfect for a WIKI.


Sincerely,

Dave Clark
-- 
int.ext: 91078
direct: (937) 531-6378
home: (937) 751-3300

Winsupply Group Services
3110 Kettering Boulevard
Dayton, Ohio  45439  USA
(937) 294-5331




*
This email message and any attachments is for use only by the named 
addressee(s) and may contain confidential, privileged and/or proprietary 
information. If you have received this message in error, please 
immediately notify the sender and delete and destroy the message and all 
copies. All unauthorized direct or indirect use or disclosure of this 
message is strictly prohibited. No right to confidentiality or privilege 
is waived or lost by any error in transmission. 
*


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Melvyn Maltz

Hi Guys,

Specifically to Dave Cole's query...

>>>(FWIW, I find both books to be abysmal documents!)
>>>(There. That ought to create a firestorm!)

A few years ago and on this forum  I dared to say that the PoO was 
totally inadequate for the 21st century...an opinion I still hold


It did get a 'firestorm' reaction, about evenly distributed between, 
"it's a bible and cannot be modified" to those agreeing with me


Among my suggestions, only applying to instruction descriptions is that...
These should be in a separate Manual, one 'page' per instruction, 
hyperlinks to similar instructions, maybe a tracker saying 'people who 
looked at AHI also looked at LHI :-)'


Perhaps there's someone out there who has the time

Melvyn Maltz.

On 10/02/2022 07:40 pm, David Cole wrote:

WRT:
"A gentle reminder on terminology: The term "JUMP" appears neither in 
the PoO nor in the z/Architecture Reference Summary (SA22-7832). What 
you refer to as "JAS (jump and save)" is simply reflecting the 
extended mnemonic for BRANCH RELATIVE AND SAVE (BRAS)."




The PoOps has some inconsistencies... One that I find rather 
irritating is the presences of extended mnemonics for a large number 
of newer instructions, but the omission of same for all of the BC, 
BRC, BRAS and related instructions.


Yes, I am quite aware that I included redundant entries in my list. I 
didn't care because it was beside the point.


Speaking of fake mnemonics... What is the difference between "extended 
mnemonics" (such as CGIJNE) and "alternative mnemonics" (such as JAS)? 
Is it that one is documented only in the PoOp and the other only in 
HLASM Ref?


(FWIW, I find both books to be abysmal documents!)
(There. That ought to create a firestorm!)


Dave






At 2/10/2022 01:27 PM, Dan Greiner wrote:
Having learned this stuff in the 1970s — before the linkage stack 
showed up in the late 1980s — I was accustomed to hearing them called 
simply "linkage instructions." For the common usage of application 
programmers who need a simple instruction to branch to Oz while 
leaving a footprint of how to get back to Kansas, that's probably 
sufficient.

.

The z/Architecture Principles of Operation (SA22-7832-10) refers to 
such instruction in a section labelled "Subroutine Linkage without 
the Linkage Stack" (p. 5-16 onward), with the simple stuff like 
BAL[R], BAS[R] and friends called "Simple Branch Instructions". This 
text shows the awkwardness that crept into the architecture when 
various commonly-used terms get redeployed for other purposes. [A 
brief aside: During the design of the S/360, the designers 
deliberately eschewed a stack architecture in favor of the chained 
save-area approach. With the advent of ESA, they changed their minds 
(sort of) and implemented a linkage stack.]


A gentle reminder on terminology: The term "JUMP" appears neither in 
the PoO nor in the z/Architecture Reference Summary (SA22-7832). What 
you refer to as "JAS (jump and save)" is simply reflecting the 
extended mnemonic for BRANCH RELATIVE AND SAVE (BRAS).


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Ed Jaffe

On 2/10/2022 11:40 AM, David Cole wrote:

(FWIW, I find both books to be abysmal documents!)
(There. That ought to create a firestorm!)


So, among other things, you're asserting the PoO is as "poopy" as its 
acronym implies?


--
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.


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Charles Mills
Good point. Maybe they should be called Branch and Remember.

But it IS non-standard linkage. Some subroutines begin with USING *,R15.

Charles


-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On 
Behalf Of Steve Smith
Sent: Thursday, February 10, 2022 11:15 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Branch-and-Link nomenclature question

Not true.  If you want to quibble about semantics, it's a good idea to
learn what the semantics are.  "Branch" essentially means "update the PSW
address with something else".

CICS (for whatever reason) used to (and still does for all I know) use BALR
14,14 to invoke subroutines.  That would obviously be a NOOP if it was a
"save & branch".

sas

On Thu, Feb 10, 2022 at 1:22 PM Schmitt, Michael 
wrote:

> Then there's the point that they really are Save and (then) Branch, not
> Branch and (then) Save...
>
>


Re: Branch-and-Link nomenclature question

2022-02-10 Thread David Cole

WRT:
"A gentle reminder on terminology: The term 
"JUMP" appears neither in the PoO nor in the 
z/Architecture Reference Summary (SA22-7832). 
What you refer to as "JAS (jump and save)" is 
simply reflecting the extended mnemonic for BRANCH RELATIVE AND SAVE (BRAS)."




The PoOps has some inconsistencies... One that I 
find rather irritating is the presences of 
extended mnemonics for a large number of newer 
instructions, but the omission of same for all of 
the BC, BRC, BRAS and related instructions.


Yes, I am quite aware that I included redundant 
entries in my list. I didn't care because it was beside the point.


Speaking of fake mnemonics... What is the 
difference between "extended mnemonics" (such as 
CGIJNE) and "alternative mnemonics" (such as 
JAS)? Is it that one is documented only in the 
PoOp and the other only in HLASM Ref?


(FWIW, I find both books to be abysmal documents!)
(There. That ought to create a firestorm!)


Dave






At 2/10/2022 01:27 PM, Dan Greiner wrote:
Having learned this stuff in the 1970s — before 
the linkage stack showed up in the late 1980s — 
I was accustomed to hearing them called simply 
"linkage instructions." For the common usage of 
application programmers who need a simple 
instruction to branch to Oz while leaving a 
footprint of how to get back to Kansas, that's probably sufficient.

.

The z/Architecture Principles of Operation 
(SA22-7832-10) refers to such instruction in a 
section labelled "Subroutine Linkage without the 
Linkage Stack" (p. 5-16 onward), with the simple 
stuff like BAL[R], BAS[R] and friends called 
"Simple Branch Instructions". This text shows 
the awkwardness that crept into the architecture 
when various commonly-used terms get redeployed 
for other purposes. [A brief aside: During the 
design of the S/360, the designers deliberately 
eschewed a stack architecture in favor of the 
chained save-area approach. With the advent of 
ESA, they changed their minds (sort of) and implemented a linkage stack.]


A gentle reminder on terminology: The term 
"JUMP" appears neither in the PoO nor in the 
z/Architecture Reference Summary (SA22-7832). 
What you refer to as "JAS (jump and save)" is 
simply reflecting the extended mnemonic for BRANCH RELATIVE AND SAVE (BRAS).


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Steve Smith
Not true.  If you want to quibble about semantics, it's a good idea to
learn what the semantics are.  "Branch" essentially means "update the PSW
address with something else".

CICS (for whatever reason) used to (and still does for all I know) use BALR
14,14 to invoke subroutines.  That would obviously be a NOOP if it was a
"save & branch".

sas

On Thu, Feb 10, 2022 at 1:22 PM Schmitt, Michael 
wrote:

> Then there's the point that they really are Save and (then) Branch, not
> Branch and (then) Save...
>
>


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Dan Greiner
Having learned this stuff in the 1970s — before the linkage stack showed up in 
the late 1980s — I was accustomed to hearing them called simply "linkage 
instructions." For the common usage of application programmers who need a 
simple instruction to branch to Oz while leaving a footprint of how to get back 
to Kansas, that's probably sufficient.

The z/Architecture Principles of Operation (SA22-7832-10) refers to such 
instruction in a section labelled "Subroutine Linkage without the Linkage 
Stack" (p. 5-16 onward), with the simple stuff like BAL[R], BAS[R] and friends 
called "Simple Branch Instructions". This text shows the awkwardness that crept 
into the architecture when various commonly-used terms get redeployed for other 
purposes. [A brief aside: During the design of the S/360, the designers 
deliberately eschewed a stack architecture in favor of the chained save-area 
approach. With the advent of ESA, they changed their minds (sort of) and 
implemented a linkage stack.]

A gentle reminder on terminology: The term "JUMP" appears neither in the PoO 
nor in the z/Architecture Reference Summary (SA22-7832). What you refer to as 
"JAS (jump and save)" is simply reflecting the extended mnemonic for BRANCH 
RELATIVE AND SAVE (BRAS). 


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Schmitt, Michael
Then there's the point that they really are Save and (then) Branch, not Branch 
and (then) Save...

-Original Message-
From: IBM Mainframe Assembler List  On Behalf 
Of David Cole
Sent: Thursday, February 10, 2022 10:04 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Branch-and-Link nomenclature question

In Assembler there are many machine instructions that are suitable
for calling subroutines:
   - They go somewhere,
   - But they also set a register that can be used to return to the
next following instruction.

These instructions include:
   - BAL   (Branch and link)
   - BALR  (Branch and link register)
   - BAS   (Branch and save)
   - JAS   (jump and save)
   - BRAS  (Branch relative and save)
   - BRASL (Branch relative and save long)
   - BASSM (Branch and save and set mode)



My question is this...
What is the collective name for these instructions?

In a sentence such as "Then you branch and link to a subroutine...",
I tend to say "branch and link",

but I'm always unhappy about that...
   - Yes, "branch and link" is an accurate description of you're doing,
   - While "branch and save" is a bit opaque.
   - However, the phrase "branch and link" is ambiguous and invites
unnecessary quibbling.


So my question is... What would you say?

TIA,
David Cole
dbc...@gmail.com (personal)
dbc...@colesoft.com (business)
540-456-6518 (cell)


Re: Branch-and-Link nomenclature question - my comments so far

2022-02-10 Thread David Cole

Ok, that was fast! Thanks!

So here are my comments so far...

Yes, my list was incomplete, I did forget BASR, PC, SVC and BAKR. 
(Except that SVC doesn't load a linkage register.) But I do think it 
was complete enough.


I'm focusing on the forms of the instructions that actually call 
something, so I don't think such things are BASR R12,0 particularly 
matter here.


FWIW, I say bazz-em.


I hadn't thought of the word "linkage", but yes, I kinda like it. 
I'll probably start using some variation of that.


Or perhaps "linking instructions"?


Thanks,
Dave





At 2/10/2022 11:04 AM, David Cole wrote:
In Assembler there are many machine instructions that are suitable 
for calling subroutines:

  - They go somewhere,
  - But they also set a register that can be used to return to the 
next following instruction.


These instructions include:
  - BAL   (Branch and link)
  - BALR  (Branch and link register)
  - BAS   (Branch and save)
  - JAS   (jump and save)
  - BRAS  (Branch relative and save)
  - BRASL (Branch relative and save long)
  - BASSM (Branch and save and set mode)



My question is this...
What is the collective name for these instructions?

In a sentence such as "Then you branch and link to a subroutine...",
I tend to say "branch and link",

but I'm always unhappy about that...
  - Yes, "branch and link" is an accurate description of you're doing,
  - While "branch and save" is a bit opaque.
  - However, the phrase "branch and link" is ambiguous and invites 
unnecessary quibbling.



So my question is... What would you say?

TIA,
David Cole
dbc...@gmail.com (personal)
dbc...@colesoft.com (business)
540-456-6518 (cell)


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Gary Weinhold

I refer to them all as generic branch and link instructions, and include
all other instructions that provide a return address for the routine
being entered, whether it's through the instruction itself (like these)
or hardware (like PC, SVC).  I tend not to use "Call" because there's an
IBM macro with that name.

On 2022-02-10 11:04 a.m., David Cole wrote:

In Assembler there are many machine instructions that are suitable for
calling subroutines:
  - They go somewhere,
  - But they also set a register that can be used to return to the
next following instruction.

These instructions include:
  - BAL   (Branch and link)
  - BALR  (Branch and link register)
  - BAS   (Branch and save)
  - JAS   (jump and save)
  - BRAS  (Branch relative and save)
  - BRASL (Branch relative and save long)
  - BASSM (Branch and save and set mode)



My question is this...
What is the collective name for these instructions?

In a sentence such as "Then you branch and link to a subroutine...",
I tend to say "branch and link",

but I'm always unhappy about that...
  - Yes, "branch and link" is an accurate description of you're doing,
  - While "branch and save" is a bit opaque.
  - However, the phrase "branch and link" is ambiguous and invites
unnecessary quibbling.


So my question is... What would you say?

TIA,
David Cole
dbc...@gmail.com (personal)
dbc...@colesoft.com (business)
540-456-6518 (cell)



Gary Weinhold
Senior Application Architect
DATAKINETICS | Data Performance & Optimization
Phone:+1.613.523.5500 x216
Email: weinh...@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.


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Mike Hochee
I don't recall ever thinking about this before, but now that I have, "linkage" 
or sometimes "program linkage" (although the latter seems a bit redundant), is 
what I use. 

HTH, 
Mike 

-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On 
Behalf Of Mark Boonie
Sent: Thursday, February 10, 2022 11:27 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Branch-and-Link nomenclature question

Caution! This message was sent from outside your organization.

Oh, good, it must be Friday,  (Wait, what's that?  It's not?  Drat.)

I'd probably call the set of instructions "linkage" instructions, or "program 
linkage" instructions.

When describing the logic flow to someone, I tend to say "call a subroutine" or 
"link to a subroutine", but I sometimes devolve to "branch and link to a 
subroutine" or "branch and save to a subroutine" for the first 6 instructions; 
I'd probably roll my eyes if someone tried quibble over save vs. link, branch 
vs. jump, etc.

For BASSM specifically, I'd say "BASSM to the routine".

[Get ready for the next question:  Do you pronounce "BASSM" as "bass-em"
or "bazz-em"?]  ;-)

- mb


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Charles Mills
Right. AHI is an add instruction, even though you can (I assume?) code AHI
Rn,0

Charles


-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU]
On Behalf Of Dave Clark
Sent: Thursday, February 10, 2022 8:27 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Branch-and-Link nomenclature question

"IBM Mainframe Assembler List"  wrote on 
02/10/2022 11:18:47 AM:
> My first take is "call instructions", but that excludes, e.g/,
> BALR R12,0.


JMO, but just because an instruction has a feature where it 
doesn't actually invoke anything, doesn't mean it would be excluded from 
the group of instructions that do invoke something.  Its main use is to 
invoke something after all.


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Dave Clark
"IBM Mainframe Assembler List"  wrote on 
02/10/2022 11:18:47 AM:
> My first take is "call instructions", but that excludes, e.g/,
> BALR R12,0.


JMO, but just because an instruction has a feature where it 
doesn't actually invoke anything, doesn't mean it would be excluded from 
the group of instructions that do invoke something.  Its main use is to 
invoke something after all.


Sincerely,

Dave Clark
-- 
int.ext: 91078
direct: (937) 531-6378
home: (937) 751-3300

Winsupply Group Services
3110 Kettering Boulevard
Dayton, Ohio  45439  USA
(937) 294-5331




*
This email message and any attachments is for use only by the named 
addressee(s) and may contain confidential, privileged and/or proprietary 
information. If you have received this message in error, please 
immediately notify the sender and delete and destroy the message and all 
copies. All unauthorized direct or indirect use or disclosure of this 
message is strictly prohibited. No right to confidentiality or privilege 
is waived or lost by any error in transmission. 
*


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Mark Boonie
Oh, good, it must be Friday,  (Wait, what's that?  It's not?  Drat.)

I'd probably call the set of instructions "linkage" instructions, or 
"program linkage" instructions.

When describing the logic flow to someone, I tend to say "call a 
subroutine" or "link to a subroutine", but I sometimes devolve to "branch 
and link to a subroutine" or "branch and save to a subroutine" for the 
first 6 instructions; I'd probably roll my eyes if someone tried quibble 
over save vs. link, branch vs. jump, etc.

For BASSM specifically, I'd say "BASSM to the routine".

[Get ready for the next question:  Do you pronounce "BASSM" as "bass-em" 
or "bazz-em"?]  ;-)

- mb


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Farley, Peter x23353
An interesting question.  Isn't ". . . call a subroutine . . . " more generic, 
so just "subroutine call instructions" or "program linkage instructions" (that 
one is less clear to me) for the title of that overall group of instructions?

You left out BAKR and PC from your list.  Aren't they "subroutine call" 
instructions too?  As is also, for that matter, SVC, though not many of us need 
or want to code SVC routines.

Peter

-Original Message-
From: IBM Mainframe Assembler List  On Behalf 
Of David Cole
Sent: Thursday, February 10, 2022 11:04 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Branch-and-Link nomenclature question

In Assembler there are many machine instructions that are suitable for calling 
subroutines:
   - They go somewhere,
   - But they also set a register that can be used to return to the next 
following instruction.

These instructions include:
   - BAL   (Branch and link)
   - BALR  (Branch and link register)
   - BAS   (Branch and save)
   - JAS   (jump and save)
   - BRAS  (Branch relative and save)
   - BRASL (Branch relative and save long)
   - BASSM (Branch and save and set mode)

My question is this...
What is the collective name for these instructions?

In a sentence such as "Then you branch and link to a subroutine...", I tend to 
say "branch and link",

but I'm always unhappy about that...
   - Yes, "branch and link" is an accurate description of you're doing,
   - While "branch and save" is a bit opaque.
   - However, the phrase "branch and link" is ambiguous and invites unnecessary 
quibbling.

So my question is... What would you say?

TIA,
David Cole
dbc...@gmail.com (personal)
dbc...@colesoft.com (business)
540-456-6518 (cell)
-- 

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.


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Dave Clark
"IBM Mainframe Assembler List"  wrote on 
02/10/2022 11:04:13 AM:
> In Assembler there are many machine instructions that are suitable 
> for calling subroutines:
>- They go somewhere,
>- But they also set a register that can be used to return to the 
> next following instruction.
> 
> These instructions include:
>- BAL   (Branch and link)
>- BALR  (Branch and link register)
>- BAS   (Branch and save)
>- JAS   (jump and save)
>- BRAS  (Branch relative and save)
>- BRASL (Branch relative and save long)
>- BASSM (Branch and save and set mode)
> 
> My question is this...
> What is the collective name for these instructions?


Including BASR...  I call them "subroutine invocation 
instructions" -- keeping in mind that there are both internal and external 
subroutines.


Sincerely,

Dave Clark
-- 
int.ext: 91078
direct: (937) 531-6378
home: (937) 751-3300

Winsupply Group Services
3110 Kettering Boulevard
Dayton, Ohio  45439  USA
(937) 294-5331




*
This email message and any attachments is for use only by the named 
addressee(s) and may contain confidential, privileged and/or proprietary 
information. If you have received this message in error, please 
immediately notify the sender and delete and destroy the message and all 
copies. All unauthorized direct or indirect use or disclosure of this 
message is strictly prohibited. No right to confidentiality or privilege 
is waived or lost by any error in transmission. 
*


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Mark Hammack
Think I've always used the "KISS" nomenclature -- "Then you call a
subroutine".  Maybe it comes from BASIC/Fortran/C/Cobol/etc, but unless
you're worried about the mechanics, call works (to my way of thinking).

Mark Hammack
Systemware, Inc,


On Thu, Feb 10, 2022 at 10:04 AM David Cole  wrote:

> In Assembler there are many machine instructions that are suitable
> for calling subroutines:
>- They go somewhere,
>- But they also set a register that can be used to return to the
> next following instruction.
>
> These instructions include:
>- BAL   (Branch and link)
>- BALR  (Branch and link register)
>- BAS   (Branch and save)
>- JAS   (jump and save)
>- BRAS  (Branch relative and save)
>- BRASL (Branch relative and save long)
>- BASSM (Branch and save and set mode)
>
>
>
> My question is this...
> What is the collective name for these instructions?
>
> In a sentence such as "Then you branch and link to a subroutine...",
> I tend to say "branch and link",
>
> but I'm always unhappy about that...
>- Yes, "branch and link" is an accurate description of you're doing,
>- While "branch and save" is a bit opaque.
>- However, the phrase "branch and link" is ambiguous and invites
> unnecessary quibbling.
>
>
> So my question is... What would you say?
>
> TIA,
> David Cole
> dbc...@gmail.com (personal)
> dbc...@colesoft.com (business)
> 540-456-6518 (cell)
>


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Seymour J Metz
That's sticky. Do you include RR instruction with a zero R2 field? BAKR? PC?

My first take is "call instructions", but that excludes, e.g/, BALR R12,0. 
"linkage instructions has the same issue."


From: IBM Mainframe Assembler List  on behalf 
of David Cole 
Sent: Thursday, February 10, 2022 11:04 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Branch-and-Link nomenclature question

In Assembler there are many machine instructions that are suitable
for calling subroutines:
   - They go somewhere,
   - But they also set a register that can be used to return to the
next following instruction.

These instructions include:
   - BAL   (Branch and link)
   - BALR  (Branch and link register)
   - BAS   (Branch and save)
   - JAS   (jump and save)
   - BRAS  (Branch relative and save)
   - BRASL (Branch relative and save long)
   - BASSM (Branch and save and set mode)



My question is this...
What is the collective name for these instructions?

In a sentence such as "Then you branch and link to a subroutine...",
I tend to say "branch and link",

but I'm always unhappy about that...
   - Yes, "branch and link" is an accurate description of you're doing,
   - While "branch and save" is a bit opaque.
   - However, the phrase "branch and link" is ambiguous and invites
unnecessary quibbling.


So my question is... What would you say?

TIA,
David Cole
dbc...@gmail.com (personal)
dbc...@colesoft.com (business)
540-456-6518 (cell)


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Charles Mills
That makes me think of the linkage stack instructions.

Charles


-Original Message-
From: IBM Mainframe Assembler List [mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU] On 
Behalf Of Mike Shaw
Sent: Thursday, February 10, 2022 8:09 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Branch-and-Link nomenclature question

Program linkage instructions?

Mike Shaw
MVS/QuickRef Support Group
Chicago-Soft, Ltd.


On Thu, Feb 10, 2022 at 11:04 AM David Cole  wrote:

> In Assembler there are many machine instructions that are suitable
> for calling subroutines:
>- They go somewhere,
>- But they also set a register that can be used to return to the
> next following instruction.
>
> These instructions include:
>- BAL   (Branch and link)
>- BALR  (Branch and link register)
>- BAS   (Branch and save)
>- JAS   (jump and save)
>- BRAS  (Branch relative and save)
>- BRASL (Branch relative and save long)
>- BASSM (Branch and save and set mode)
>
>
>
> My question is this...
> What is the collective name for these instructions?
>
> In a sentence such as "Then you branch and link to a subroutine...",
> I tend to say "branch and link",
>
> but I'm always unhappy about that...
>- Yes, "branch and link" is an accurate description of you're doing,
>- While "branch and save" is a bit opaque.
>- However, the phrase "branch and link" is ambiguous and invites
> unnecessary quibbling.
>
>
> So my question is... What would you say?
>
> TIA,
> David Cole
> dbc...@gmail.com (personal)
> dbc...@colesoft.com (business)
> 540-456-6518 (cell)
>


Re: Branch-and-Link nomenclature question

2022-02-10 Thread Mike Shaw
Program linkage instructions?

Mike Shaw
MVS/QuickRef Support Group
Chicago-Soft, Ltd.


On Thu, Feb 10, 2022 at 11:04 AM David Cole  wrote:

> In Assembler there are many machine instructions that are suitable
> for calling subroutines:
>- They go somewhere,
>- But they also set a register that can be used to return to the
> next following instruction.
>
> These instructions include:
>- BAL   (Branch and link)
>- BALR  (Branch and link register)
>- BAS   (Branch and save)
>- JAS   (jump and save)
>- BRAS  (Branch relative and save)
>- BRASL (Branch relative and save long)
>- BASSM (Branch and save and set mode)
>
>
>
> My question is this...
> What is the collective name for these instructions?
>
> In a sentence such as "Then you branch and link to a subroutine...",
> I tend to say "branch and link",
>
> but I'm always unhappy about that...
>- Yes, "branch and link" is an accurate description of you're doing,
>- While "branch and save" is a bit opaque.
>- However, the phrase "branch and link" is ambiguous and invites
> unnecessary quibbling.
>
>
> So my question is... What would you say?
>
> TIA,
> David Cole
> dbc...@gmail.com (personal)
> dbc...@colesoft.com (business)
> 540-456-6518 (cell)
>


Branch-and-Link nomenclature question

2022-02-10 Thread David Cole
In Assembler there are many machine instructions that are suitable 
for calling subroutines:

  - They go somewhere,
  - But they also set a register that can be used to return to the 
next following instruction.


These instructions include:
  - BAL   (Branch and link)
  - BALR  (Branch and link register)
  - BAS   (Branch and save)
  - JAS   (jump and save)
  - BRAS  (Branch relative and save)
  - BRASL (Branch relative and save long)
  - BASSM (Branch and save and set mode)



My question is this...
What is the collective name for these instructions?

In a sentence such as "Then you branch and link to a subroutine...",
I tend to say "branch and link",

but I'm always unhappy about that...
  - Yes, "branch and link" is an accurate description of you're doing,
  - While "branch and save" is a bit opaque.
  - However, the phrase "branch and link" is ambiguous and invites 
unnecessary quibbling.



So my question is... What would you say?

TIA,
David Cole
dbc...@gmail.com (personal)
dbc...@colesoft.com (business)
540-456-6518 (cell)