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.
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