【发布时间】:2017-03-15 12:28:05
【问题描述】:
您好,我有一个问题,我似乎无法声明 .data 。我用我的代码尝试了各种不同的东西,但它似乎总是在这部分中断
asm(
".data\n"
".file: .ascii \"/dev/mem\\000\"\n"
);
我还可以删除 .data 之后的任何信息,它仍然会在“.data”处中断。这是在带有 C 上的内联汇编的树莓派 2 上完成的。如果其余代码相关,请告诉我,但我很确定它不是。感谢您的帮助!
编辑:抱歉,我忘了包含错误消息
"错误:'方法名称在这里'的 .size 表达式不会计算为常量
【问题讨论】:
-
使用内联汇编基本上将全局变量声明为字符数组的原因是什么?这可以很容易地使用全局变量
char file[] = "/dev/mem";完成 -
至于您的问题,错误信息与您显示的代码不匹配。错误消息提到
.size不在您的代码中。另外,您确定要为标签使用前导点吗? -
最后,您使用的是什么编译器?哪个版本的?
-
不应该是
.section .data而不仅仅是.data吗? -
我的程序中根本没有提到“.size”,这就是为什么错误消息让我感到困惑并且编译器是 gcc (Debian 4.6.3-14+rpi1)跨度>
标签: c assembly raspberry-pi raspbian inline-assembly