用TMS320C54X实现Vertibi译码器
STM #OUTPUT+NBWORDS-1,AR3
;输出比特的地址指针
LD #0,A 初始0状态存入累加器A中
STM#15,BRC ;do i=0,NBWORDS-1
BACK:RPTB TBEND-1 ;do j=0,15
;在转移字中计算比特位置
SFTL A,-(K-2),B ;B=A>>(K-2)
AND ONE,B ;B=B&1=msb of State
ADD A,1,B ;B=B+A<<1=2*State+msb of State
STLM B,T ;T=B(bit position)
;修正转移字
SFTL A,-3,B ;B=A/8=State/8
AND MASK,B ;B=B&MASK=(K-5)lsb'sof State/8
STLM AR0 ;AR0=转称字索引
MAR *+AR2(-2K-5) ;修正寄存器值使其复位
MAR *AR2+0 ;加偏移量修正转移字
BITT*AR2-0 ;测试转移字中的比特位
ROLTC A
TBEND:STL A,*AR3-
BANZD:BACK,*AR1-
STM #15,BRC ;指向输出缓冲区的首地址
LD*AR3,A ;将第一个字装入累加器A中
RVS:SFTA A,-1,A
STM #15,BRC
RPTB RVS2-1
ROL B
SFTA A,-1,A
RVS2:BANZD RVS,*AR4- ;判断所有的字是否都计算完
STL B,*AR3+ ;保存刚计算完的字
LD *AR3,A ;装入下一个字
- 上一篇论文: 高速DSP数据采集的信号完整性问题
- 下一篇论文: 基于定点DSP的软件锁相环的设计和实现