⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fft.lst

📁 1.熟悉硬件仿真工具KD30的使用。 2.修改样本程序 SAMP1a
💻 LST
📖 第 1 页 / 共 4 页
字号:
* M16C FAMILY ASSEMBLER *   SOURCE LIST       Sat Apr 09 03:16:50 2005  PAGE 001

  SEQ.  LOC.   OBJ.              0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4

     1                                  ;*****************************************************************
     2                                  ;*	PROGRAM		: 256 Bit FFT Program                    *
     3                                  ;*    	FILE NAME	: fft.A30				 *
     4                                  ;*	FUNCTION 	: 256 fft				 *
     5                                  ;*****************************************************************
     6                                  ;
     7                                  ;---------- INCLUDE OF SFR FILE ----------------
     8                                  ;
     9                                  	.list		off			; don't draw up a prpgram list
    10                                  	.list		on			; draw up a program list
    11                                  ;
    12                                  ;---------- DEFINE OF SYMBOLS ------------------
    13                                  ;
    14  00000400h                       VramTOP	.equ	000400H			; top address of internal RAM
    15  00002BFFh                       VramEND	.equ	002BFFH			; end address of internal RAM
    16  000F0000h                       VprogTOP.equ	0F0000H			; top address of program area
    17  000FA000h                       Vintbase.equ	0FA000H			; top address of variable vector table
    18  00002C00h                       VIstack	.equ	002C00H			; stack pointer
    19  000FFFDCh                       Vvector	.equ	0FFFDCH			; top address of fixed vector table
    20  00000400h                       SB_base	.equ	000400H			; base address of SB recative
    21  000E0000h                       wnk	.equ	0e0000h			; wnk of fft
    22                                  ;
    23                                  ;---------- KEEP OF RAM AREA -------------------
    24                                  ;
    25                                  	.section	memory,data
    26  00400                           	.org		VramTOP
    27                                  
    28  00400(000200H)                  numr: 	.blkw	256
    29  00600(000200H)                  numi:   .blkw 256
    30  00800(000001H)                  flag:   .blkb 1
    31  00801(000001H)                  addr:   .blkb 1
    32  00802(000002H)                  temp:   .blkw 1
    33                                  ;-----------------------------------------------
    34                                  	.section	prog,code
    35  F0000                           	.org		VprogTOP
    36                                  	.sb         SB_base		; assings aprovisional SB register value
    37                                  	.sbsym	num			; place data in SB addressing mode
    38                                      .sbsym      addr
    39                                      .sbsym      flag
    40                                      .sbsym      temp
    41                                  ;---------- CLEAR OF RAM -----------------------
    42  F0000                           reset:
    43  F0000  EB40002C                 	ldc	#VIstack,ISP			; set Interrupt Stack Pointer
    44  F0004  EB600004                   	ldc	#SB_base,SB			; set SB register
    45  F0008  EB200F00                 	ldintb	#Vintbase			; set Interrupt TaBle register
               EB1000A0 
    46                                  
    47  F0010  D900                  Q  	mov.w	     #0,r0			; 0 clear
    48  F0012  75C30014                 	mov.w	     #(VramEND+1-VramTOP)/2,r3	; number of times
    49  F0016  AA0004                S  	mov.w	     #VramTOP,a1		; start address
    50  F0019  7DEA                     	sstr.w
    51                                  
    52                                  ;---------- INITIALLIZE ------------------------
    53  F001B  EB200F00                 	LDINTB     #USER_vector_table
               EB1000A0 
    54  F0023  C7065D00              S  	mov.b      #00000110B,int0ic
    55  F0027  B7F203                Z  	mov.b      #0,pd8
    56  F002A  C701FE03              S  	mov.b      #1,pur2
    57  F002E  D900                  Q  	mov.w      #0,r0
    58  F0030  75C30001                     mov.w      #256,r3
    59  F0034  AA0004                S      mov.w      #numr,a1
    60  F0037  7DEA                         sstr.w
