Nul*_*oid 5 assembly gcc inline-assembly
在尝试编译我的项目时,使用一些第三方标题,使用mingw 4.4,我遇到了以下错误:
汇编程序消息:
错误:行尾的垃圾邮件,第一个无法识别的字符是'"'
错误:未知伪操作:'.previous'
我在其中一个包含的标题的末尾找到了这段代码:
__asm__(".section \".plc\"");
__asm__(".previous");
Run Code Online (Sandbox Code Playgroud)
由于我对在线汇编程序指令没有任何经验,我用Google搜索了解释,但找不到我的两个基本问题的答案.什么是实际__asm__(".previous");做什么以及为什么有人会把它放在头文件的末尾.
这些是__asm__整个项目中的唯一指令.我可以安全地删除它们吗?或者有没有办法定义.previous以使其成为一个已知的伪操作?
请赐教!
.previous是一个指令,允许您在两个精灵部分之间来回交换.它是一种允许更密集的汇编文件的快捷方式,例如,您可以在代码流中声明初始化数据,反之亦然.
例如,假设您有一个包含数据和代码段的汇编程序文件.
如果你想 - 在函数中间 - 在数据段中声明一个常量,你可以使用.previous语句,如下所示:
nop // some code
.previous // swaps current section (code) with previous section (data)
MyConstant:
.word 0x0001 // some data
.previous // swaps curent section (data) with previous section (code)
nop // more code
Run Code Online (Sandbox Code Playgroud)
更多信息可以在参考手册中找到:
http://sourceware.org/binutils/docs-2.19/as/Previous.html#Previous
| 归档时间: |
|
| 查看次数: |
1645 次 |
| 最近记录: |