00000002.htm
来自「水木社区 embeded 版精华区 下载」· HTM 代码 · 共 54 行
HTM
54 行
<?xml version="1.0" encoding="gb2312"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><title>Re: 怎样用汇编语言实现除法? turbolinux </title></head><body><center><h1>BBS 水木清华站∶精华区</h1></center><a name="top"></a>发信人: christ (圣人), 信区: Embedded <br />标 题: Re: 怎样用汇编语言实现除法? <br />发信站: BBS 水木清华站 (Fri Jun 1 00:08:18 2001) <br /> <br />如果是定点数相除,如32位/16位,或是16位/16位,且结果左移15位的,算法如下。 <br />Word16 div_s(Word16 var1, Word16 var2) <br />{ <br /> Word32 i; <br /> Word32 L_var1 = var1<<15; <br /> Word32 L_var2 = var2<<15; <br /> for(i=0;i<16;i++) <br /> L_var1 = _subc(L_var1,L_var2); <br /> return L_var1&0x07fff; <br />} <br />Word16 div_l( Word32 L_num, Word16 den ) <br />{ <br /> Word32 i,a1; <br /> a1=(Word32)den<<15; <br /> for(i=0;i<15;i++) <br /> L_num=_subc(L_num,a1); <br /> return L_num&0x07fff; <br />} <br /> <br />_subc是所有DSP都有的移位相减指令,别的片子的可能名字不同,呵呵。都是16或15 <br />个周期可以完成的。 <br /> <br />如果是一个变量/常量,但不移位,就可以转化成(变量*某常量)>>某个值,呵呵。 <br /> <br />【 在 lijikang (lijikang) 的大作中提到: 】 <br />∶<i> 我用的是TMS320F240,指令集中无除法。 </i><br /> <br /> <br />-- <br /> <br />※ 修改:·christ 於 Jun 1 00:12:44 修改本文·[FROM: 166.111.149.72] <br />※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.149.72] <br /><a href="00000001.htm">上一篇</a><a href="javascript:history.go(-1)">返回上一页</a><a href="index.htm">回到目录</a><a href="#top">回到页首</a><a href="00000003.htm">下一篇</a></h1></center><center><h1>BBS 水木清华站∶精华区</h1></center></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?