网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> ADI DSP代码示例 >> Blackfin >> 文章正文
  ADI DSP双精度除法的例子         ★★★ 【字体:
ADI DSP双精度除法的例子
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-16    

.MODULE         Double_Precision_Divide;

{
        Double-Precision Division
                Z = X / Y

        Calling Parameters
                AY0 = LSW of Y
                AY1 = MSW of Y
                SR1 = MSW of X
                SR0 = Next Significant Word of X
                MR1 = Next Significant Word of X
                MR0 = LSW of X
                SE = -15

        Return Values
                MR1 = MSW of Z
                MR0 = LSW of Z

        Altered Registers
                AF,AR,AX1,AX0,SI,SR,MR

        Computation Time
                485 cycles (maximum)

}

.ENTRY  ddivs;
.ENTRY  ddivq;

ddivs:  AF=PASS SR1;
        SI=SR0, AR=SR1 XOR AY1;     {Exclusive or sign bits}
        AX1=AR;
        SR=LSHIFT MR0 BY 1(LO);     {Shift dividend up one bit}
        SR=SR OR LSHIFT MR1 BY 1(HI);
        SR=SR OR LSHIFT AR(LO);     {Shift in quotient bit}
        AR=PASS AF, MR0=SR0;
        MR1=SR1, SR=LSHIFT MR1(LO);
        SR=SR OR LSHIFT SI BY 1(LO);
        SR=SR OR LSHIFT AR BY 1(HI);
        CNTR=31;
        JUMP ddiv;
ddivq:  CNTR=32;
        AX1=0;
ddiv:   AX0=AY1;
        DO ddivu UNTIL CE;
                AR=ABS AX1;        
                IF POS JUMP aqz;   {Is quotient bit set?}
aqo:            AR=SR0+AY0;        {Yes, add divisor to partial remainder}
                SI=AR, AF=SR1+AY1+C;
                JUMP ddivi;
aqz:            AR=SR0-AY0;        {No, subtract divisor from partial remainder}
                SI=AR, AF=SR1-AY1+C-1;
ddivi:          SR=LSHIFT MR0 BY 1(LO); {Shift dividend one bit}
                SR=SR OR LSHIFT MR1 BY 1(HI);
                AR=AX0 XOR AF;     {Compute quotient bit}
                AX1=AR;            {Save quotient bit}
                AR=NOT AX1;
                SR=SR OR LSHIFT AR(LO); {Shift in new bit}
                MR0=SR0, AR=PASS AF;
                MR1=SR1, SR=LSHIFT MR1(LO);
                SR=SR OR LSHIFT SI BY 1(LO);
ddivu:          SR=SR OR LSHIFT AR BY 1(HI);
                RTS;

.ENDMOD;

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章: 没有了

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    C28x 滤波器库
    ADSP21160调试经历
    ADSP流水线
    ADSP2116x的几个常用算法库函…
    ADSP系列SHARC与FIFO的典型连…
    ADSP218x从FLASH引导方式分析
    The simple examples for AD…
    ADSP-218x 加载器指南
    ADI DSP的单精度随机斜率滤波…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号