Compare instructions:
RX Format: label C R,D(X,B)
- Compares the fullword in R with the fullword at D(X,B)
Sets the Condition Code
Code Meaning
0 Equality
1 Fullword in R is less than fullword at D(X,B)
2 Fullword in R is greater than fullword at D(X,B)
RR Format: label CR R1,R2
- Compares the value in R1 to the value in R2
Sets the Condition Code
Code Meaning
0 Equality
1 Contents of R1 is less than the contents of R2
2 Contents of R1 is greater than the contents of R2
Branching
Conditional Branch
- used to alter the flow of program execution depending on the
Condition Code set by an instruction
RR Format: label BCR B‘mask’,R
- mask is a 4 bit binary mask indicating which Condition
Codes to branch on
- R is the register with the address to branch to
RX Format: label BC B‘mask’,D(X,B)
- mask is a 4 bit binary mask indicating which Condition
Codes to branch on
- D(X,B) is the address to branch to
B‘mask’ ==> B‘bbbb’==> B‘0123’
where 0123 represent the possible condition codes
If b is 1, branch to the address in R on this Condition code.
If b is 0, don’t branch.
AR 3,4
BC B‘1000’,HERE branch to the label HERE if the result of the
addition is 0
SR 3,4
BC B‘1100’,THERE branch to the label THERE if the result is
equal to 0 or less than zero
XREAD BUFFER,80
DO1 BC B‘0100’,ENDDO1 branch to ENDDO1 if end of file is reached
NOTE: Using the mask B‘1111’, makes an unconditional branch (it
will always branch)
Unconditional Branch
- Branches to a specific address no matter what the Condition Code is RX Format: B D(X,B) - Branches to D(X,B) RR Format: BR R - Branches to the address in R
Now we can write decision structures (Ifs) and repetition structures (LOOPs).