Ok, I'm almost there:
If I dereference the memory location, then add to it, then re-reference
it, I can get close:

    __asm__("\tDADD %1, %0": "=g" (total) : "n" (25) );
    1374:       b2 a0 19 00 00 02       dadd    #25,    &0x0200 ;#0x0019
    __asm__("\tDADC %0": "=g" (*((&total)+1) ) );
    137a:       82 a3 04 02             dadc    &0x0204         ;

Not sure how to get it to get to 0x0202.  Perhaps if it's declared as an
int it would increment one "int" length (one word).

Also. I just noticed an error.  This code (the asm above and the += test
below) sits inside the BT IRQ.  I have "total" declared global and
volitile, but this code is generated:

    total += 25;
    1376:       b2 50 19 00 04 02       add     #25,    &0x0204 ;#0x0019
    137c:       82 63 06 02             adc     &0x0206         ;

Quite obviously, these two code snippits are referencing the exact same
veriable: total.  However, the += one is somehow looking at the wrong
memory location??!? When this variable is accessed in main, it is
referencing it as 0x0200.  This is confusing.  I can write a simplified
test program if necessary.

Any ideas?
-Mark


-----Original Message-----
From: mspgcc-users-ad...@lists.sourceforge.net
[mailto:mspgcc-users-ad...@lists.sourceforge.net] On Behalf Of Mark
Stokes
Sent: Friday, January 03, 2003 1:59 PM
To: mspgcc-users@lists.sourceforge.net
Subject: [Mspgcc-users] ASM accessing high word of long int?


I'm having trouble telling my assembly about a high byte of a long int.
Is there an easy way to do this?
Example:

void DADDLongInt( unsigned long int total )
{
// for now, just add 25 each time
    __asm__("\tDADD   %1, %0\n\tDADC   %0": "=g" (total) : "n" (25) );
}
Written another way:
void DADDLongInt( unsigned long int total )
{
// for now, just add 25 each time
    __asm__("\tDADD   %1, %0": "=g" (total) : "n" (25) );
    __asm__("\tDADC   %0": "=g" (total) );
}
What do I use for the operand of the second assembly instruction?  I
want to just say "(total(2))" or "(total+2)", but neither work.

Thanks
-Mark



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Mspgcc-users mailing list
Mspgcc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mspgcc-users


Reply via email to