asm() input arguments and indirect addressing

Prefect alias
Fri Sep 17 15:26:00 GMT 1999


I have the following little 68k asm code:

	asm("     ......
		movem.l		(%0),%%a0/%%d0-%%d7	\n
                           ...... " : : "m" (0x00007464));

This is for a 68000 (in the TI-92+) and my question is: what
constraint do I use to get this code:

	asm("     ......
		movem.l		(0x00007464),%%a0/%%d0-%%d7	\n
		...... ");

where 0x00007464 is an absolute address, which might me in a #define:d
value or something.

For some strange reason "m" creates this:

	asm("     ......
		movem.l		-$32(%pc),%%a0/%%d0-%%d7	\n
		...... ");

...and "V" or "p" won't work.

Any way of getting a numerical constant into an asm() string like this
would greatly ease my programming :-)

If it is possible to do it *without* asm() arguments (by something
equivalent to putting a #define:d constant directly into the asm(""))
it would be even better, but I'm not hoping for too much there...



More information about the Gcc-help mailing list