【发布时间】:2013-01-12 23:00:11
【问题描述】:
我需要从 C 函数访问参数
void printk(char* msg);
并将其存储到 ESI 中。但是我做不到
mov $msg, %esi
或
mov $_msg, %esi
两者都返回链接器错误(说符号 msg 或 _msg 未定义。我很确定我可以通过从堆栈中读取来访问 msg,但在我的汇编代码中访问符号 msg 会更容易。是这个甚至可能在 GCC 中?
【问题讨论】:
-
你能显示更多上下文吗?
-
我的意思是真的没什么。我只是尝试使用内联汇编将参数消息移动到 ESI 中,使用 asm("mov $msg, %esi");编译器说 msg 是未定义的。
-
我认为你不能在 gcc 内联汇编中做到这一点。现在写一个答案。
标签: gcc gnu-assembler