* M16C FAMILY ASSEMBLER *   SOURCE LIST       Sat Apr 09 03:16:50 2005  PAGE 002

  SEQ.  LOC.   OBJ.              0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4

    61  F0039  75C0FF7F                 	mov.w      #7fffh,r0
    62  F003D  75C38000                 	mov.w      #128,r3
    63  F0041  AA4004                S  	mov.w      #numr+64,a1
    64  F0044  7DEA                     	sstr.w
    65  F0046  D900                  Q      mov.w       #0,r0
    66  F0048  75C30001                     mov.w       #256,r3
    67  F004C  AA0006                S      mov.w       #numi,a1
    68  F004F  7DEA                         sstr.w
    69                                  ;---------- MAIN PROGRAM -----------------------
    70                                  ;-----------------------------调整顺序输入顺序的程序-----------------
    71  F0051  C480                  S  	mov.b      #080h,r0l
    72  F0053  A20004                S  	mov.w      #numr,a0
    73  F0056                           huan:
    74  F0056  C308                  S  	mov.b	   #8,r0h
    75  F0058  7341                         mov.w      a0,r1
    76  F005A  77510004                     sub.w      #numr,r1
    77  F005E  E981                         shl.w      #-1,r1
    78  F0060                           br:
    79  F0060  E002                     	rot.b	   #1,r1l
    80  F0062  76B3                     	rorc.b     r1h
    81  F0064  AB                       	dec.b	   r0h
    82  F0065  6EFA                     	jnz        br
    83  F0067  7235                         mov.b      r1h,a1
    84  F0069  E905                         shl.w      #1,a1
    85  F006B  77450004                     add.w      #numr,a1
    86  F006F  7361                         mov.w      [a0],r1
    87  F0071  7B17                     	xchg.w     r1,[a1]
    88  F0073  7316                         mov.w      r1,[a0]
    89                                  	
    90  F0075  C924                  Q  	add.w	   #2,a0
    91  F0077  AC                       	dec.b	   r0l
    92  F0078  6EDD                     	jnz        huan
    93                                  ;-----------------------------
    94  F007A  C480                  S  	mov.b	   #80h,r0l
    95  F007C  A20006                S  	mov.w	   #numi,a0
    96  F007F                           huani:
    97  F007F  C308                  S  	mov.b	   #8,r0h
    98  F0081  7341                         mov.w      a0,r1
    99  F0083  77510006                     sub.w      #numi,r1
   100  F0087  E981                         shl.w      #-1,r1
   101  F0089                           bri:
   102  F0089  E002                     	rot.b	   #1,r1l
   103  F008B  76B3                     	rorc.b     r1h
   104  F008D  AB                       	dec.b	   r0h
   105  F008E  6EFA                     	jnz        bri
   106  F0090  7235                         mov.b      r1h,a1
   107  F0092  E905                         shl.w      #1,a1
   108  F0094  77450006                     add.w      #numi,a1
   109  F0098  7361                         mov.w      [a0],r1
   110  F009A  7B17                     	xchg.w     r1,[a1]
   111  F009C  7316                         mov.w      r1,[a0]
   112  F009E  C924                  Q  	add.w	   #2,a0
   113  F00A0  AC                       	dec.b	   r0l
   114  F00A1  6EDD                     	jnz        huani
   115                                  ;----------------------------------------------
   116  F00A3  D81E0008              Q  	mov.b	   #1,flag[sb]		;8级蝶形运算 
   117  F00A7                           dft_fft:
   118                                  ;---------------------级间旋转因子的计算程序------------------
   119  F00A7  D80E0108              Q        mov.b       #0,addr[sb]
   120  F00AB                           rotate:
   121  F00AB  72E00108                       mov.b       addr[sb],r0l
   122  F00AF  72E10008                       mov.b       flag[sb],r0h
