IT관련 지식들 2010. 3. 6. 09:49
armcc , armasm, armlink가 있으면 arm 32bit명령어 컴파일이 가능

--- main.c

#include <stdio.h>

int square(int i) ;

int main ()
{
int i ;
for (i=0 ; i < 10 ; i++)
{
printf ("Square of %d is %d\n", i, square(i));
}
exit (0);
}

--- square.s

AREA |.text|, CODE, READONLY

EXPORT square

; int square (int i)
square
MUL r1, r0, r0 ; r1 = r0 * r0
MOV r0, r1 ; r0 = r1
MOR pc, lr ; r0를 리턴
END

---compile
armcc -c main1.c
armasm square.s
armlink -o main.axf main1.o square.o

만약 Thumb 코드라면

--- square.s

AREA |.text|, CODE, READONLY

EXPORT square

; int square (int i)
square
MUL r1, r0, r0 ; r1 = r0 * r0
MOV r0, r1 ; r0 = r1
BX lr ; r0를 리턴
END

--- complie

tcc -c main1.c
armasm -apcs / interwork square2.s
armlink -o main2.axf main1.o square2.o


posted by 동글동글82
: