First operand specified the address of NSI( Next sequential instruction will be loaded into 12 register and the second operand specifies that Rout -> it will branch to Rout
Here both operands are registers. Here the second operand is 0. it specifies no branching will takes place.
BAS stands for Branch and save
Unconditional branching and the possibility of returning to the branch point is performed by BAS.
The address of the next sequential instruction (NSI) is placed in the 1st-operand register. Subsequently a branch is made to the location given by a 2nd-operand label.
The instruction(s) is commonly used to branch to a subroutine with an expected return. Now to return, the help of the unconditional BR (Branch Register) instruction is needed (see the BC instruction).
I dont think that the BAL and BAS instructiuons has anything to do with the 24 or 31-bit addressing mode.
In both addressing mode either of the instructions can be used unlike what vighneshs says.
The pimary function of BAL and BAS instructions is to brach to the address specified by the 2nd operand but feore branching the addresss of the next sequentioal instruction will be saved in the 1st operand register.
when BAL is used in 24-bit addressing mode, the address of NSI(Next Sequential Instruction) is saved in the first operand register
and consists of
The instruction length code (ILC) in bits 0-1,
The condition code (CC) in bits 2-3,
The program mask in bits 4-7, and
The linkage address in bits 8-32.
In 31-bit mode, a 31-bit linkage address
is loaded and bit 0 is set to 1.
The difference in the two instructions is as follows:
The BAS instruiction doesnot save the ILC, CC and program mask in the 1-7 bits hence the BAS executes faster than the BAL.
For the same reason, BAS is used to branch to programs in the same addressing mode as the caller.