当前位置: 技术问答>linux和unix
下面是mysql5.0源代码中嵌入的一条汇编语句,哪位老大能给解释一下?
来源: 互联网 发布时间:2015-05-13
本文导语: ulint res; ulint* lw; asm volatile("movl $1, %%eax; xchgl (%%ecx), %%eax" : "=eax" (res), "=m" (*lw) : "ecx" (lw)); ulint好像是unsigned long int 请问:里面的%%,$1,l...
ulint res;
ulint* lw;
asm volatile("movl $1, %%eax; xchgl (%%ecx), %%eax" :
"=eax" (res), "=m" (*lw) :
"ecx" (lw));
ulint好像是unsigned long int
请问:里面的%%,$1,l,m都是什么意思?这条汇编语句又是什么意思?
期盼着您的指教!
ulint* lw;
asm volatile("movl $1, %%eax; xchgl (%%ecx), %%eax" :
"=eax" (res), "=m" (*lw) :
"ecx" (lw));
ulint好像是unsigned long int
请问:里面的%%,$1,l,m都是什么意思?这条汇编语句又是什么意思?
期盼着您的指教!
|
这里有一篇文章介绍的比较详细,你自己去看一下吧
http://pagoda-ooos.51.net/os_book/prepare/preparing-asm_3.htm
http://pagoda-ooos.51.net/os_book/prepare/preparing-asm_3.htm
|
%%eax就是eax
&1就是1
l表示long
m表示内存操作数约束
如果对gcc的内联asm不熟还是看看相关的文档比较好(其实很简单 只是格式上和intel完全不同了)
&1就是1
l表示long
m表示内存操作数约束
如果对gcc的内联asm不熟还是看看相关的文档比较好(其实很简单 只是格式上和intel完全不同了)
|
Using linux? use command "info gcc", perhaps you would find something you are intersted.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。