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