Texas Instruments MSP50C6xx Calculator User Manual


 
MSP50P614/MSP50C614 Computational Modes
4-52
Example 4.6.1 SOVM
MOV A0, 0x7FFE
ADD A0, 5
In this example, we set the overflow mode (OM = 1 of STAT). Adding 0x7FFE
with 5 causes an overflow (OF = 1 of STAT). Since the expected result is a
positive value, the accumulator saturates to the largest representable value,
0x7FFF. If overflow mode was not set before the ADD instruction, then the
accumulator would overflow. Therefore, the result, 0x8003, would be a
negative value.
Example 4.6.2 SOVM
MOV STR, 22 ;string length = 2
MOV AP0, 0
MOV A0, 0x1234
MOV A0~, 0x1000
MOV A0, 0x7F00, ++A
MOV A0~, 0x1000
MOV AP0,0 ;point to beginning
;of string
ADD A0, A0~, A0
In this example, saturation on a string value is illustrated. A 2 word string is
loaded into the STR register. The accumulator string, A0, is loaded with
0x7F001234 and accumulator string A0~ is loaded with 0x10001000. When
the two values are added together, it causes an overflow. The OF bit of the
STAT is set to 1, the 16-bit MSBs of the string become 0x7FFF, and the lower
bits of the string become 0x2234. The final result is 0x7FFF2234. Note that if
overflow mode was not set, the result would have been 0x8F002234.
Fractional Mode: Multiplier fractional mode may be enabled/disabled by
setting/resetting the FM bit of STAT. When the multiplier is in fractional mode,
the multiplier is shifted left 1 bit to form a 17 significant bit operand. Fractional
mode avoids a divide by 2 of the product when interpreting the input operands
as signed binary fractions (Q formats). Fractional mode works with string
mode as well.
Example 4.6.1 SXM
MOV A0, 0x7FFF
MOV MR, 0x7FFF
MULTPL A0, A0 ;0x7FFF * 0x7FFF
;PH = 0x3FFF A0~ = 0001
SFM
MULTPL A0~,A0 ;PH = 0x7FFE A0~ = 0002
This example illustrates the differences between a regular multiply and a frac-
tional mode multiply. The first multiply in the above code is nonfractional. The