
The Compare Register instruction is used to compare a binary
fullword in a register, designated by Operand 1, with another fullword in a register,
designated by Operand 2. The operands
are compared as 32-bit signed binary integers.
The instruction sets the condition code to indicate how Operand 1
compares to Operand 2:
Condition
Code Meaning Test With
0 Operand 1 = Operand 2 BE, BZ
1 Operand 1 < Operand 2 BL, BM
2 Operand 1 > Operand 2 BH, BP
The following example sets the condition code by comparing
registers 9 and 6.
CR R9,R6

The contents of the fullword in register 9, x’FFFFFFFF’ = -1, is
compared to the contents of register 6 which contains x’000001AF’ = 431. Since the contents of the Operand 1 register
is less than the contents of the Operand 2 register, the condition code is set
to “Low”. The condition code in the
diagram above is specified using 2 binary digits. After comparison, the condition code is set to a binary 01 which
is 1 in decimal - a “Low” condition.
Some Unrelated Compare Registers
R4 = X’FFFFFFD5’ -43 IN 2’S
COMPLEMENT
R5 = X’00000028’ +40 IN 2’S
COMPLEMENT
R6 = X’00000004’ +4 IN 2’S
COMPLEMENT
CR R4,R5 CONDITION CODE
= LOW
CR R5,R4 CONDITION CODE
= HIGH
CR R4,R4 CONDITION CODE
= EQUAL
CR R6,R5 CONDITION CODE
= LOW
CR R5,R5 CONDITION CODE
= EQUAL