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 <ASSEMBLER-LIST@LISTSERV.UGA.EDU> 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)

Reply via email to