?? untitled1.c
字號(hào):
mov.w R7,&tempDataOfOverFlowJudge
call #JUEDUIZHI
;判讀是否超出Q13,超出就設(shè)置溢出標(biāo)志
CALL #JUDGEOVERFLOWFLAG;
SAVEL1V MOV.W R7,tableVOfFFT(R5)
L1R MOV.W &L1VSIN,R8
ADD &L1RCOS,R8
mov.w tableROfFFT(R4),R7
sub.w R8,R7
;對(duì)計(jì)算結(jié)果取絕對(duì)值
;判斷計(jì)算結(jié)果正負(fù)
;當(dāng)為正時(shí)候,就不取反,當(dāng)為負(fù)時(shí)候,就取反。
mov.w R7,&tempDataOfOverFlowJudge
call #JUEDUIZHI
;判讀是否超出Q13,超出就設(shè)置溢出標(biāo)志
CALL #JUDGEOVERFLOWFLAG;
SAVEL1R MOV.W R7,tableROfFFT(R5)
L0V MOV.W &L1VCOS,R7
sub.w &L1RSIN,R7
MOV.W tableVOfFFT(R4),R8
ADD R8,R7
;對(duì)計(jì)算結(jié)果取絕對(duì)值
;判斷計(jì)算結(jié)果正負(fù)
;當(dāng)為正時(shí)候,就不去反,當(dāng)為負(fù)時(shí)候,就取反。
mov.w R7,&tempDataOfOverFlowJudge
call #JUEDUIZHI
;判讀是否超出Q13,超出就設(shè)置溢出標(biāo)志
CALL #JUDGEOVERFLOWFLAG;
SAVEL0V MOV.W R7,tableVOfFFT(R4)
L0R MOV.W &L1VSIN,R7
ADD &L1RCOS,R7
mov.w tableROfFFT(R4),R8
ADD R8,R7
;對(duì)計(jì)算結(jié)果取絕對(duì)值
;判斷計(jì)算結(jié)果正負(fù)
;當(dāng)為正時(shí)候,就不去反,當(dāng)為負(fù)時(shí)候,就取反。
mov.w R7,&tempDataOfOverFlowJudge
call #JUEDUIZHI
;判讀是否超出Q13,超出就設(shè)置溢出標(biāo)志
CALL #JUDGEOVERFLOWFLAG;
SAVEL0R MOV.W R7,tableROfFFT(R4)
add &stepBetweenW,&shiftOfLowBf;將蝶形因子因子低位偏移量加上具有相同旋轉(zhuǎn)因子的蝶形單元的跨距
jmp bfLoop
;整序程序
;-------------------------------------------------------通用寄存器使用列表-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;R4----I
;R5----J
;R6----MN1=totalOfNum-1
;R7----計(jì)算過程中存放臨時(shí)變量
;R9----K
;R10----NV2=N/2
;R11----N(totalOfNum),數(shù)據(jù)總量
BITREV
;R11----totalOfNum,數(shù)據(jù)總量
MOV.W &totalOfNum,R11
;R10----NV2=N/2
MOV.W &totalOfNum,R7
RRA R7 //算術(shù)右移
MOV.W R7,R10
;R6----MN1=totalOfNum-1
MOV.W &totalOfNum,R8
DEC R8
MOV.W R8,R6
;R4----I
MOV.W #1,R4
;R5----J
MOV.W #0,R5
;R4----I
;R6----MN1=totalOfNum-1
;I<MN1?
ILOOP CMP R6,R4
JL KSET
JMP fftRoutinStart
;R9----K
;R10----NV2=N/2
;K<-NV2
KSET MOV.W R10,R9
;R9----K
;R5----J
;K<=J?(J>=K)
KLOOP CMP R9,R5
JGE KJSET
JMP JSET
KJSET ;J<-J-K
;K<-K/2
SUB.W R9,R5
RRA R9
JMP KLOOP
JSET ;J<-J-K
ADD R9,R5
;I<J?
CMP R5,R4
JL EXCHANGEDATA
JMP ISET
;T<-A(J)
;A(J)<-A(I)
;A(I)<-T
EXCHANGEDATA RLA R5
RLA R4
MOV.W tableROfFFT(R5),R7
MOV.W tableROfFFT(R4),tableROfFFT(R5)
MOV.W R7, tableROfFFT(R4)
RRA R5
RRA R4
ISET
;R4----I
;I<-I+1
INC R4
JMP ILOOP
;-----------------------------------------------------------
;---------------取絕對(duì)值函數(shù)--------------------------------
;-----------------------------------------------------------
JUEDUIZHI:
TST.W &tempDataOfOverFlowJudge
JGE FANHUI
INV.W &tempDataOfOverFlowJudge
INC.W &tempDataOfOverFlowJudge
FANHUI RET
;-----------------------------------------------------------
;-----------------------------------------------------------
;---------------設(shè)置溢出標(biāo)志函數(shù)----------------------------
;-----------------------------------------------------------
JUDGEOVERFLOWFLAG:
CMP.W #BITD,&tempDataOfOverFlowJudge //???????????
JL JFFANHUI
SETOVERFLAG MOV.W #1, &gradeOverFlowFlag
JFFANHUI RET
;-----------------------------------------------------------
;-----------------------------------------------------------
;---------------右移兩位防止溢出函數(shù)----------------------------
;;-------------------------------------------------------通用寄存器使用列表-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;R4作為序號(hào)
;-----------------------------------------------------------
SHUJUYIWEI:
CLR.W R4 ;
YIWEILOOP CMP.W &totalOfNum,R4
JL YIWEILOOPSET
RET
YIWEILOOPSET
;右移兩位實(shí)部
RLA R4
RRA tableROfFFT(R4)
RRA tableROfFFT(R4)
;右移兩位虛部
RRA tableVOfFFT(R4)
RRA tableVOfFFT(R4)
RRA R4
INC.W R4
JMP YIWEILOOP
;-----------------------------------------------------------
;-----------------------------------------------------------
;---------------正弦函數(shù)表--------------------------------
;-----------------------------------------------------------
sin_table
dw 0
dw 50
dw 101
dw 151
dw 201
;-----------------------------------------------------------
END
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -