Node:Arithmetic operators, Next:Address transfer operators, Previous:Storing operators, Up:MIX instruction set
The following instructions perform arithmetic operations between rA and rX register and memory contents.
ADD
rA <- rA +V
.
SUB
rA <- rA - V
.
MUL
rAX <- rA x V
.
DIV
rA <- rAX / V
, rX
<- reminder.
In all the above instructions, [rA]
is one of the operands
of the binary arithmetic operation, the other being V
(that is,
the specified subfield of the memory cell with address M
), padded
with zero bytes on its left-side to complete a word. In multiplication
and division, the register X
comes into play as a right-extension
of the register A
, so that we are able to handle 10-byte numbers
whose more significant bytes are those of rA
(the sign of this
10-byte number is that of rA
: rX
's sign is ignored).
Addition and substraction of MIX words can give rise to overflows, since
the result is stored in a register with room to only 5 bytes (plus
sign). When this occurs, the operation result modulo 1,073,741,823
(the maximum value storable in a MIX word) is stored in rA
, and
the overflow toggle is set to TRUE.