尝试编译Assembly函数时出现错误消息

时间:2014-03-27 18:26:36

标签: assembly arm

所以我正在尝试使用c驱动程序和arm程序集函数,该函数采用一系列int并检查所有都是正数并与驱动程序一起使用。

驱动器

#include <stdio.h>
#include <stdlib.h>

 extern int absarray( int array[], int size ) ;

 int main( int argc, char * argv[] )
{
int array[] = {1, 3, -5, -252, 280, -332 } ;
int asize = sizeof(array) / sizeof(int) ;
int result ;
int i ;

result = absarray( array, asize ) ;
for( i = 0 ; i < asize ; i++ )
    printf( " %d  ", array[i] ) ;
printf( "\n" ) ;
exit( 0 ) ;

}

和功能

AREA    Program, CODE, READONLY
ENTRY

Main

   EOR R3,R3,R3; Clear R3

   ADD R3,R1,R3; load R3 with R1 ie address

   EOR R0,R0,R0; clear R0

   ADD R0,R1,R0; load R0 with the size

   EOR R4,R4,R4; clear R4

Loop

   LDR R5,[R3] ; load R5 with the value at address

   ADD R4,R4,R5 ; add R4 with the value present at address,signed

   ADD R3,R3,#4; increment address pointer by 4 as int is 4 bytes

   SUB R0,R0,#1; decrease the count

   CMP R0,#0; compare the count with 0 to check for end of array

   BNE Loop ;loop back if count is not 0

   MOV PC,R14 ; load Pc with the return address with the result stored in R4

END

当我尝试编译时

 arm-non-eabi-gcc -o test -c -g test1.s

我得到了一堆关于整个代码的错误说明

当我将其更改为.asm

 arm-non-eabi.gcc -o test -c -g test1.asm

我收到错误,说链接器输入文件未使用,因为链接未完成

如何让这两个相互协作并显示c驱动程序中给出的输出?

0 个答案:

没有答案