这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 【求助】大家帮忙看看这个程序!!

共2条 1/1 1 跳转至

【求助】大家帮忙看看这个程序!!

院士
2006-09-17 18:14:16     打赏
【求助】大家帮忙看看这个程序!!



关键词: 求助     大家     帮忙     看看     这个     程序    

院士
2006-12-22 22:43:00     打赏
2楼
问 我在c语言中想要调用线性汇编函数,主程序有一个结构体,汇编里面连接总是报错,代码如下:




short a1[2][2]={1,2,3,4};
short b1[2][2]={6,7,8,9};
short *a,*b;
typedef struct zz{




short *x;
short *y;
}z;




z d;
z *p;




short abc(struct zz *p);





int main()
{





short c;
p=&d;





p->x = &a1[0][0];
p->y = &b1[0][0];

c = abc(p);




LOG_printf(&trace,"%d",c);




return c;
}




线性汇编为:




.global _abc

_abc: .cproc p




.no_mdep

.mptr a1,a2

.mptr c1,c2




.reg t1,a1,a2,sum,sum1,sum2,sum3

.reg b0,b1

.reg c1,c2

zero sum

mvk 0,t1

mv d.x,a1

mv d.y,a2

loop: .trip 2




ldw *a1++,c1

ldw *a2++,c2

mpy c1,c2,sum1

mpyh c1,c2,sum2

sadd sum2,sum1,sum3

sadd sum3,sum,sum

bdec loop, t1

.return sum

.endproc




实现功能十分简单,没用到结构体的时候一切正常,加入结构体后,连接时说结构体没有用声明,哪位大侠能指点一下,为什么啊?

用的使c64片子
1: 个人见解先把线形汇编的那部分是用C语言写出一个相当功能的函数,编译完以后 再在其汇编代码上修改替代现在的部分 估计就不会有什么问题了. 2: 大侠们指教我是按照c程序改写线性汇编的,c编译器编译完以后和我写的代码对不上,我不知道它是怎么处理结构体的

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]