www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Inline Assembler: Getting the offset of a label. How?

reply poly <p0lycyb0rg gmail.com> writes:
Hello d folk,

I have a question about D 1.0 inline asm. Has anyone an idea how to get
the offset of a label without using "call Label1", then "pop eax".
Actually there would be an offsetof but it seems not to work.

In other (inline) assemblers I'd just use offset or addr, but it seems
that my Win32 DMD 1.037 does not understand it.

I'd be really helpful for any solution, because I need it to write
position independend code. Thanks.

regards, pimp
Dec 08 2008
parent reply Kagamin <spam here.lot> writes:
poly Wrote:

 I have a question about D 1.0 inline asm. Has anyone an idea how to get
 the offset of a label without using "call Label1", then "pop eax".
 Actually there would be an offsetof but it seems not to work.
mov eax, Label1
Dec 08 2008
parent reply poly <p0lycyb0rg gmail.com> writes:
Kagamin schrieb:
 poly Wrote:
 
 I have a question about D 1.0 inline asm. Has anyone an idea how to get
 the offset of a label without using "call Label1", then "pop eax".
 Actually there would be an offsetof but it seems not to work.
mov eax, Label1
Hi Kagamin, I've just tried this piece of Code: [snip] asm { call Label1; Label1: pop ECX; mov EAX, Label1; //error reported on this line } [/snip] And I still got an error like: "undefined identifier 'Label1'". Do you have maybe another solution or know whats wrong here? Thanks. regards, the pimp
Dec 08 2008
parent Kagamin <spam here.lot> writes:
poly Wrote:

 	asm
 	{
 		call Label1;
 		Label1: pop ECX;
 		mov EAX, Label1; //error reported on this line
 	}
I tried several tricks, seems like compiler doesn't support this.
Dec 09 2008