How come your compiler likes the __asm__ instead of just asm ? mine throws a fit ^^<br><br><div class="gmail_quote">On Mon, Mar 23, 2009 at 10:54 AM, Andrew Clayton <span dir="ltr">&lt;<a href="mailto:andrew@digital-domain.net">andrew@digital-domain.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">On Mon, 23 Mar 2009 09:25:04 +0000, Nicholas Walker wrote:<br>
<br>
&gt; gcc on linux :)<br>
&gt;<br>
&gt; it seems that it prefers just &quot;asm&quot; over __asm__<br>
&gt;<br>
&gt; so, compiling:<br>
&gt;<br>
&gt;<br>
&gt; #include&lt;stdio.h&gt;<br>
&gt; unsigned long sp(void)<br>
&gt; {<br>
&gt;     asm(&quot;movl %esp, %eax&quot;);<br>
&gt; }<br>
&gt;<br>
&gt; void main(void)<br>
&gt; {<br>
&gt;     printf(&quot;0x%x\n&quot;, sp());<br>
&gt; }<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; returns:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; tel0s@bufferoverflow:~$ cd Desktop/<br>
&gt; tel0s@bufferoverflow:~/Desktop$ gcc -o sp sp.c<br>
&gt; sp.c: In function ‘main’:<br>
&gt; sp.c:9: warning: format ‘%x’ expects type ‘unsigned int’, but<br>
&gt; argument 2 has type ‘long unsigned int’<br>
&gt; sp.c:8: warning: return type of ‘main’ is not ‘int’<br>
&gt; tel0s@bufferoverflow:~/Desktop$<br>
&gt;<br>
&gt;<br>
&gt; changing main to int main() kills the last error it seems:<br>
&gt;<br>
&gt; tel0s@bufferoverflow:~/Desktop$ gcc -o sp sp.c<br>
&gt; sp.c: In function ‘main’:<br>
&gt; sp.c:9: warning: format ‘%x’ expects type ‘unsigned int’, but<br>
&gt; argument 2 has type ‘long unsigned int’<br>
&gt; tel0s@bufferoverflow:~/Desktop$<br>
<br>
</div>OK, so it&#39;s not a compile failure, just a warning.<br>
<br>
#include &lt;stdio.h&gt;<br>
<br>
unsigned int sp()<br>
{<br>
        __asm__(&quot;movl %esp, %eax&quot;);<br>
}<br>
<br>
int main()<br>
<div class="im">{<br>
        printf(&quot;0x%x\n&quot;, sp());<br>
<br>
</div>        return 0;<br>
}<br>
<br>
Is the cleanest I got it.<br>
<br>
$ gcc -Wall -o sp sp.c<br>
sp.c: In function ‘sp’:<br>
sp.c:6: warning: control reaches end of non-void function<br>
<font color="#888888"><br>
<br>
Andrew<br>
</font><div><div></div><div class="h5"><br>
_______________________________________________<br>
dundee GNU/Linux Users Group mailing list<br>
<a href="mailto:dundee@lists.lug.org.uk">dundee@lists.lug.org.uk</a>  <a href="http://dundee.lug.org.uk" target="_blank">http://dundee.lug.org.uk</a><br>
<a href="https://mailman.lug.org.uk/mailman/listinfo/dundee" target="_blank">https://mailman.lug.org.uk/mailman/listinfo/dundee</a><br>
Chat on IRC, #tlug on <a href="http://dundee.lug.org.uk" target="_blank">dundee.lug.org.uk</a></div></div></blockquote></div><br><br clear="all"><br>-- <br><br><br>Nick Walker<br>Vice President : The Linux Society<br>UAD Ethical Hacker<br>