2017-01-09 5 views
0

3 매개 변수가있는 함수를 작성해야합니다. 모든 매개 변수는 구조체이며, 주 파일은 C 및 ARM 어셈블리의 함수로 작성됩니다. 그래서 구조체의 데이터를 조작하는 방법을 묻고 싶었습니다. 모든 데이터가 모든 레지스터에 개별적으로 저장되기 때문입니다.구조의 ARM 어셈블리 배열

-

Struct contains an int and an array 
Struct { int a, int b[] } 

function(struct a, struct b, struct c) 

은 그래서 어셈블리의 데이터는

R1=struct a. int b[0] 내가 스택에 모든 것을 밀어 시도 R0=struct a. int a처럼 저장,하지만 같은 일을 얻는다. 그렇다면 모든 구조체에서 배열을 조작하는 방법은 무엇입니까?

답변

1

C에서 수행하려는 작업을 작성한 다음 컴파일하여 디스 어셈블리하십시오. GUI 컴파일러에는 중간 어셈블리를 저장할 수있는 옵션이 있습니다. 다른 명령 줄 컴파일러는 같아야합니다. 또는 objdump -d *.obj을 실행하여 개체 파일을 디스 어셈블 할 수 있습니다.

모든 플랫폼과 ABI는 약간 다르므로 컴파일러에서 예제를 제공하는 것이 좋습니다.