Subtract Logical Character (SUBLC)


Op Code (Hex) Extender Operand 1 Operand 2 Operand 3 Operand [4-6]
SUBLC 1027
Difference Minuend Subtrahend


SUBLCI 1827 Indicator options Difference Minuend Subtrahend Indicator targets


SUBLCB 1C27 Branch options Difference Minuend Subtrahend Branch targets
Operand 1: Character variable scalar.

Operand 2: Character scalar.

Operand 3: Character scalar.

Operand 4-6:

Short forms


Op Code (Hex) Extender Operand 1 Operand 2 Operand [3-5]
SUBLCS 1127
Difference/Minuend Subtrahend


SUBLCIS 1927 Indicator options Difference/Minuend Subtrahend Indicator targets


SUBLCBS 1D27 Branch options Difference/Minuend Subtrahend Branch targets
Operand 1: Character variable scalar.

Operand 2: Character scalar.

Operand 3-5:

Description  The unsigned binary value of the subtrahend operand is subtracted from the unsigned binary value of the minuend operand, and the result is placed in the difference operand.

If the short form is not used and if neither source operand is an immediate value, then operands 2 and 3 must be the same length. The length can be a maximum of 256 bytes. In the case that the short form is not used and operand 2 or 3 is an immediate operand, it is treated as a character value and extended on the right with hex 00 bytes to match the length of the other operand. The subtraction operation is performed as though the ones complement of the second operand and a low-order 1-bit were added to the first operand.

The result value is then placed (left-adjusted) into the receiver operand with truncating or padding taking place on the right. The pad value used in this instruction is a byte value of hex 00.

If operands overlap but do not share all of the same bytes, results of operations performed on these operands are not predictable. If overlapped operands share all of the same bytes, the results are predictable when direct addressing is used. If indirect addressing is used (that is, based operands, parameters, strings with variable lengths, and arrays with variable subscripts), the results are not always predictable.

Resultant Conditions  The logical difference of the character scalar operands is:

Authorization Required

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

20 Machine Support

1C Machine-Dependent

20 Machine Support

22 Object Access

24 Pointer Specification

2C Program Execution

2E Resource Control Limit

32 Scalar Specification

36 Space Management

44 Protection Violation