Can't declare .data in inline assembly

我怕爱的太早我们不能终老 提交于 2019-12-13 07:53:44

问题


Hello I have a problem where I can't seem to declare .data . I've tried various different things with my code and it always seems to break at this part

    asm(
       ".data\n"
       ".file:  .ascii \"/dev/mem\\000\"\n"
    );

I can also remove any information after the .data and it will still break at '.data'. This is done on a raspberry pi 2 with inline assembly on C. If the rest of the code is relevant let me know but I'm pretty sure it's not. Thanks for any help!

Edit: Apologies I forgot to include the error message

"ERROR: .size expression for 'method name here' does not evaluate to a constant


回答1:


You don't restore the section before the end of the inline assembly, and gcc generate code that relies on inline assembly not changing the current section.



来源:https://stackoverflow.com/questions/42809752/cant-declare-data-in-inline-assembly

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!