如何访问asm中的数组?
char greet[] = "hello mate";
__asm__("\n\
movl foo, %eax\n\
");
如何将 greet[0]
移至 %eax
等寄存器中?
我的猜测:
char greet[] = "hello mate";
__asm__("\n\
movl $_greet, %ebx\n\
movl (%ebx), %eax\n\
");
但是,我遇到了内存错误。
char greet[] = "hello mate";
__asm__("\n\
movl foo, %eax\n\
");
How do I move greet[0]
into a register such as %eax
?
My guess:
char greet[] = "hello mate";
__asm__("\n\
movl $_greet, %ebx\n\
movl (%ebx), %eax\n\
");
But, I'm getting a memory error.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果
greet
是局部变量__asm__
将无法自动引用它。您可能需要使用汇编器模板:If
greet
is a local variable__asm__
would not be able to reference it automatically. You may need to use an assembler template: