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 |