Thank You for Your answer, but:
Operations order?
The job of this little programme is to multiply an unsigned char "wert" with
an unsigned number 180 to an unsigned int.
With a further pair of brackets it is the same problem:
----------------------------------------------------------------------------
---------------------------------
unsigned int multiplikation (unsigned char wert)
{
return (unsigned int)(((unsigned int)wert)*((unsigned int)180));
0: 02 12 push r2 ;
2: 32 c2 dint
4: 03 43 nop
6: c2 4f 30 01 mov.b r15, &0x0130 ;
a: c2 43 31 01 mov.b #0, &0x0131 ;r3 As==00
e: b2 40 b4 ff mov #-76, &0x0138 ;#0xffb4 >>word
addressing to 0x0138/0x0139; why 0xff in the high byte?<<
12: 38 01
14: c2 43 39 01 mov.b #0, &0x0139 ;r3 As==00 >>no effect,
because HW Multipier is startet one instruction before<<
18: 1f 42 3a 01 mov &0x013a,r15 ;0x013a
1c: 32 41 pop r2 ;
}
1e: 30 41 ret
----------------------------------------------------------------------------
---------------------------------
mov #-76, &0x0138 ;#0xffb4 --> why not: mov.b #180, &0x0138
Marcus
> this is a feature actually:)
> you forgot about operations order.
> ~d
>
>
> On Wednesday 20 October 2004 12:48, Else Marcus wrote:
> > Hello!
> >
> >
> > ...
> >
> >
> > Used options for mspgcc: -x c -c -g -O2 -Wall -mmcu=msp430x147
> >
> > Release: mspgcc-20040723.exe
> >
> > Is the different behavior between examples 1.1 and 1.2 and
> between 2.1 and
> > 2.2 a bug or a feature?
> > Or is it my mistake?
> >
> > Marcus Else
> >
>