DSPRelated.com
Forums

Array passing in assembly

Started by Moin Syed May 24, 2001
Hi ,
      I want to pass an array from C language to assembly language program ,am usign visual dsp++ ver 7.0 for adsp 218x.
 
 
int passarray(int x[], int y[]);
 
main()
{
int i;
int g[3] = {1,2,3};
int t[3] ={0};
passarray(g,t);
for(i=0;i<3;i++)
 
printf("%d\n",t[i]);
 
}
 
 The assembly module here is for direct addressing  should i pass the arrguments into I6 .
 
.section/code program;
 
.global _passarray;
 
_passarray:  
        M5=1;
        I6=I4;
        MODIFY(I6,M5);
        AR=DM(I6,M5);           /* Ist arg */
        AY1=DM(I6,M5);          /* 2nd arg */
        AX0 =DM(I6,M5);
...........................................................
      Do processing and pass return values into
      AX1
      RTS;
 
/* C  equivalent source code for simple passing an array */
 
int passarray(int x[], int y[]);
 
main()
{
int i;
int g[3] = {1,2,3};
int t[3] ={0};
passarray(g,t);
for(i=0;i<3;i++)
 
printf("%d\n",t[i]);
 
}
 
int passarray(int x[],int y[])
{
int i;
for(i=0;i<3;i++)
y[i] = x[i];
}