On Mon, 11 Jan 2010, loody wrote:
> I have some question about extended assembly in mips
> 1. is mips assembly in AT&T syntax?
> from the document I google from the web, they emphasize that the
> GNU C compiler use AT&T syntax, and they list some example about intel
> instructions.
I'm not sure if the "AT&T syntax" term has any meaning except for Intel
architecture processors.
> But when I write the extended assembly in mips, I find it seem not AT&T
> syntax.
> The order of input and output is still the same as original mips instructions.
> Does that mean GNU compiler for mips doesn't use AT&T syntax?
GNU as for MIPS processors uses the same syntax original tools provided
by MIPS Computer Systems and Silicon Graphics companies used. This syntax
is used throughout all the documentation available and has nothing to do
with the syntax used for Intel architecture processors (in particular, the
specific instruction and not the data flow direction determines the order
of operands).
> 2. how do we know which parameter is for %0,%1,etc?
>
> suppose my src is as below
> asm(
> "add %0, %1, %2\n"
> "sub %0,%2, %1\n"
> :"=r" (count)
> :"r" (temp), "r" (count)
> );
> how do I know which parameter is %0, %1 and %2?
> there 2 variable, count and temp above, but in assembly it use 3 parameters.
> how to match them?
See the Extended Asm chapter of the GCC manual.
Maciej
|