[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-buildsystem
Subject:    __asm...
From:       michael () drueing ! de (=?iso-8859-1?Q?Michael_Dr=FCing?=)
Date:       2006-02-16 14:54:16
Message-ID: 002101c63308$e26bfa40$0100a8c0 () cyberstorm ! com
[Download RAW message or body]

IIRC it means simply a segment-override.
"mov EAX, [18h] " is the same as "mov EAX, DS:[18h]", because DS is the data
segment and if no other segment is given, DS is assumed to be used. 
Here's some info (look for "segment override"):
http://sig9.com/articles/att-syntax

(If I read it correctly, "movl %es:18h, %eax" should do the trick, although
I don't speak AT&T asm myself ;-)

Hope that helps
--Michael

> -----Original Message-----
> From: Ralf Habacker [mailto:ralf.habacker at freenet.de] 
> Sent: Thursday, February 16, 2006 3:40 PM
> To: kde-buildsystem at kde.org
> Subject: Re: __asm...
> 
> Paulo Moura Guedes schrieb:
> > It seems gcc support a different inline assembly sintax: 
> > asm("assembly code");
> >
> > If anyone who knows assembly would be so kind to port this 
> to gcc would be 
> > great. Documentation can be found here:
> > http://www-128.ibm.com/developerworks/library/l-ia.html
> > http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
> >
> >   
> Can anyone tell me what the instruction
> 
>     mov EAX, FS:[18h]
> 
> means. Does it means 
>    
>     add 18hex to the value of 'fs' register and store it into eax
> 
> This syntax seems something special and is not documented in 
> http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html
> 
> +------------------------------+------------------------------------+
> |       Intel Code             |      AT&T Code                     |
> +------------------------------+------------------------------------+
> | mov     eax,1                |  movl    $1,%eax             
>       |   
> | mov     ebx,0ffh             |  movl    $0xff,%ebx          
>       |   
> | int     80h                  |  int     $0x80               
>       |   
> | mov     ebx, eax             |  movl    %eax, %ebx                |
> | mov     eax,[ecx]            |  movl    (%ecx),%eax               |
> | mov     eax,[ebx+3]          |  movl    3(%ebx),%eax              | 
> | mov     eax,[ebx+20h]        |  movl    0x20(%ebx),%eax           |
> | add     eax,[ebx+ecx*2h]     |  addl    (%ebx,%ecx,0x2),%eax      |
> | lea     eax,[ebx+ecx]        |  leal    (%ebx,%ecx),%eax          |
> | sub     eax,[ebx+ecx*4h-20h] |  subl    -0x20(%ebx,%ecx,0x4),%eax |
> +------------------------------+------------------------------------+
> 
> 
> BTW: It seems to me that the original asm code seems to be 
> required only 
> because the used pthread release returns a wrong value for the stack. 
> Are I'm right with this suggestion or does it have a deeper reason, i 
> cannot see at now ?
> 
> Ralf
> 
> > Paulo
> >
> > On Wednesday 15 February 2006 18:44, Paulo Jorge Guedes wrote:
> >   
> >> Hi,
> >>
> >> I think __asm doesn't work with gcc :(
> >>
> >> d:/kde/trunk/kdelibs/kjs/collector.cpp: In static member function
> >> `static void KJS::Collector::markCurrentThreadConservatively()':
> >> d:/kde/trunk/kdelibs/kjs/collector.cpp:309: error: 
> expected `(' before
> >> '{' token
> >> d:/kde/trunk/kdelibs/kjs/collector.cpp:309: error: 
> expected asm body
> >> before '{' token
> >> d:/kde/trunk/kdelibs/kjs/collector.cpp:310: error: `MOV' undeclared
> >> (first use this function)
> >> d:/kde/trunk/kdelibs/kjs/collector.cpp:310: error: (Each undeclared
> >> identifier is reported only once for each function it appears in.)
> >> d:/kde/trunk/kdelibs/kjs/collector.cpp:310: error: 
> expected `;' before
> >> "EAX"
> >> d:/kde/trunk/kdelibs/kjs/collector.cpp:310:22: invalid 
> suffix "h" on
> >> integer constant
> >> make[2]: *** [kjs/CMakeFiles/kjs.dir/collector.obj] Error 1
> >> make[2]: Leaving directory `/d/kde/trunk/kdelibs'
> >> make[1]: *** [kjs/CMakeFiles/kjs.dir/all] Error 2
> >> make[1]: Leaving directory `/d/kde/trunk/kdelibs'
> >> make: *** [all] Error 2
> >>
> >> Paulo
> >> _______________________________________________
> >> Kde-buildsystem mailing list
> >> Kde-buildsystem at kde.org
> >> https://mail.kde.org/mailman/listinfo/kde-buildsystem
> >>     
> > _______________________________________________
> > Kde-buildsystem mailing list
> > Kde-buildsystem at kde.org
> > https://mail.kde.org/mailman/listinfo/kde-buildsystem
> >   
> 
> _______________________________________________
> Kde-buildsystem mailing list
> Kde-buildsystem at kde.org
> https://mail.kde.org/mailman/listinfo/kde-buildsystem
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic