所以我有这两个文件,一个是.c
,一个是.s
。这些只是测试文件,所以我可以使用ARM脚本来解决C的问题,但对于我来说,我无法让它们一起工作。我想知道我是否可以通过使用Visual Studio或VS代码(或任何其他IDE,如果你们都知道)来使这更容易。
这是我的代码:
ARM
.global add2
add2:
stmfd sp!, {v1-v6, lr} @ 'standard' entry, save registers on the stack
add a1, a1, a2 @ do the addition requested
ldmfd sp!, {v1-v6, pc}
C
#include <stdio.h> /* standard input and output */
#include <stdlib.h> /* standard library */
extern int add2(int i, int j); /* tell the compiler that the routine is not defined here */
int main(int argc, char * argv[]) /* entry point to the program */
{
int i, j; /* declare the variable types */
int answer;
i = 5; /* give the variables values */
j = 20;
answer = add2(i, j); /* call the assembly language routine */
printf("result is : %d\n", answer); /* print out the answer */
exit(0); /* leave the driver program */
}
目前我用来链接它们的奇怪的java程序给了我错误
“D:\ Joe \ College Stuff \ CS 252 \ add.s:1:错误:错误指令`.global add2'”
任何帮助将不胜感激
答案 0 :(得分:3)
要修复此错误,请将编辑器配置为不在文件开头插入BOM(字节顺序标记)。您可以通过选择“另存为”然后选择不同的编码(例如“ASCII”或“UTF-8无BOM”或类似的东西)来完成此操作。如果您可以告诉我们您用于创建ARM程序集文件的编辑器,我可以为您提供更具体的帮助。
答案 1 :(得分:1)
对于遇到此问题的未来人员否,您无法使用Visual Studio中的C运行ARM脚本。这样做的一种方法是从命令行,我从这个问题中找到了:
https://feedback.azure.com/forums/263030-azure-cosmos-db/category/321994-mongodb-api