工具/软件:Code Composer Studio
您好!
我处理了 RFFT 代码。 您能解释一下以下代码是如何颠倒这些位的。。。
我对代码感到困惑。
_rfft_adc_f32_Stages1和2和3以及位反向:
;--------------------------------------------------------------
;保存使用的所有入口保存寄存器
;--------------------------------------------------------------
按 XAR1
按 XAR2
按 XAR3
MOV32 * SP++、R4H
MOV32 * SP++、R5H
MOV32 * SP++、R6H
MOV32 * SP++、R7H
ADDB SP、#14h
MOVL XAR2、*+XAR4[0];&Inbuf
MOVL XAR5、*+XAR4[2];Outbuf
SubB XAR5、#2
MOVL XAR4、XAR5
MOVL XAR5、*+XAR4[2];Outbuf
MOVL XAR3、*+XAR4[2]
ADDB XAR3、#8;Outbuf[4]
MOVL XAR7、*+XAR4[4];&CosSinbuf
MOV AR0、#0Ah
MOV AH、*+XAR4[AR0];FFT 大小
LSR AH、1;FFT SIZE /2 -用于16位输入数据
MOV AR0、AH
; LSR AH,3.
LSR AH,2;用于16位输入数据
SubB AH,#1;(SIZE /8)- 1.
MOVL XAR1、#0000h;如果存储器未对齐则为索引
RPTB _rfft_32_last、AH
;------------------------------------------------------------------
;必须为此代码对齐输入缓冲区
;------------------------------------------------------------------
NOP *、ARP2
MOVI32 R4H、0x39800801
UI16TOF32 R0H、* br0++;I1负载
UI16TOF32 R1H、* br0++;I2负载
MPYF32 R0H、R0H、R4H;I1刻度
UI16TOF32 R2H、* br0++;I3负载
MPYF32 R1H、R1H、R4H;I2刻度
|| MOV32 *-SP[I1]、R0H;I1保存
UI16TOF32 R0H、* br0++;I4负载
MPYF32 R2H、R2H、R4H;I3标度
|| MOV32 *-SP[I2]、R1H;I2保存
UI16TOF32 R1H、* br0++;i5负载
MPYF32 R0H、R0H、R4H;I4刻度
|| MOV32 *-SP[I3]、R2H;I3保存
UI16TOF32 R2H、* br0++;I6负载
MPYF32 R1H、R1H、R4H;I5刻度
|| MOV32 *-SP[I4]、R0H;I4保存
UI16TOF32 R0H、* br0++;i7负载
MPYF32 R2H、R2H、R4H;I6刻度
|| MOV32 *-SP[i5]、R1H;i5保存
UI16TOF32 R1H、* br0++;I8负载
MPYF32 R0H、R0H、R4H;i7刻度
|| MOV32 *-SP[I6]、R2H;I6保存
MPYF32 R1H、R1H、R4H;I8刻度
MOV32 *-SP[i7]、R0H;i7保存
MOV32 *-SP[I8]、R1H;I8保存
Nikhil
