Subtract Space Pointers For Offset (SUBSPPFO)


Op Code (Hex) Operand 1 Operand 2 Operand 3
0033 Offset difference Minuend pointer Subtrahend pointer
Operand 1: Binary(4) variable scalar.

Operand 2: Space pointer.

Operand 3: Space pointer.

Description

The offset portion of the space address contained in the operand 3 space pointer is subtracted from the offset of the space address contained in the space pointer specified by operand 2; the result is stored in the 4 byte binary scalar identified by operand 1.

The offsets for operands 2 and 3 are strictly unsigned values, while the operand 1 result can have a positive or negative value.

No check is made to determine that the space pointers point to the same space. In addition, the existence of the pointers is not checked except for pointers used as a base for the operands. When the space pointers point to different spaces, or exactly one of the pointer operands is subject to the pointer does not exist condition, the resulting value is undefined, but no exception is signaled for those conditions. However, if both operand 2 and operand 3 are subject to the pointer does not exist condition, the result value is zero.

If either operand 2 or operand 3 contains a pointer which is not a space pointer, a pointer type invalid  (hex 2402) exception is signaled.

A size  (hex 0C0A) exception can be signalled when the program attribute to signal size exceptions is in effect, under the following conditions:

The object destroyed  (hex 2202) exception, parameter reference violation  (hex 0801) exception, and pointer does not exist  (hex 2401) exception are not signaled when operand 2 and operand 3 are space pointer machine objects. This occurs when operand 2 or operand 3 contains an internal machine value that indicates one of these error conditions exists. Even if the corresponding exception is not signaled, the operand 1 value is undefined in those cases.

Authorization Required

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

10 Damage Encountered

0C Computation

1C Machine-Dependent

20 Machine Support

22 Object Access

24 Pointer Specification

2E Resource Control Limit

36 Space Management

44 Protection Violation