CLC Instruction

The CLC (compare logical characters) instruction compares the first and second operands and sets the condition code to reflect the result of the comparison. The comparison is a logical comparison (not a numeric comparison), so it is used for character data. The two operands are compared bit by bit until a difference is found or until all bits are compared and the operands are found to be equal. The condition code is set as follows:

Relation of Operands Result of Comparison Value of Condition Code
operand1 == operand2 equal 00
operand1 < operand2 low 01
operand1 > operand2 high 10

Given the following definitions:

ONE      DC     C'ABCDE'
TWO      DC     C'12345'
THREE    DC     C'ABX1239'
FOUR     DC     C'ABC'
FIVE     DC     C'123'
SIX      DC     C' ABCD'
SEVEN    DC     C'BBC'

The DC statements shown above result in the following data (shown in character and hex) in storage:

A B C D E 1 2 3 4 5 A B X 1 2 3 9 A B C 1 2 3   A B C D B B C

C1C2C3C4C5F1F2F3F4F5C1C2E7F1F2F3F9C1C2C3F1F2F340C1C2C3C4C2C2C3

ONE       TWO       THREE         FOUR  FIVE  SIX       SEVEN

The following table shows the results of CLC instructions. Each instruction starts with the initial data given above.

CLC Instruction Operand 1 Operand 2 Result Condition Code
Implicit Comparisons
CLC ONE,TWO C1C2C3C4C5 F1F2F3F4F5 low 01
CLC ONE,FOUR C1C2C3C4C5 C1C2C3F1F2 low 01
CLC FOUR,ONE C1C2C3 C1C2C3 equal 00
CLC SEVEN,FOUR C2C2C3 C1C2C3 high 10
CLC FOUR,SIX+1 C1C2C3 C1C2C3 equal 00
CLC ONE,SIX C1C2C3C4C5 40C1C2C3C4 high 10
CLC THREE,ONE C1C2E7F1F2F3F9 C1C2C3C4C5F1F2 high 10
Explicit Comparisons
CLC TWO(3),FIVE F1F2F3 F1F2F3 equal 00
CLC THREE+3(3),FIVE F1F2F3 F1F2F3 equal 00
CLC FIVE(8),TWO F1F2F340C1C2C3C4 F1F2F3F4F5C1C2E7 low 01
CLC SIX+2(1),SEVEN+1 C2 C2 equal 00


Email Me | Office Hours | My Home Page | Department Home | MCC Home Page

© Copyright Emmi Schatz 2003