이 두 파일이 있으므로 하나는 .c
이고 하나는 .s
입니다. 이것들은 테스트 파일 일 뿐이므로 ARM 스크립트를 사용하여 C 작업을 수행 할 수는 있지만, 필자의 경우에는 함께 사용할 수 없습니다. 나는 Visual Studio 또는 VS 코드 (또는 다른 IDE를 사용하여 쉽게 알 수 있다면)를 사용하여 더 쉽게 만들 수 있는지 궁금합니다. 여기 Visual Studio를 사용하여 ARM 스크립트로 C 코드를 실행할 수 있습니까?
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 */
}
현재 내가 그들을 연결하기 위해 사용하고 이상한 자바 프로그램은 나에게 오류
을주고있다"D:\Joe\College Stuff\CS 252\add.s:1: Error: bad instruction ` .global add2'"
도움이 되셨습니까?
그  부분은 .... 들여 또는 공백을 사용해보십시오 파일 인코딩 문제처럼 보이는 돈 ':하지만 그 일을하는 한 가지 방법은 내가이 질문에서 발견 명령 줄에서입니다 들여 쓰기를하고 무슨 일이 일어나는 지보십시오. 무슨 "이상한 자바 프로그램"? 명시 해주세요! – rickythefox
이것은 "ARM 스크립트"가 아닙니다. ARM 어셈블리 코드처럼 보입니다 (특정 구문에 익숙하지 않더라도 AT & T와 인텔 스타일 등 다른 기본 구문 언어에 대한 구문이 다릅니다). – Dai
여기서는 Visual Studio가 도움이되지 않습니다. 어셈블러를 실행하여 ARM 어셈블리 파일을 실행 가능 ARM 객체 파일로 변환하고 C 프로그램과 정적으로 링크하는 방법을 배워야합니다. Visual Studio의 Visual C++ 구성 요소는 실제로 C 도구 체인이 아닙니다 (C99로 확인조차하지 않습니다). 명령 줄 도구 만 사용하고 교사/교수로부터 지시를 받아야합니다. 또한 Windows를 사용 하시겠습니까? 이러한 종류의 작업은 크로스 컴파일 기능을위한 Linux 시스템에서 가장 잘 수행됩니다. – Dai