用gcc编译在asm中使用C ++中的数据有什么问题?

我有这样的代码:

int main()
{
    char input_string[MAX_LENGTH];
    char output_string[MAX_LENGTH];

    cin.getline(input_string,80,'\n');

    asm
    (
        "lea eax,input_string\n"
        "mov esi,eax\n"
        "lea eax,output_string\n"
        "mov edi,eax\n"

        // SOME CODE

我得到了错误:

/usr/bin/ld: /tmp/ccuMmjjG.o: in function `main':
lr4_comments.cpp:(.text+0x110): undefined reference to `input_string'
/usr/bin/ld: lr4_comments.cpp:(.text+0x118): undefined reference to `output_string'
collect2: error: ld returned 1 exit status

我使用:

g++ -masm=intel -m32 -o main main.cpp

采用Intel语法正确执行此操作的方式是什么? 附言添加“ .intel_syntax;”什么也不做,只会增加额外的错误。

bill58702738 回答:用gcc编译在asm中使用C ++中的数据有什么问题?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3123077.html

大家都在问