TI中文支持网
TI专业的中文技术问题搜集分享网站

28335 求模指令:% 是怎么处理的 速度快不快 用没用到除法

x=x%y

if(x>y)

{

     x-=y

}

哪个效率高一点 在中断中执行

10#:

%求模没有使用除法,而是通过repeat多次减法来实现的,原理上与你的方法一样,但由于它是固定次数,时间上要多一些。

你可以尝试看一下指令集里里有关%运算的汇编代码,或者自己简单测试一下,我这看到的是对于Unit16的数,使用clock计算,%需要34个时钟,而后者大概10来个,应该更少,因为我多赋了一次值。

下面是对应的汇编代码供参考:

Uint16 aaa;Uint16 bbb;Uint16 ccc;

   ccc = aaa%bbb;

   if(aaa>bbb)   {        aaa-=bbb;        ccc = aaa;   }

111        ccc = aaa%bbb;        C$DW$L$_main$2$E, C$L2:008aed:   761F0284    MOVW         DP, #0x284008aef:   9201        MOV          AL, @0x1008af0:   9300        MOV          AH, @0x0008af1:   00C08C0C    FFC          XAR7, U$$MOD008af3:   9602        MOV          @0x2, AL113        if(aaa>bbb)008af4:   9200        MOV          AL, @0x0008af5:   5401        CMP          AL, @0x1008af6:   6704        SB           C$L3, HIS115             aaa-=bbb;008af7:   7401        SUB          @0x1, AL116             ccc = aaa;008af8:   9201        MOV          AL, @0x1008af9:   9602        MOV          @0x2, AL

x=x%y

if(x>y)

{

     x-=y

}

哪个效率高一点 在中断中执行

xiangjun quan:

回复 10#:

我为什么我测试出来的时间 %所用的时间更短一下,我用的PWM CTR的值计算的时间

赞(0)
未经允许不得转载:TI中文支持网 » 28335 求模指令:% 是怎么处理的 速度快不快 用没用到除法
分享到: 更多 (0)