HLASM Language Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Branching with extended mnemonic codes

HLASM Language Reference
SC26-4940-06

Branch instructions let you specify an extended mnemonic code for the condition on which a branch is to occur. Thus, you avoid having to specify the mask value, that represents the condition code, required by the BC, BCR, and BRC machine instructions. The assembler translates the extended mnemonic code into the mask value, and then assembles it into the object code of the BC, BCR, or BRC machine instruction.

The extended branch mnemonics for the BC instruction require a base register; the extended mnemonics for the BCR and BRC instructions do not. The extended mnemonics for the BRC instruction begin with the letter "J", and are sometimes called "Jump" instructions, as indicated in Figure 1.

Some typical extended mnemonic codes are given in Figure 1. They can be used as operation codes for branching instructions, replacing the BC, BCR, and BRC machine instruction codes (see  1  in Figure 1). The first operand (see  2  in Figure 1) of the BC, BCR, and BRC instructions must not be present in the operand field (see  3  in Figure 1) of the extended mnemonic branching instructions.

For the complete list of branch mnemonics, see the latest edition of z/Architecture Reference Summary (SA22-7871).

Figure 1. Extended mnemonic codes (part 1 of 5)
Extended Code               Meaning                       Format         (Symbolic) Machine
                                                                         Instruction Equivalent
──────────────────────────────────────────────────────────────────────────────────────────────────────

    3      4                                                             1 V                                                             │     ┌──── 2 
    │  ┌───────┐                                                         V     V
B   └─>D₂(X₂,B₂)      ┐     Unconditional Branch          RX             BC    15,D₂(X₂,B₂)
BR     R₂             ┘                                   RR             BCR   15,R₂
J      label                Unconditional Jump            RI             BRC   15,label
NOP    D₂(X₂,B₂)      ┐     No Operation                  RX             BC    0,D₂(X₂,B₂)
NOPR   R₂             │                                   RR             BCR   0,R₂
JNOP   label          ┘                                   RI             BRC   0,label

Used After Compare Instructions

BH     D₂(X₂,B₂)      ┐     Branch on High                RX             BC    2,D₂(X₂,B₂)
BHR    R₂             ┘                                   RR             BCR   2,R₂
JH     label                Jump on High                  RI             BRC   2,label
BL     D₂(X₂,B₂)      ┐     Branch on Low                 RX             BC    4,D₂(X₂,B₂)
BLR    R₂             ┘                                   RR             BCR   4,R₂
JL     label                Jump on Low                   RI             BRC   4,label
BE     D₂(X₂,B₂)      ┐     Branch on Equal               RX             BC    8,D₂(X₂,B₂)
BER    R₂             ┘                                   RR             BCR   8,R₂
JE     label                Jump on Equal                 RI             BRC   8,label
BNH    D₂(X₂,B₂)      ┐     Branch on Not High            RX             BC    13,D₂(X₂,B₂)
BNHR   R₂             ┘                                   RR             BCR   13,R₂
JNH    label                Jump on Not High              RI             BRC   13,label
BNL    D₂(X₂,B₂)      ┐     Branch on Not Low             RX             BC    11,D₂(X₂,B₂)
BNLR   R₂             ┘                                   RR             BCR   11,R₂
JNL    label                Jump on Not Low               RI             BRC   11,label
BNE    D₂(X₂,B₂)      ┐     Branch on Not Equal           RX             BC    7,D₂(X₂,B₂)
BNER   R₂             ┘                                   RR             BCR   7,R₂
JNE    label                Jump on Not Equal             RI             BRC   7,label
Figure 2. Extended mnemonic codes (part 2 of 5)
Used After Arithmetic Instructions

BP     D₂(X₂,B₂)      ┐     Branch on Plus                RX             BC    2,D₂(X₂,B₂)
BPR    R₂             ┘                                   RR             BCR   2,R₂
JP     label                Jump on Plus                  RI             BRC   2,label
BM     D₂(X₂,B₂)      ┐     Branch on Minus               RX             BC    4,D₂(X₂,B₂)
BMR    R₂             ┘                                   RR             BCR   4,R₂
JM     label                Jump on Minus                 RI             BRC   4,label
BZ     D₂(X₂,B₂)      ┐     Branch on Zero                RX             BC    8,D₂(X₂,B₂)
BZR    R₂             ┘                                   RR             BCR   8,R₂
JZ     label                Jump on Zero                  RI             BRC   8,label
BO     D₂(X₂,B₂)      ┐     Branch on Overflow            RX             BC    1,D₂(X₂,B₂)
BOR    R₂             ┘                                   RR             BCR   1,R₂
JO     label                Jump on Overflow              RI             BRC   1,label
BNP    D₂(X₂,B₂)      ┐     Branch on Not Plus            RX             BC    13,D₂(X₂,B₂)
BNPR   R₂             ┘                                   RR             BCR   13,R₂
JNP    label                Jump on Not Plus              RI             BRC   13,label
BNM    D₂(X₂,B₂)      ┐     Branch on Not Minus           RX             BC    11,D₂(X₂,B₂)
BNMR   R₂             ┘                                   RR             BCR   11,R₂
JNM    label                Jump on Not Minus             RI             BRC   11,label
BNZ    D₂(X₂,B₂)      ┐     Branch on Not Zero            RX             BC    7,D₂(X₂,B₂)
BNZR   R₂             ┘                                   RR             BCR   7,R₂
JNZ    label                Jump on Not Minus             RI             BRC   7,label
BNO    D₂(X₂,B₂)      ┐     Branch on No Overflow         RX             BC    14,D₂(X₂,B₂)
BNOR   R₂             ┘                                   RR             BCR   14,R₂
JNO    label                Jump on No Overflow           RI             BRC   14,label
Figure 3. Extended mnemonic codes (part 3 of 5)
Used After Test Under Mask Instructions

