











Arithmetic Logic Unit (ALU)
Notes:
The ALU also has a C16 or carry 16 mode.
If I take a 32-bit accumulator and think of it as two 16 bit portions, where I want to treat this as a 32-bit value and add another 32-bit value to this accumulator, I would want to be sure that a one added into the 15th bit position carried to the 16th bit position, if I were doing a double wide addition operation. In order to do that, I would set the C16 bit.
If, however, I wanted to add two 16-bit values, and did not want to have this addition, I would not set the C16 bit. I would let it be equal to zero so I could have dual adds or subtracts on 16-bit values, or set the C16 bit and do single operations on 32-bit values.
Hence, we can read two 16-bit value or one 32-bit values on the two data buses, providing a big improvement in performance whenever we're doing extended precision arithmetic.