当前位置: 技术问答>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)