Hello, Ich habe ein Problem mit meinem header files in Verbindung mit ASM. Mein 1611 ist einer von nicht vielen kleinen MSP430 die einen Hardware Multiplizierer haben, der funktioniert auch, muss bis jetzt aber immer die Adressen selber zusammen suchen also z.B. asm( " MOV.W &0x013Ah,R15\n" ); um das Ergebniss zu lesen. Gibt es einen Weg das auchasm( " MOV.W RESLO,R15\n"); funktionieren könnte? Gruß eac Auszug msp430f1611.h
1 | /************************************************************ |
2 | * HARDWARE MULTIPLIER |
3 | ************************************************************/ |
4 | #define __MSP430_HAS_MPY__ /* Definition to show that Module is available */ |
5 | |
6 | #define MPY_ 0x0130 /* Multiply Unsigned/Operand 1 */ |
7 | sfrw(MPY, MPY_); |
8 | #define MPYS_ 0x0132 /* Multiply Signed/Operand 1 */ |
9 | sfrw(MPYS, MPYS_); |
10 | #define MAC_ 0x0134 /* Multiply Unsigned and Accumulate/Operand 1 */ |
11 | sfrw(MAC, MAC_); |
12 | #define MACS_ 0x0136 /* Multiply Signed and Accumulate/Operand 1 */ |
13 | sfrw(MACS, MACS_); |
14 | #define OP2_ 0x0138 /* Operand 2 */ |
15 | sfrw(OP2, OP2_); |
16 | #define RESLO_ 0x013A /* Result Low Word */ |
17 | sfrw(RESLO, RESLO_); |
18 | #define RESHI_ 0x013C /* Result High Word */ |
19 | sfrw(RESHI, RESHI_); |
20 | #define SUMEXT_ 0x013E /* Sum Extend */ |
21 | const_sfrw(SUMEXT, SUMEXT_); |