我需要从C函数
访问一个参数void printk(char * msg);
并将其存储到ESI中。但是我无法做到
mov $msg, %esi
或
mov $_msg, %esi
两者都返回一个链接器错误(假设符号msg或_msg未定义。我很确定我可以通过从堆栈中读取来访问msg但是在我的汇编代码中访问符号msg会更容易。这是甚至可能在GCC?
答案 0 :(得分:1)
您不能在GCC内联汇编中引用类似的变量。我想你想要的东西:
ask("mov %[msg], %%esi",
: /* no outputs */
: [msg] "r" (msg)
: "esi");