SLAU367P October 2012 – April 2020 MSP430FR5041 , MSP430FR5043 , MSP430FR50431 , MSP430FR5847 , MSP430FR58471 , MSP430FR5848 , MSP430FR5849 , MSP430FR5857 , MSP430FR5858 , MSP430FR5859 , MSP430FR5867 , MSP430FR58671 , MSP430FR5868 , MSP430FR5869 , MSP430FR5870 , MSP430FR5872 , MSP430FR58721 , MSP430FR5887 , MSP430FR5888 , MSP430FR5889 , MSP430FR58891 , MSP430FR5922 , MSP430FR59221 , MSP430FR5947 , MSP430FR59471 , MSP430FR5948 , MSP430FR5949 , MSP430FR5957 , MSP430FR5958 , MSP430FR5959 , MSP430FR5962 , MSP430FR5964 , MSP430FR5967 , MSP430FR5968 , MSP430FR5969 , MSP430FR5969-SP , MSP430FR59691 , MSP430FR5970 , MSP430FR5972 , MSP430FR59721 , MSP430FR5986 , MSP430FR5987 , MSP430FR5988 , MSP430FR5989 , MSP430FR5989-EP , MSP430FR59891 , MSP430FR5992 , MSP430FR5994 , MSP430FR59941 , MSP430FR6005 , MSP430FR6007 , MSP430FR6035 , MSP430FR6037 , MSP430FR60371 , MSP430FR6041 , MSP430FR6043 , MSP430FR60431 , MSP430FR6045 , MSP430FR6047 , MSP430FR60471 , MSP430FR6820 , MSP430FR6822 , MSP430FR68221 , MSP430FR6870 , MSP430FR6872 , MSP430FR68721 , MSP430FR6877 , MSP430FR6879 , MSP430FR68791 , MSP430FR6887 , MSP430FR6888 , MSP430FR6889 , MSP430FR68891 , MSP430FR6920 , MSP430FR6922 , MSP430FR69221 , MSP430FR6927 , MSP430FR69271 , MSP430FR6928 , MSP430FR6970 , MSP430FR6972 , MSP430FR69721 , MSP430FR6977 , MSP430FR6979 , MSP430FR69791 , MSP430FR6987 , MSP430FR6988 , MSP430FR6989 , MSP430FR69891
MPY32 registers are listed in Table 5-7. The base address can be found in the device-specific data sheet. The address offsets are listed in Table 5-7.
NOTE
All registers have word or byte register access. For a generic register ANYREG, the suffix "_L" (ANYREG_L) refers to the lower byte of the register (bits 0 through 7). The suffix "_H" (ANYREG_H) refers to the upper byte of the register (bits 8 through 15).
Offset | Acronym | Register Name | Type | Access | Reset |
---|---|---|---|---|---|
00h | MPY | 16-bit operand one – multiply | Read/write | Word | Undefined |
00h | MPY_L | Read/write | Byte | Undefined | |
01h | MPY_H | Read/write | Byte | Undefined | |
00h | MPY_B | 8-bit operand one – multiply | Read/write | Byte | Undefined |
02h | MPYS | 16-bit operand one – signed multiply | Read/write | Word | Undefined |
02h | MPYS_L | Read/write | Byte | Undefined | |
03h | MPYS_H | Read/write | Byte | Undefined | |
02h | MPYS_B | 8-bit operand one – signed multiply | Read/write | Byte | Undefined |
04h | MAC | 16-bit operand one – multiply accumulate | Read/write | Word | Undefined |
04h | MAC_L | Read/write | Byte | Undefined | |
05h | MAC_H | Read/write | Byte | Undefined | |
04h | MAC_B | 8-bit operand one – multiply accumulate | Read/write | Byte | Undefined |
06h | MACS | 16-bit operand one – signed multiply accumulate | Read/write | Word | Undefined |
06h | MACS_L | Read/write | Byte | Undefined | |
07h | MACS_H | Read/write | Byte | Undefined | |
06h | MACS_B | 8-bit operand one – signed multiply accumulate | Read/write | Byte | Undefined |
08h | OP2 | 16-bit operand two | Read/write | Word | Undefined |
08h | OP2_L | Read/write | Byte | Undefined | |
09h | OP2_H | Read/write | Byte | Undefined | |
08h | OP2_B | 8-bit operand two | Read/write | Byte | Undefined |
0Ah | RESLO | 16x16-bit result low word | Read/write | Word | Undefined |
0Ah | RESLO_L | Read/write | Byte | Undefined | |
0Ch | RESHI | 16x16-bit result high word | Read/write | Word | Undefined |
0Eh | SUMEXT | 16x16-bit sum extension register | Read | Word | Undefined |
10h | MPY32L | 32-bit operand 1 – multiply – low word | Read/write | Word | Undefined |
10h | MPY32L_L | Read/write | Byte | Undefined | |
11h | MPY32L_H | Read/write | Byte | Undefined | |
12h | MPY32H | 32-bit operand 1 – multiply – high word | Read/write | Word | Undefined |
12h | MPY32H_L | Read/write | Byte | Undefined | |
13h | MPY32H_H | Read/write | Byte | Undefined | |
12h | MPY32H_B | 24-bit operand 1 – multiply – high byte | Read/write | Byte | Undefined |
14h | MPYS32L | 32-bit operand 1 – signed multiply – low word | Read/write | Word | Undefined |
14h | MPYS32L_L | Read/write | Byte | Undefined | |
15h | MPYS32L_H | Read/write | Byte | Undefined | |
16h | MPYS32H | 32-bit operand 1 – signed multiply – high word | Read/write | Word | Undefined |
16h | MPYS32H_L | Read/write | Byte | Undefined | |
17h | MPYS32H_H | Read/write | Byte | Undefined | |
16h | MPYS32H_B | 24-bit operand 1 – signed multiply – high byte | Read/write | Byte | Undefined |
18h | MAC32L | 32-bit operand 1 – multiply accumulate – low word | Read/write | Word | Undefined |
18h | MAC32L_L | Read/write | Byte | Undefined | |
19h | MAC32L_H | Read/write | Byte | Undefined | |
1Ah | MAC32H | 32-bit operand 1 – multiply accumulate – high word | Read/write | Word | Undefined |
1Ah | MAC32H_L | Read/write | Byte | Undefined | |
1Bh | MAC32H_H | Read/write | Byte | Undefined | |
1Ah | MAC32H_B | 24-bit operand 1 – multiply accumulate – high byte | Read/write | Byte | Undefined |
1Ch | MACS32L | 32-bit operand 1 – signed multiply accumulate – low word | Read/write | Word | Undefined |
1Ch | MACS32L_L | Read/write | Byte | Undefined | |
1Dh | MACS32L_H | Read/write | Byte | Undefined | |
1Eh | MACS32H | 32-bit operand 1 – signed multiply accumulate – high word | Read/write | Word | Undefined |
1Eh | MACS32H_L | Read/write | Byte | Undefined | |
1Fh | MACS32H_H | Read/write | Byte | Undefined | |
1Eh | MACS32H_B | 24-bit operand 1 – signed multiply accumulate – high byte | Read/write | Byte | Undefined |
20h | OP2L | 32-bit operand 2 – low word | Read/write | Word | Undefined |
20h | OP2L_L | Read/write | Byte | Undefined | |
21h | OP2L_H | Read/write | Byte | Undefined | |
22h | OP2H | 32-bit operand 2 – high word | Read/write | Word | Undefined |
22h | OP2H_L | Read/write | Byte | Undefined | |
23h | OP2H_H | Read/write | Byte | Undefined | |
22h | OP2H_B | 24-bit operand 2 – high byte | Read/write | Byte | Undefined |
24h | RES0 | 32x32-bit result 0 – least significant word | Read/write | Word | Undefined |
24h | RES0_L | Read/write | Byte | Undefined | |
26h | RES1 | 32x32-bit result 1 | Read/write | Word | Undefined |
28h | RES2 | 32x32-bit result 2 | Read/write | Word | Undefined |
2Ah | RES3 | 32x32-bit result 3 – most significant word | Read/write | Word | Undefined |
2Ch | MPY32CTL0 | MPY32 control register 0 | Read/write | Word | Undefined |
2Ch | MPY32CTL0_L | Read/write | Byte | Undefined | |
2Dh | MPY32CTL0_H | Read/write | Byte | 00h |
The registers listed in Table 5-8 are treated equally.
Register | Alternative 1 | Alternative 2 |
---|---|---|
16-bit operand one – multiply | MPY | MPY32L |
8-bit operand one – multiply | MPY_B or MPY_L | MPY32L_B or MPY32L_L |
16-bit operand one – signed multiply | MPYS | MPYS32L |
8-bit operand one – signed multiply | MPYS_B or MPYS_L | MPYS32L_B or MPYS32L_L |
16-bit operand one – multiply accumulate | MAC | MAC32L |
8-bit operand one – multiply accumulate | MAC_B or MAC_L | MAC32L_B or MAC32L_L |
16-bit operand one – signed multiply accumulate | MACS | MACS32L |
8-bit operand one – signed multiply accumulate | MACS_B or MACS_L | MACS32L_B or MACS32L_L |
16x16-bit result low word | RESLO | RES0 |
16x16-bit result high word | RESHI | RES1 |