打印

求助汇编除法

[复制链接]
3510|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
momonivvuu|  楼主 | 2007-11-28 16:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
momonivvuu|  楼主 | 2007-11-28 16:44 | 只看该作者

自己顶下先

自己顶下先,不要掉下去了

使用特权

评论回复
板凳
momonivvuu|  楼主 | 2007-11-28 16:50 | 只看该作者

没人理啊

自己安慰下

使用特权

评论回复
地板
computer00| | 2007-11-28 18:54 | 只看该作者

换个带除法指令的处理器

使用特权

评论回复
5
lkkjob| | 2007-11-28 19:11 | 只看该作者

直接用除法指令不就行了

直接用除法指令不就行了, DIV AB
不是可以直接做除法吗?

使用特权

评论回复
6
mohanwei| | 2007-11-28 20:13 | 只看该作者

用C编写:Z=X/Y;……

生成SRC文件,打开,发现是c编译成汇编了,有对应的,改改就可以了。

使用特权

评论回复
7
ywqywqywq| | 2007-11-28 22:22 | 只看该作者

移位减

使用特权

评论回复
8
小小小菜鸟| | 2007-11-29 00:03 | 只看该作者

最惨的是用PIC16系列的,就是uchar/uchar就要20余行ASM

使用特权

评论回复
9
momonivvuu|  楼主 | 2007-11-29 08:46 | 只看该作者

谢谢各位

谢谢。我用的是PSOC,没有除法啊,对了,移位减?怎么做呢?提示下啊,我想不明白

使用特权

评论回复
10
momonivvuu|  楼主 | 2007-11-29 08:54 | 只看该作者

To:mohanwei

我去试试看看,谢谢

使用特权

评论回复
11
mohanwei| | 2007-11-29 22:58 | 只看该作者

C调用汇编以实现高效、实时、可控的算法的时候

我都是先用C写好算法,然后编译成汇编文件进行优化的。这样框架和接口编译器都给都做好了,实现起来比较简单。

使用特权

评论回复
12
xiaoerge| | 2007-11-30 19:13 | 只看该作者

说明一下

其实子程序做除法是用的二进制做的,跟十进制的是一样的,下面我演示一下: 
比如:85H÷12H(随便取的)算是8位除以8位吧,无符号,写成二进制为10000101B/00010010B 
                111 
          __________  
00010010 / 10000101 
       -    10010 
        ------------ 
             11110 
       -     10010 
        ------------ 
              11001 
       -      10010 
        ------------ 
                111 
具体的方法(用上例解释):先将被除数10000101左移,直到大于或等于除数10010,即移出部分为100001,记录移位次数6,商1,移出的被除数减去除数,用8减去移位次数保存,下面是循环,循环次数就是8-6=2,循环体为(被除数(包括前面移出的共两个8位二进制数)左移一位,判断高8位是否大于等于除数,小于则进位位清零,大于等于则置1,商带进位位左移)。最后被除数的高8位为余数,商和被除数可以公用一个寄存器。 
16/16,16/8等其他的依此类推,只是循环次数多一些而已 

使用特权

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

本版积分规则

3

主题

18

帖子

1

粉丝