Visual Studio可以用于使用ARM脚本运行C代码吗?

时间:2017-10-03 03:04:44

标签: c assembly visual-studio-2015 arm visual-studio-code

所以我有这两个文件,一个是.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'”

任何帮助将不胜感激

2 个答案:

答案 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