FFT汇编程序代码(国外英文资料).doc
文本预览下载声明
FFT汇编程序代码(国外英文资料)
The FFT algorithm assembles the original program to share with you
; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
; Quick payment of the leaf transform subroutine
;
; Entry: first address of a one-dimensional four-byte floating point group.
;
; With 2 for beta value, signal sampling points = ^ 2 beta;
;
; Exit: the value of the result of the original array.
;
; Additional instructions:
;
; 1. The required RAM subroutine has a capacity of 2 ^ beta * 12 bytes, the other needs
;
; A small number of stacks as a storage space for temporary variables;
;
; The required RAM space is based on the initial address of the input and the direction of the increase
;
; Extension;
;
; Examples:
;
; PUSH # 0A000H; Array first address stack
; PUSH # 6; Beta pressure stack
; CALL FFT
;
; -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
PROC FFT
FFT: LD FFT_CX, 2 [SP]
LD FFT_AX.
SHL FFT_AX, FFT_CL; Calculated sample points
PUSH FFT_AX; Stack the sample points
SHL FFT_AX, # 1;
LD FFT_BX, 6 [SP]; According to the sampling points,
ADD FFT_BX, FFT_AX; Calculate the remaining
PUSH FFT_BX; Three is to take up
ADD FFT_BX, FFT_AX; The first address of the space;
PUSH FFT_BX; And turn the first address in turn
SHL FFT_AX, # 1;
ADD FFT_BX, FFT_AX; Stack pressure;
PUSH FFT_BX;
LD FFT_CX, 6 [SP]
LD FFT_FX, # 2
LOOP1:
The CLR FFT_AX
SUB FFT_EX, FFT_CX, # 1
LD FFT_BX, FFT_EX
LD FFT_DX, 10 [SP]
LOOP2:
SHL FFT_AX, # 1;
SHR FFT_EX, # 1; Produce reverse order number
ADDC FFT_AX, 0;
DJNZW FFT_DX, LOOP2;
SHL FFT_AX, # 2
SHL FFT_BX, # 2; FFT_AX: generate the source address
ADD FFT_AX, 12 [SP]; FFT_BX: generates the destination address
ADD FFT_BX, 2 [SP]; Enter data in reverse order
BMOV fft_x, FFT_FX;
DJNZW FFT_CX, LOOP1;
LD FFT_AX, 1
显示全部