Re: Branch-and-Link nomenclature question
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
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
FWIW, I think both the Principles of Operation and the HLASM Reference are the epitome of manuals. sas
Re: Branch-and-Link nomenclature question
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
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
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
"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
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
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
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
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
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
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
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
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
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
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
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
"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
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
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
"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
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
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
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
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
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)