And Complemented String (ANDCSTR)

Bound program access

Built-in number for ANDCSTR is 463. ANDCSTR ( receiver_string : address of aggregate(*) first_source_string : address of aggregate(*) second_source_string : address of aggregate(*) string_length : unsigned binary(4,8) value which specifies the length of the three strings )

Description  Each byte value of the first source string, for the number of bytes indicated by string length, is logically anded with the logical complement of the corresponding byte value of the second source string, on a bit-by-bit basis. The results are placed in the receiver string. If the strings overlap in storage, predictable results occur only if the overlap is fully coincident.

If the space(s) indicated by the three addresses are not long enough to contain the number of bytes indicated by string length, a space addressing violation (hex 0601) is signalled. Partial results in this case are unpredictable.

An example of the AND-COMPLEMENT operation, where the two operands each have length of one byte, follows:

First operand value:           01101001
Second operand value:          10010001
Second operand complemented:   01101110
Final result of first operand
ANDed with the complement of
the second operand:            01101000

Authorization Required

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

22 Object Access

24 Pointer Specification

44 Protection Violation