* M16C FAMILY ASSEMBLER *   SOURCE LIST       Sat Apr 09 03:16:50 2005  PAGE 003

  SEQ.  LOC.   OBJ.              0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4

   123  F00B3  E880                     lp1:  shl.b       #-1,r0l    		;rotate factor
   124  F00B5  AB                             dec.b       r0h
   125  F00B6  6EFC                           jnz         lp1 
   126  F00B8  6805                           jc          n5
   127  F00BA  D904                  Q        mov.w	  #0,a0
   128  F00BC  FE2C                  B        jmp	  n1
   129  F00BE  72E00108                 n5:   mov.b       addr[sb],r0l
   130  F00C2  C309                  S        mov.b	  #9,r0h
   131  F00C4  A8E10008                       sub.b       flag[sb],r0h
   132  F00C8  E800                     lp2:  shl.b       #1,r0l
   133  F00CA  AB                             dec.b       r0h
   134  F00CB  6EFC                           jnz         lp2      
   135  F00CD  C309                  S        mov.b	  #9,r0h
   136  F00CF  A8E10008                       sub.b       flag[sb],r0h
   137  F00D3  E880                     lp3:  shl.b       #-1,r0l
   138  F00D5  AB                             dec.b       r0h
   139  F00D6  6EFC                           jnz         lp3
   140                                        
   141  F00D8  C308                  S        mov.b	  #8,r0h
   142  F00DA  A8E10008                       sub.b       flag[sb],r0h
   143  F00DE  6A06                           jz	  n2
   144  F00E0  E800                     lp4:  shl.b	  #1,r0l
   145  F00E2  AB                             dec.b	  r0h
   146  F00E3  6EFC                           jnz	  lp4
   147                                  ;------------------
   148  F00E5  7204                     n2:   mov.b       r0l,a0
   149  F00E7  E904                           shl.w       #1,a0              	;retate factor
   150  F00E9                           n1:
   151  F00E9  73E50108                       mov.w       addr[sb],a1
   152  F00ED  E905                           shl.w       #1,a1              	;data address
   153                                  ;------------------
   154  F00EF  73D00006                       mov.w       numi[a1],r0       	;the real part
   155  F00F3  759300000E                     lde.w       sin[a0],r3
   156  F00F8  7930                           mul.w       r3,r0
   157  F00FA  732E0208                       mov.w       r2,temp[sb]      
   158  F00FE  73D00004                       mov.w       numr[a1],r0
   159  F0102  759300020E                     lde.w       cos[a0],r3
   160  F0107  7930                           mul.w       r3,r0
   161  F0109  A9E20208                       sub.w       temp[sb],r2
   162  F010D  732D0004                       mov.w       r2,numr[a1]
   163                                  ;------------------
   164  F0111  73D00004                       mov.w       numr[a1],r0       	;the image part
   165  F0115  759300000E                     lde.w       sin[a0],r3
   166  F011A  7930                           mul.w       r3,r0
   167  F011C  732E0208                       mov.w       r2,temp[sb]
   168  F0120  73D00006                       mov.w       numi[a1],r0
   169  F0124  759300020E                     lde.w       cos[a0],r3
   170  F0129  7930                           mul.w       r3,r0
   171  F012B  A1E20208                       add.w       temp[sb],r2
   172  F012F  732D0006                       mov.w       r2,numi[a1]
   173  F0133  FE01                  B        jmp	  n4
   174                                  ;------------------
   175  F0135  72E30108                 n4:   mov.b       addr[sb],r1h
   176  F0139  C813                  Q        add.b       #1,r1h
   177  F013B  723E0108                       mov.b       r1h,addr[sb]
   178  F013F  6A04                   *       jnz         rotate
               F469FF                   
   179                                  ;---------------------蝶形运算程序--------------------
   180  F0144                           butter:
   181  F0144  B3                    Z        mov.b       #0,r0h
   182  F0145                           bl:
   183  F0145  72E00008                       mov.b       flag[sb],r0l
* M16C FAMILY ASSEMBLER *   SOURCE LIST       Sat Apr 09 03:16:50 2005  PAGE 004

  SEQ.  LOC.   OBJ.              0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4

   184  F0149  AC                             dec.b	      r0l
   185  F014A  6A08                           jz	      n3
   186  F014C                           b2:
   187  F014C  E081                           rot.b       #-1,r0h
   188  F014E  77B4                           rorc.w      a0
   189  F0150  AC                             dec.b       r0l
   190  F0151  6EFA                           jnz         b2
   191                                        
   192  F0153  E984                     n3:   shl.w       #-1,a0
   193  F0155  7345                           mov.w       a0,a1
   194  F0157  77350080                       or.w        #8000h,a1
   195                                        
   196  F015B  C409                  S        mov.b	      #9,r0l
   197  F015D  A8E00008                       sub.b       flag[sb],r0l
   198  F0161                           b3:
   199  F0161  E081                           rot.b       #-1,r0h
   200  F0163  77B4                           rorc.w      a0
   201  F0165  E001                           rot.b	      #1,r0h
   202  F0167  E081                           rot.b	      #-1,r0h
   203  F0169  77B5                           rorc.w      a1
   204  F016B  AC                             dec.b       r0l
   205  F016C  6EF4                           jnz         b3
   206                                        
   207  F016E  E1D4                           rot.w       #-6,a0          ;butter address
   208  F0170  E1D5                           rot.w       #-6,a1
   209  F0172  7724FE01                       and.w       #01feh,a0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -