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

Reply via email to