您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]用汇编语言编写函数
本帖共有451个阅读者
发表帖子 发表投票 回复主题
[求助]用汇编语言编写函数
minglfeng(论坛新手)
minglfeng
头衔:社区公民
帮派:无帮无派
帖数:18
金钱:267
积分:25
注册时间:2012/7/25
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]用汇编语言编写函数

最近看前辈写的代码,其中算法部分用汇编写的,有些地方不太明白,以下是求和算法的代码

/****************************************************

求和计算

//void AsmAddProcess2(SWORD *pswResult,SWORD* pswAdd1,SWORD *pswAdd2,int nCount)

// SWORD* pswResult : 处理结果存放缓冲区,R0

// SWORD* pswAdd1: 被加数,R1

// SWORD* pswAdd2: 加数,R2

// int nCount       : 个数,

*****************************************************/

.global _AsmAddProcess2;

_AsmAddProcess2:

LINK 0x00;

[ --sp ] = (P5:3);              (1)

[ --sp ] = LC0;

[ --sp ] = LB0;

[ --sp ] = LT0;

P0       = R0;//处理结果缓冲区            (2)

P1       = R1;//被加数

P2       = R2;//加数

P3       = [ FP + 0x14 ];//处理个数

lsetup(LOOP_ADDPROCESS_START2,LOOP_ADDPROCESS_END2) lc0 = P3;

LOOP_ADDPROCESS_START2: R0  = w[ P1++ ](x) ;

     R1  = w[ P2++ ](x) ;

R2  = R0 + R1;

LOOP_ADDPROCESS_END2: w[ P0++ ] = R2;

LT0    = [ sp++ ];

LB0    = [ sp++ ];

LC0    = [ sp++ ];

(P5:3) = [ sp++ ];

P0 = [ FP + 0x4 ] ;

UNLINK ;

JUMP ( P0 ) ;

_AsmAddProcess2.end:

1、入栈操作时,只将(p5:3)入栈,P0P1P2不需要入栈么

2、在用汇编语言编写函数时,函数参数的值都是自动存放在R0R1R2里么,当多余3个参数时,第四个参数放在那里呢


好好工作
等级:论坛新手 参考IP地址:*.*.*.*
2013/3/31 23:12:26
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
不会,你看懂函数功能用C写吧,汇编写不出大程序

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/4/1 11:57:43
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159355 Call, 1 Queries, Processed in 0.031250 second(s),