打印

如何在2407A中实现32位数除以16位数[附程序]

[复制链接]
2395|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qzx0580|  楼主 | 2007-8-7 10:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下:
DIV_DOUBLE:
        LDP         #DP_B01
        CLRC         SXM
        LACL         CHUSHU                                         ;CHUSHU=除数
        SUB         #0
        BCND         ERROR_RESULT,EQ
        LDP         #DP_B01
                LACC        GAO,16                          ;GAO =被除数的高十六位
                ADDS        DI                                  ;DI    =被除数的低十六位
                SACH        GAP
                SACL        DI
                
                LACC        CHUSHU,16    
                SACH        BUFFER                         ;临时寄存器                
                LACL        GAO
                RPT                #15
                SUBC        BUFFER
                SACL        GAO
                
                XOR                GAO
                OR                DI
                
                RPT                #15
                SUBC        BUFFER
                SACH        BUFFER
                SACL        SHANG                        ;SHANG = 商
                B       DIV_END
ERROR_RESULT:
        LDP         #DP_B01
        SPLK         #0,SHANG
DIV_END:
        NOP
        RET
这段小程序貌似实现两数相除的功能,但是我看不懂它的编程原理,请大侠指教.

相关帖子

沙发
zheng79| | 2007-8-7 10:50 | 只看该作者

还用2407,现在用STR750了

性价比更高,资源更多

使用特权

评论回复
板凳
qzx0580|  楼主 | 2007-8-7 15:42 | 只看该作者

附程序

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

172

帖子

0

粉丝