MSP50P614/MSP50C614 Computational Modes

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, 2–2

;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

4-52

Page 138
Image 138
Texas Instruments MSP50C6xx manual Example 4.6.1 Sovm, Example 4.6.2 Sovm, Example 4.6.1 SXM