The instructions of this group, except 13 and 14, perform some arithmetical or logical operation between two operands, one of which is the 48-bit word x (a signed number in functions 10, 11 and 12, and a logical quantity in functions 15, 16 and 17). The other operand is the 15-bit representation of Y itself: in fact, by modification and/or replacement, Y may be a 24-bit quantity. The functions 13 and 14 use only the operand Y. In 3-address form the result is written into accumulator Z and in 2-address form it is written into register X.
The operand Y can be regarded as a 48-bit word in which the m.s. 33 or 24 bits are all 0's and the l.s. 15 or 24 bits are the binary representation of Y.
If Y is written as a Basic or a Symbolic Address, the Y-operand is the corresponding 15-bit machine address.
Y
is essentially unsigned in the instructions of group 1. For convenience in writing and punching programs it can be
written as a negative integer. It
is then stored and used as the 15-bit representation of this negative integer.
Thus if Y is written as -10 it is stored and used as the 15-bit
representation of -10 with the effective value of 32768-10 = 32758.
If a Y-operand is written as a negative integer and is then modified, the
effective Y is the 24-bit sum of the 24-bit modifier and the 15-bit unsigned
representation of the written Y- operand.
Function number 10 [0001 000]
(3) z' = x + Y (2) x' = x + Y
Add Y to x, writing the result into Z or X. OVR is set if the result is out of range.
A few examples follow:
(a) 10 A100 27 A3
sets (A3)I' = (A100)I + 27 or, equally, (A3)F' = (A100)F +(27 x 2-47)
(b) 10 A100 (A200) A3
sets (A3)' = (A100) + A200m, i.e. the 24-bit unsigned modifier in A200 is added to the signed 48-bit number in A100. Note that this is not the same as
00 A100 A200 A3
in which the two signed 48-bit numbers (A100) and (A200) are added together.
(c) 10 A100 A200 A3
forms the sum of the signed 48-bit number in A100 and the machine address represented by the Basic Address A200. (The Y-address can alternatively be written as a Symbolic Address).
(d) 10 A100 0
does not change the content of any register. Such an instruction can be useful if it is desired to hold up a program until e.g. a peripheral transfer (ending at A100 in this case) has been completed satisfactorily.
(e) 10Y A100 (A200) A7
sets (A100)� = (A100) + A200m
+ A7m, i.e. it forms the sum of three numbers by a single
instruction, saving one instruction and about 20 microsecs. over the pair of
00�instructions which constitute an alternative method.
It is, of course, necessary that A200m and A7m are
unsigned (non-negative) 24-bit numbers.
Function number 11 [0001 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.
The
examples given for the 10-instruction are equally valid for the 11-instruction
with the appropriate alterations to allow for the fact that Y is now subtracted.
Function number 12 [0001 010]
(3) z' = Y � x (2) x' = Y - x
From Y subtract x, writing the result into Z or X. OVR is set if the result is out of range.
A special case of a 2-address 12-instruction is, typically
12 A100 0 (A100)' = 0 - (A100) = -(A100)
which is the fastest way to overwrite a number by its own
negative. This
particular instruction will set OVR if xF = -1.0.
Function number 13 [0001 011]
(3) z' = -Y (2) x' = -Y
Negate Y, writing the result into Z or X. OVR cannot be set by this instruction.
In 3-address form X is irrelevant and therefore it is recommended that this instruction should be used in 2-address form only.
In
2-address type, x is read from the store but is not used.
In 3-address type X is not checked for lockouts or violation of
reservations unless replaced (see 2.2.23 and
2.2.24)
Function number 14 [0001 100]
(3) z' = Y (2) x' = Y
Copy Y into Z or X. OVR cannot be set by this instruction.
In 3-address form X is irrelevant and therefore it is recommended that this instruction should be used in 2�address form only. In 2-address type, x is read but not used. In 3-address type X is not checked for lockouts or violation of reservations unless replaced (see 2.2.23 and 2.2.24).
Some examples follow
(a) 14 A100 27
set the integer +27 or the fraction 27 x 2-47 in A100.
(b) 14 A100 A200
sets, in A100, the machine address corresponding to Basic Address A200. (If Y = A0, then this instruction sets xm = datum point). Note that Y can also be written as a Symbolic Address.
(c) 14 A100 (A200)
copies A200m into A100,
leaving Al00u clear.
Function number 15 [0001 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 further discussion of the logical operations see Section 3.2.1.
When
using this function it is necessary to compute the numerical value of the
required mask Y.
Function number 16 [0001 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.
When using this instruction it is usually necessary to compute the numerical value of the required mask Y.
For
a fuller discussion of the logical operations see Section
3.2.1.
Function number 17 [0001 111]
(3) z' = x ≢ Y (2) x' = x ≢ Y
Perform the logical operation 'not equivalent' between x and Y, writing the result into Z or X. OVR cannot be set by this instruction.
When using this instruction it is usually necessary to compute the numerical value of the required mask Y.
For a fuller discussion of the logical operations see Section 3.2.1.