BO     D₂(X₂,B₂)      ┐     Branch if Ones                RX             BC    1,D₂(X₂,B₂)
BOR    R₂             ┘                                   RR             BCR   1,R₂
BM     D₂(X₂,B₂)      ┐     Branch if Mixed               RX             BC    4,D₂(X₂,B₂)
BMR    R₂             ┘                                   RR             BCR   4,R₂
BZ     D₂(X₂,B₂)      ┐     Branch if Zero                RX             BC    8,D₂(X₂,B₂)
BZR    R₂             ┘                                   RR             BCR   8,R₂
BNO    D₂(X₂,B₂)      ┐     Branch if Not Ones            RX             BC    14,D₂(X₂,B₂)
BNOR   R₂             ┘                                   RR             BCR   14,R₂
BNM    D₂(X₂,B₂)      ┐     Branch if Not Mixed           RX             BC    11,D₂(X₂,B₂)
BNMR   R₂             ┘                                   RR             BCR   11,R₂
BNZ    D₂(X₂,B₂)      ┐     Branch if Not Zero            RX             BC    7,D₂(X₂,B₂)
BNZR   R₂             ┘                                   RR             BCR   7,R₂

Branch Relative on Condition Long
BRUL   label               Unconditional Br Rel Long     RIL             BRCL  15,label

BRHL   label               Br Rel Long on High           RIL             BRCL  2,label
BRLL   label               Br Rel Long on Low            RIL             BRCL  4,label
BREL   label               Br Rel Long on Equal          RIL             BRCL  8,label
BRNHL  label               Br Rel Long on Not High       RIL             BRCL  13,label
BRNLL  label               Br Rel Long on Not Low        RIL             BRCL  11,label
BRNEL  label               Br Rel Long on Not Equal      RIL             BRCL  7,label

BRPL   label               Br Rel Long on Plus           RIL             BRCL  2,label
BRML   label               Br Rel Long on Minus          RIL             BRCL  4,label
BRZL   label               Br Rel Long on Zero           RIL             BRCL  8,label
BROL   label               Br Rel Long on Overflow       RIL             BRCL  1,label
BRNPL  label               Br Rel Long on Not Plus       RIL             BRCL  13,label
BRNML  label               Br Rel Long on Not Minus      RIL             BRCL  11,label
BRNZL  label               Br Rel Long on Not Zero       RIL             BRCL  7,label
BRNOL  label               Br Rel Long on Not Overflow   RIL             BRCL  14,label
Figure 4. Extended mnemonic codes (part 4 of 5)
Branch Relative on Condition
BRO    label                Branch on Overflow            RI             BRC   1,label
BRP    label                Branch on Plus                RI             BRC   2,label
BRH    label                Branch on High                RI             BRC   2,label
BRL    label                Branch on Low                 RI             BRC   4,label
BRM    label                Branch on Minus               RI             BRC   4,label
BRNE   label                Branch on Not Equal           RI             BRC   7,label
BRNZ   label                Branch on Not Minus           RI             BRC   7,label
BRE    label                Branch on Equal               RI             BRC   8,label
BRZ    label                Branch on Zero                RI             BRC   8,label
BRNL   label                Branch on Not Low             RI             BRC   11,label
BRNM   label                Branch on Not Minus           RI             BRC   11,label
BRNH   label                Branch on Not High            RI             BRC   13,label
BRNP   label                Branch on Not Plus            RI             BRC   13,label
BRNO   label                Branch on No Overflow         RI             BRC   14,label
BRU    label                Unconditional Branch          RI             BRC   15,label
Figure 5. Extended mnemonic codes (part 5 of 5)
Jump on Condition Long

JLU    label               Unconditional Jump Long       RIL             BRCL  15,label
JLNOP  label               No operation                  RIL             BRCL  0,label

JLH    label               Jump Long on High             RIL             BRCL  2,label
JLL    label               Jump Long on Low              RIL             BRCL  4,label
JLE    label               Jump Long on Equal            RIL             BRCL  8,label
JLNH   label               Jump Long on Not High         RIL             BRCL  13,label
JLNL   label               Jump Long on Not Low          RIL             BRCL  11,label
JLNE   label               Jump Long on Not Equal        RIL             BRCL  7,label

JLP    label               Jump Long on Plus             RIL             BRCL  2,label
JLM    label               Jump Long on Minus            RIL             BRCL  4,label
JLZ    label               Jump Long on Zero             RIL             BRCL  8,label
JLO    label               Jump Long on Overflow         RIL             BRCL  1,label
JLNP   label               Jump Long on Not Plus         RIL             BRCL  13,label
JLNM   label               Jump Long on Not Minus        RIL             BRCL  11,label
JLNZ   label               Jump Long on Not Zero         RIL             BRCL  7,label
JLNO   label               Jump Long on Not Overflow     RIL             BRCL  14,label
Notes:
  1. D₂=displacement, X₂=index register, B₂=base register, R₂=register containing branch address
  2. The addresses represented are explicit address (see  4 ). However, implicit addresses can also be used in this type of instruction.
  3. Avoid using BM, BNM, JM, and JNM after the TMH, TML,TMHH, TMHL, TMLH or TMLL instruction.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014