📄 fft2.asm
字号:
.line 26
;----------------------------------------------------------------------
; 74 | if(point==256)
;----------------------------------------------------------------------
ldiu @_point+0,r0 ; |74|
cmpi 256,r0 ; |74|
bne L4 ; |74|
;* Branch Occurs to L4 ; |74|
.line 28
;----------------------------------------------------------------------
; 76 | point=0;
;----------------------------------------------------------------------
ldiu 0,r0 ; |76|
sti r0,@_point+0 ; |76|
.line 29
;----------------------------------------------------------------------
; 77 | for(i=0;i<256;i++)
;----------------------------------------------------------------------
sti r0,@_i+0 ; |77|
cmpi 256,r0 ; |77|
bge L7 ; |77|
;* Branch Occurs to L7 ; |77|
L6:
.line 30
;----------------------------------------------------------------------
; 78 | output[i]=fft_in[i]/256;
;----------------------------------------------------------------------
ldfu @CL10,f0 ; |78|
ldiu @_i+0,ir0 ; |78|
ldiu @CL9,ar0 ; |78|
ldiu @CL8,ar1 ; |78|
ldiu ir0,ir1 ; |78|
mpyf3 *+ar0(ir0),f0,f1 ; |78|
negf f1,f0 ; |78|
fix f0,r0 ; |78|
fix f1,r1 ; |78|
negi r0,r0 ; |78|
ldile r0,r1 ; |78|
sti r1,*+ar1(ir1) ; |78|
.line 29
ldiu 1,r0 ; |77|
addi @_i+0,r0 ; |77|
sti r0,@_i+0 ; |77|
cmpi 256,r0 ; |77|
blt L6 ; |77|
;* Branch Occurs to L6 ; |77|
L7:
.line 31
;----------------------------------------------------------------------
; 79 | for(i=0;i<512;i++)
;----------------------------------------------------------------------
ldiu 0,r0 ; |79|
sti r0,@_i+0 ; |79|
cmpi 512,r0 ; |79|
bge L9 ; |79|
;* Branch Occurs to L9 ; |79|
L8:
.line 32
;----------------------------------------------------------------------
; 80 | fft_in[i]=input[i];
;----------------------------------------------------------------------
ldiu @_i+0,ir1 ; |80|
ldiu @CL11,ar1 ; |80|
ldiu @CL9,ar0 ; |80|
ldiu ir1,ir0 ; |80|
float *+ar1(ir1),f0 ; |80|
stf f0,*+ar0(ir0) ; |80|
.line 31
ldiu 1,r0 ; |79|
addi @_i+0,r0 ; |79|
sti r0,@_i+0 ; |79|
cmpi 512,r0 ; |79|
blt L8 ; |79|
;* Branch Occurs to L8 ; |79|
L9:
.line 33
;----------------------------------------------------------------------
; 81 | fft();
;----------------------------------------------------------------------
call _fft ; |81|
; |81| Call Occurs
.line 34
;----------------------------------------------------------------------
; 82 | ifft();
;----------------------------------------------------------------------
call _ifft ; |82|
; |82| Call Occurs
.line 36
bu L4 ; |84|
;* Branch Occurs to L4 ; |84|
.endfunc 84,000000000h,0
.sect ".text"
.global _adfifo_int
.sym _adfifo_int,_adfifo_int,32,2,0
.func 85
;******************************************************************************
;* FUNCTION NAME: _adfifo_int *
;* *
;* Architecture : TMS320C33 *
;* Calling Convention : TI Standard Register Parameters *
;* Function Uses Regs : r0,ar0,ir0 *
;* Regs Saved : f0,r0,ar0,ir0 *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 0 Parm + 1 Auto + 4 SOE = 7 words *
;******************************************************************************
_adfifo_int:
.sym _k,1,4,1,32
.line 1
;----------------------------------------------------------------------
; 85 | interrupt void adfifo_int(void)
; 86 | {int k;
;----------------------------------------------------------------------
push st
push fp
ldiu sp,fp
addi 1,sp
push r0
pushf f0
push ar0
push ir0
.line 4
;----------------------------------------------------------------------
; 88 | buffer=AD_CS_ADDR;
;----------------------------------------------------------------------
ldiu @CL12,ar0 ; |88|
ldiu *ar0,r0 ; |88|
sti r0,@_buffer+0 ; |88|
.line 5
;----------------------------------------------------------------------
; 89 | buffer=buffer&0x0FFF;
;----------------------------------------------------------------------
ldiu 4095,r0 ; |89|
and @_buffer+0,r0 ; |89|
sti r0,@_buffer+0 ; |89|
.line 6
;----------------------------------------------------------------------
; 90 | buffer=buffer+0x0800;
;----------------------------------------------------------------------
ldiu 2048,r0 ; |90|
addi @_buffer+0,r0 ; |90|
sti r0,@_buffer+0 ; |90|
.line 7
;----------------------------------------------------------------------
; 91 | k=point*2;
;----------------------------------------------------------------------
ldiu @_point+0,r0 ; |91|
mpyi 2,r0 ; |91|
sti r0,*+fp(1) ; |91|
.line 8
;----------------------------------------------------------------------
; 92 | input[k]=buffer;
;----------------------------------------------------------------------
ldiu @CL11,ar0 ; |92|
ldiu r0,ir0 ; |92|
ldiu @_buffer+0,r0 ; |92|
sti r0,*+ar0(ir0) ; |92|
.line 9
;----------------------------------------------------------------------
; 93 | input[k+1]=0;
;----------------------------------------------------------------------
ldiu 1,ir0 ; |93|
addi *+fp(1),ir0 ; |93|
ldiu 0,r0 ; |93|
sti r0,*+ar0(ir0) ; |93|
.line 10
;----------------------------------------------------------------------
; 94 | buffer=output[point];
;----------------------------------------------------------------------
ldiu @_point+0,ir0 ; |94|
ldiu @CL8,ar0 ; |94|
ldiu *+ar0(ir0),r0 ; |94|
sti r0,@_buffer+0 ; |94|
.line 11
;----------------------------------------------------------------------
; 95 | DAC0=buffer;
;----------------------------------------------------------------------
ldiu @CL13,ar0 ; |95|
sti r0,*ar0 ; |95|
.line 12
;----------------------------------------------------------------------
; 96 | point++;
;----------------------------------------------------------------------
ldiu 1,r0 ; |96|
addi @_point+0,r0 ; |96|
sti r0,@_point+0 ; |96|
.line 13
; Begin Epilog Code
; Restore SOE Registers
pop ir0
pop ar0
popf f0
pop r0
; Unallocate the Frame
subi 1,sp
pop fp
pop st
reti
; Return From Interrupt
.endfunc 97,000010101h,1
.sect ".text"
.global _fft
.sym _fft,_fft,32,2,0
.func 100
;******************************************************************************
;* FUNCTION NAME: _fft *
;* *
;* Architecture : TMS320C33 *
;* Calling Convention : TI Standard Register Parameters *
;* Function Uses Regs : f0,r0,f1,r1,f2,r2,r3,ar0,ar1,ar2,ar4,ar5,ar6,ar7, *
;* ir0,ir1,st,rs *
;* Regs Saved : ar4,ar5,ar6,ar7 *
;* Stack Frame : Full (w/ debug) *
;* Total Frame Size : 2 Call + 0 Parm + 9 Auto + 4 SOE = 15 words *
;******************************************************************************
_fft:
.sym _i,1,4,1,32
.sym _j,2,4,1,32
.sym _k,3,4,1,32
.sym _local0,4,4,1,32
.sym _local1,5,4,1,32
.sym _win0,6,4,1,32
.sym _win1,7,4,1,32
.sym _win2,8,4,1,32
.sym _win3,9,4,1,32
.line 1
;----------------------------------------------------------------------
; 100 | void fft(void)
; 102 | int i,j,k,local0,local1,win0,win1,win2,win3;
;----------------------------------------------------------------------
push fp
ldiu sp,fp
addi 9,sp
push ar4
push ar5
push ar6
push ar7
.line 5
;----------------------------------------------------------------------
; 104 | for (i=0;i<8;i++)
;----------------------------------------------------------------------
ldiu 0,r0 ; |104|
sti r0,*+fp(1) ; |104|
cmpi 8,r0 ; |104|
bge L27 ; |104|
;* Branch Occurs to L27 ; |104|
L16:
.line 6
;----------------------------------------------------------------------
; 105 | if ((i==curse[i]))
;----------------------------------------------------------------------
ldiu *+fp(1),ir0 ; |105|
ldiu @CL14,ar0 ; |105|
ldiu ir0,r0 ; |105|
cmpi3 *+ar0(ir0),r0 ; |105|
bne L22 ; |105|
;* Branch Occurs to L22 ; |105|
.line 7
;----------------------------------------------------------------------
; 106 | for (k=0;k<i_k[i];k++)
;----------------------------------------------------------------------
ldiu 0,r0 ; |106|
sti r0,*+fp(3) ; |106|
ldiu @CL15,ar0 ; |106|
cmpi3 *+ar0(ir0),r0 ; |106|
bge L26 ; |106|
;* Branch Occurs to L26 ; |106|
L18:
.line 8
;----------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -