Section 3.0

Group 0

The instructions in this group perform the stated arithmetical or logical operations involving y, the 48-bit word in register Y and (except for the 03 and 04 functions) x, the 48-bit word in register X.  The result is written into accumulator Z in 3-address type or register X in 2-address type (modified or unmodified).

Function number 00  [0000 000]

(3)  z' = x + y                     (2)  x' = x + y

Add x to y, writing the result to Z or X.  OVR is set if the result is out of range:  this cannot happen if x and y are of opposite signs.

Function number 01  [0000 001]

(3)  z' = x – y                     (2)  x' = x - y

Subtract y from x, writing the result into Z or X.  OVR is set if the result is out of range: this cannot happen if x and y are of the same sign.  OVR will be set if x 0 and yF = -1.0.

Function number 02  [0000 010]

(3)  z' = y - x                     (2)  x' = y - x

Subtract x from y, writing the result into Z or X.  OVR is set if the result is out of range:  this cannot happen if x and y are of the same sign.  OVR will be set if y 0 and xF = -1.0.

The result of this instruction is equal in magnitude and opposite in sign to that of a 01-instruction with the same X and Y addresses.

If, in a 3-address 01-instruction, the X- and Y-addresses have been written in the wrong sequence, the error is most easily corrected by changing the function number to 02.

Function number 03  [0000 011]

(3)  z' = -y                        (2)  x' = -y

Negate y into Z or X.  OVR is set if and only if yF = -1.0.

In 3-address form the X address is irrelevant and therefore it is recommended that this form should not be used.

If it is desired to overwrite a number by its own negative an instruction typified by

03         A100       A100

can be used but it is faster and therefore preferable to use

12         A100          0

Note that when a 2-address 03-instruction is obeyed, x is extracted from the store, even though it is not used.   When a 3-address 03-instruction is obeyed the X-address is not checked for lock-outs or for violation of reservations unless replaced (see 2.2.23 and 2.2.24).

Function number 04  [0000 100]

(3)  z' = y                         (2)  x' = y

Copy y into Z or X.  OVR cannot be set by this instruction.

It is not necessary to regard y as a number.

In 3-address form X is irrelevant and therefore it is recommended that this form should not be used.

Note that when a 2-address 04-instruction is obeyed, x is extracted from the store, even though it is not used.  When a 3-address 04-instruction is obeyed the X-address is not checked for lock-outs or for violation of reservations unless replaced.  (See 2.2.23 and 2.2.24).

Function number 05  [0000 101]

(3)  z' = x & y                     (2)  x' = x & y

Perform the logical operation 'and' between x and y, writing the result into Z or X.   OVR cannot be set by this instruction.

For a fuller discussion of the logical operations see Section 3.2.1.

Function number 06  [0000 110]

(3)  z' = x Ú y                     (2)  x' = x Ú y

Perform the logical operation 'or' between x and y, writing the result into Z or X.  OVR cannot be set by this instruction.

For a fuller discussion of the logical operations see Section 3.2.1.

Function number 07  [000 111]

(3)  z' = x y                     (2)  x' = x y

Perform the logical operation 'not equivalent' between x and y writing the result into 2 or X.  OVR cannot be set by this instruction.

For a fuller discussion of the logical operations see Section 3.2.1.