老古开发网首页
导航:老古开发网首页文章索引文章分类DSP数字信号处理→[32位除以16(DSP56F805汇编)]
| -文章搜索 - 最新文章 - |

32位除以16(DSP56F805汇编)

发布时间:2006年4月10日 点击次数:1379
来源:   作者:
 

;==================================================
;32位除以16位结果为16位,结果放在Y0中,清0,累加器A
;入口参数:被除数在A,Y0中,除数在X0中
;出口:结果在A,Y0中
;说明:32位除以16位的运算中,结果为16位或32位
;=================================================

div_32by16:                                      
                cmp     #$0000,x0
                beq     error_diver
                cmp     #1,x0
                beq     diver_return
                bra     right_diver
error_diver:   
                move    #$ffffffff,a
                move    #$ffff,y0
diver_return:               
                rts               
right_diver:               
                move    a0,a1
                move    y0,a0
                brset   #$8000,a1,diver_ok
                brset   #$8000,x0,diver_ok
                bra     run_diver               
diver_ok:
                asr     a
                bfclr   #$8000,a1
                asr     x0
                bfclr   #$8000,x0                         
run_diver:               
                move    a1,y1
                cmp     x0,y1
                bcc     overflow_deal
                                                             ;正整数除法,余数必须右移
                move    #$3ffe,y1                            ;本来在这里可以用4000乘的
                mpysu   x0,y1,b                              ;但用4002可以提高运算精度
                asr     b                                    ;
                bfclr   #$8000,b1
                move    b0,y0                                ;
                move    b1,y1                                ;
                clr     b                                    ;
                tfr     a,b                                  ;
                asr     b
                bfclr   #$8000,b1                            ;
                bfclr   #$0001,sr                            ;
                sbc     y,b                                  ;比较并转移
                bcs     continue_diver                         
 over_flow:         
                asr      a
                bfclr    #$8000,a1                           ;
                asl      a                                   ;
                bfclr    #$0001,sr
                rep      #16                                 ;
                div      x0,a
                clr      a1
                asl      a
                move     a0,y0
                add      x0,a
                asr      a
                move     a1,x:temp
                clr      a
                rts
continue_diver:                
                asl     a                                    ;             
                bfclr   #$0001,sr                            ;
                rep     #16                                  ;
                div     x0,a                                 ;
                move    a0,y0                                ;
                add     x0,a
                asr     a
                move    a1,x:temp
                clr     a                                    ;
                rts
overflow_deal:          
                move   a0,y0
                move   a1,a0
                move   #$0000,a1
                asl    a
                bfclr  #$0001,sr
                rep    #16
                div    x0,a
                lea    (sp)+
                move   a0,x:(sp)
                add    x0,a
                asr    a
                move   a1,a0
                move   #$0000,a1
                jsr    right_diver
                pop    a0
                rts  


欢迎进入老古论坛进行讨论
[DSP数字信号处理] 相关文章:
ADI Blackfin处理器为便携式X射线系统提供核心控制功能
简介:
ADI公司发布ADI公司的ADSP-BF533 Blackfin®处理器可为Innov-X系统公司的便携式X射线系统提供核心控制和信号处理功能。Innov-X便携式X射线系统是一种用于检查S.S Hunley号潜水艇(美国内战期间第一艘军用潜水艇)恢复船体工作取得重大技术突破的仪器。 这种便携式设备,包含HP iPAQ软件用于仪表校准,采用称作X射线荧光(XRF)光谱法测定固体材料的组成。Blackfi......

两类DSP芯片的引导过程分析[转]
针对DSP处理器的应用设计的系统存储器
DSP系统构成的常用芯片[转]
采用DSP控制器的4个误解
QuickLogic推出基于其QuickPCI系列可编程桥接控制器的配套器件
USB2.0闪存盘控制芯片“优芯II 号”的特点及应用电路
采购双核服务器用户应该注意的问题
Vativ发布为HD DTV信号设计的接收器
VIA推出低功耗移动处理器 延长电池寿命
 
下一个:[新闻热点]德仪缩小预测收益范围 华尔街表示不满
简介:
德州仪器公司提高了其低端芯片的利润预测,但是没有华尔街所希望的那样多,因此它的股票出现了下跌。   德州仪器公司称,它预计第一季度连续运营的收益将达到每股31美分到33美分,比之前预期的每股29美分到33美分要稍微提高一点点。   Stifel Nicolaus公司分析师Cody Acree说:“提高预期收益是件好事,但是它却不足以满足抱乐观态度的华尔街金融界。”   Acree说:“他们所做的本没什么不对。它只是将预期的范围缩小了一些......
 

上一个:[ARM设计]选择ARM CPU的操作系统

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:16毫秒