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)