二进制数折半查找算法在DSP上的实现
内容。由于在该指令前有一条mar*,AR0指令,这条指令指定了下一条指令的辅助寄存器。因此在执行MAR BR0+,AR3时,实际上是辅助寄存器AR0与自身逆向相位相加:其结果是数据为原来的一半。实际上这条指令确定了折半查找算法中的"中间位置"。
(3)samm BRCR指令程序执行是是与rptp nothere-1指令配合使用的。Samm指令的功能是将循环次数的值(这里是11)存放在BRCR中。BRCR(Block Repeat Counter Register)是个16位的寄存器,用于存放程序块重复操作的次数。Rptp指令是重复操作指令,它的功能是重复执行下一条指令到该指令指定的地址之内的程序代码,重复执行的次数由brcr决定。在上面的程序中,RPTR指令指定的地址是nothere-1,也就是说:重复执行的程序代码从bcnd found直到nthere的前一指令Sub*。
xc指令的用法如下:
xc K[,COND1][COND2][,…]
指令中的K=1或2。COND1、COND2是条件。xc指令功能是在条件满足的情况下,执行该指令下面的K条指令,K为1,则执行一条指令,K为2则执行两条指令。条件不满足就执行K条NOP指令。
(4)该源程序是采用TMS320C5X的指令集编写的,如果是TMS320C5X系列的DSP,则可以直接将上面给出的程序作为一个子程序来使用。而对于TMS320C2XX系列的DSP来说,由于TMS320C5X的指令对TMS320C2XX的指令是向下兼容的,所以在编写TMS320C2XX的折半查找程序时应作一些修改,比如前面提到的程序中的samm指令,在TMS320C2XX指令集中就没有。这样,如果希望用TMS320C2XX来实现本例中的samm语句 功能,则可以将重复操作的次数存放在内部的RAM中,再配合TMS320C2XX循环指令来完成samm与rptp指令的功能。但这样做将导致程序执行效率的降低。也可以认为TMS320C2XX的数据处理能力较TMS320C5X为弱,其原因主要是两者指令集的差异。
- 如何在DSP上实现二进制数折半查找算法(02-23)
- STC89C52-秒表(精确10ms)同时LED二进制计数(12-01)
- 单片机二进制编码对照(11-28)
- 关于单片机LED二进制加法(11-25)
- 第14节:二进制与十六进制(11-22)
- 第13节:二进制与字节单位,以及各种定义变量的取值范围(11-22)