急问懂LINUX汇编的牛人!!!
#include <stdio.h>;
main()
{
int x=2,y=8,z=16;
__asm__(
"mov %0,%%eax
mov %1,%%ebx
mov %2,%%ecx
mov %%eax,%0
mov %%ebx,%1
mov %%ecx,%2"
:"=r"(x),"=r"(y),"=r"(z)
:"r"(x),"r"(y),"r"(z));
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
为什么输出结果竟然是:
x=16,y=8,z=2
Segmentation fault
我的原意是分别将x,y,z读入ax,bx,cx再读出来,操作数占位符应该怎么写啊???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论