当前位置: 技术问答>linux和unix
内联汇编求助
来源: 互联网 发布时间:2016-11-13
本文导语: #include "stdio.h" int main( int argc, char* argv[]) { int cpu_iid; __asm__ __volatile__( "mov %0, 1n" :"=m"(cpu_iid) : ); } $gcc test.c -o a.out test.c: Assembler messages: test.c:6: Error: too many memory referenc...
#include "stdio.h"
int main( int argc, char* argv[])
{
int cpu_iid;
__asm__ __volatile__(
"mov %0, 1n"
:"=m"(cpu_iid)
:
);
}
$gcc test.c -o a.out
test.c: Assembler messages:
test.c:6: Error: too many memory references for `mov'
这是怎么回事,哪里错了?
谢谢
int main( int argc, char* argv[])
{
int cpu_iid;
__asm__ __volatile__(
"mov %0, 1n"
:"=m"(cpu_iid)
:
);
}
$gcc test.c -o a.out
test.c: Assembler messages:
test.c:6: Error: too many memory references for `mov'
这是怎么回事,哪里错了?
谢谢
|
这里是在用mov给一个内存单元赋值为一个立即数,需要指定这个内存单元的大小,是1个、2个、还是4个字节
AT&T汇编里面是用 movb(byte) movw(word) movl(long)
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。