|
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: - D₂=displacement, X₂=index
register, B₂=base
register, R₂=register
containing branch address
- The addresses represented are explicit address (see 4 ).
However, implicit addresses can also be used in this type of instruction.
- Avoid using BM, BNM, JM, and JNM after the TMH, TML,TMHH,
TMHL, TMLH or TMLL instruction.
|