I need to define the constant memory address/offset in i386 gcc inline asm,
i.e. immediate value without $ prefix, so I can use it as a constant offset for
some memory address statement.
  E.g. I want to access different fields of the same structure through a single
base register containing pointer to this structure or access different areas of
static data by using both base and index registers to construct complete
address.

Something like this:
    "movl %0(%%ebx), %%eax"    "\n\t"
    "movl %1(%%ebx), %%edx"    "\n\t"
    "movl %2(%%ebx,%%esi,4), %%ecx"    "\n\t"
where %0, %1, %2 are some constant paramenters (may be numeric constant or
external symbol or constant expression with external symbols) of assembler
statement.

Is there any way to do that?

Greetings,

Serge Dundich

PS: I wasn't sure what mailing list this message is the most appropriate for.
    So I posted it both here and in "gcc-help". I hope that's ok.

Reply via email to