Need help with GNU assembly
Ted Mittelstaedt
tedm at toybox.placo.com
Mon Jun 18 06:14:51 UTC 2007
http://asm.sourceforge.net/intro.html
> -----Original Message-----
> From: owner-freebsd-questions at freebsd.org
> [mailto:owner-freebsd-questions at freebsd.org]On Behalf Of Patil, Kiran
> Sent: Thursday, June 14, 2007 2:11 PM
> To: freebsd-questions at freebsd.org
> Cc: Patil, Kiran
> Subject: Need help with GNU assembly
>
>
> Hi All,
>
>
>
> I am trying to use GNU assembly. I am trying simple thing such as ,
> moving content of memory location into general purpose register (ax).
>
>
>
> I have following code :
>
>
>
> struct context {
>
>
>
> unsigned long mask[8];
>
> } CONTEXT;
>
>
>
> int main()
>
> {
>
> CONTEXT sr;
>
> sr.mask[5] = 0x8FED;
>
>
>
> __asm ( "movw %0, %ax" : : "m" (*(unsigned
> short*)sr.mask[5]) );
>
> return 0;
>
> }
>
>
>
> Compiler complains with error "bad substitution directive in asm
> instruction".
>
>
>
> I tried changing the code something like this :
>
>
>
> __asm ( "movw %0, %ax" : : "m" (*(unsigned short*)sr.mask+5) );
>
>
>
> Still error is same, then I tried following:
>
>
>
> Unsigned short* ptemp = &sr.mask[5];
>
> __asm ( "movw %0, %ax" : : "m" (*(unsigned short*)ptemp) );
>
> But still no luck, compiler reported same error as mentioned above
>
>
>
> Any help is appreciated. Please let me know where I am mistake.
>
>
>
> Thanks,
>
> -- Kiran P.
>
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to
> "freebsd-questions-unsubscribe at freebsd.org"
>
>
More information about the freebsd-questions
mailing list