MIT PDP-10 'Info' file converted to Hypertext 'html' format by Henry Baker

Previous Up Next This node describes some instructions that only KL-10's have. This means that the only ITS machine which has them is MC. You should probably not use them even if you expect to run on MC, so that your program can be moved.

Double word Move instructions (KI10 and KL10)

There are four double word move instructions. These are suitable for manipulating KI10 and KL10 double precision floating point numbers, and for KL10 double precision integers.
DMOVE   C(AC AC+1) <- C(E E+1)
DMOVEM  C(E E+1) <- C(AC AC+1)
DMOVN   C(AC AC+1) <- -C(E E+1)
DMOVNM  C(E E+1) <- -C(AC AC+1)
Note that the DMOVN and DMOVNM are NOT to be used for KA10 double precision floating point numbers!

If a program is written that may be have to be run on a KA10, the use of all double word instructions should be avoided.

Double Precision Integer Arithmetic (KL10 only)

There are four instructions for double precision integer arithmetic. None of these instructions have any modifier: they all operate on double (or quadruple) accumulators and double words in memory with results to double (or quadruple) accumulators.

The format for a double word integer is the same as that produced by MUL, i.e., a 70 bit integer in twos complement, with bit 0 of the most significant word is the sign; in operands, bit 0 of the low order word is ignored. A quadruple word has 140 bits; bit 0 of the most significant word is the sign; in operands, bit 0 in all other words is ignored. In double (and quadruple) arithmetic results bit 0 of the low order word(s) is stored with the same value as bit 0 of the high order word.

DADD    C(AC AC+1) <- C(AC AC+1) + C(E E+1);
DSUB    C(AC AC+1) <- C(AC AC+1) - C(E E+1);
DMUL    C(AC AC+1 AC+2 AC+3) <- C(AC AC+1) * C(E E+1);
DDIV    C(AC AC+1) <- C(AC AC+1 AC+2 AC+3) / C(E E+1);
                C(AC+2 AC+3) <- remainder;