📄 fft.lst
字号:
* M16C FAMILY ASSEMBLER * SOURCE LIST Sat Apr 09 01:54:19 2005 PAGE 001
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
1 ;---------- INCLUDE OF SFR FILE ----------------
2 ;
3 .list off ; don't draw up a prpgram list
4 .list on ; draw up a program list
5 ;
6 ;---------- DEFINE OF SYMBOLS ------------------
7 ;
8 00000400h VramTOP .equ 000400H ; top address of internal RAM
9 00002BFFh VramEND .equ 002BFFH ; end address of internal RAM
10 00002C00h VIstack .equ 002C00H ; stack pointer
11 0000C000h xishutop .equ 00C000H
12 000F0000h VprogTOP .equ 0F0000H ; top address of program area
13 000FA000h Vintbase .equ 0FA000H ; top address of variable vector table
14 000FFFDCh Vvector .equ 0FFFDCH ; top address of fixed vector table
15 00000380h SB_base .equ 000380H ; base address of SB recative
16 ;
17 ;---------- KEEP OF RAM AREA -------------------
18 ;
19
20 .section memory,data
21 00400 .org VramTOP
22 ;
23 00400(000200H) result: .blkw 256 ; result data
24 00600(000100H) hn: .blkw 128
25 00700(000002H) temp1:.blkw 1
26 00702(000002H) temp2:.blkw 1
27 00704(000002H) resultemp: .blkw 1
28 ;
29 .section prog,code
30 F0000 .org VprogTOP
31 .sb SB_base ; assings aprovisional SB register value
32 .sbsym result ; place data in SB addressing mode
33 ;
34 ;---------- CLEAR OF RAM -----------------------
35 ;
36 F0000 reset:
37 F0000 EB40002C ldc #VIstack,ISP ; set Interrupt Stack Pointer
38 F0004 EB608003 ldc #SB_base,SB ; set SB register
39 ; ldintb #Vintbase ; set Interrupt TaBle register
40 ;
41 F0008 D900 Q mov.w #0,r0 ; 0 clear
42 F000A 75C30014 mov.w #(VramEND+1-VramTOP)/2,r3 ; number of times
43 F000E AA0004 S mov.w #VramTOP,a1 ; start address
44 F0011 7DEA sstr.w
45 ;
46 ;---------- INITIALLIZE ------------------------
47 ;
48 F0013 EB200F00 LDINTB #USER_vector_table
EB1000A0
49 F001B C7065D00 S mov.b #00000110B,int0ic ; INT0 Interrupt control reg set
50 F001F B572 Z* mov.b #0,pd8 ; port8 set input
51 F0021 C5017E S* mov.b #1,pur2 ; p8.1 is pull
52 ;-----------设置hn-------------------------------------
53 F0024 A20006 S mov.w #hn,a0
54 F0027 D900 Q mov.w #0000H,r0
55 F0029 75C18000 mov.w #0080H,r1
56 F002D 7306 loop_1: mov.w r0,[a0]
57 F002F B2 inc.w a0
58 F0030 B2 inc.w a0
59 F0031 C910 Q add.w #1,r0
60 F0033 77510100 sub.w #1,r1
61 F0037 6EF5 jnz loop_1
* M16C FAMILY ASSEMBLER * SOURCE LIST Sat Apr 09 01:54:19 2005 PAGE 002
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
62 ;
63 ;---------- MAIN PROGRAM -----------------------
64 F0039 main:
65
66 F0039 D9F2 Q mov.w #-1,r2
67 F003B D90F0007 Q loop_2: mov.w #0,temp1
68 F003F D90F0207 Q mov.w #0,temp2
69 ;----------每循环一次r2加一,用来表示计算到哪一位
70 F0043 C912 Q add.w #1,r2
71 ;----------r2=256时退出循环------------------
72 F0045 77820001 cmp.w #256,r2
73 F0049 6A09 jz exit
74 ;----------计算r2=k,F(k)--------------------
75 F004B F52500 W jsr dft
76 ;----------保存结果--------------------------
77 F004E F50800 W jsr save
78 F0051 FEE9 B jmp loop_2
79 F0053 7300 exit: mov.w r0,r0
80 F0055 7DF3 wait
81 F0057 7542 save: push.w r2
82 F0059 C2 S push.w a0
83 F005A 7540 push.w r0
84 F005C A20004 S mov.w #result,a0
85 F005F A124 add.w r2,a0
86 F0061 A124 add.w r2,a0
87 F0063 73F00407 mov.w resultemp,r0
88 F0067 7540 push.w r0
89 F0069 75D6 pop.w [a0]
90 F006B 75D0 pop.w r0
91 F006D D2 S pop.w a0
92 F006E 75D2 pop.w r2
93 F0070 F3 RTS
94 F0071 7542 dft: push.w r2
95 F0073 D9F0 Q mov.w #-1,r0
96 F0075 7542 loop_3: push.w r2
97 F0077 C910 Q add.w #1,r0
98 F0079 AA0006 S mov.w #hn,a1
99 F007C A200C0 S mov.w #cosk1,a0
100 F007F 77808000 cmp.w #128,r0
101 F0083 6A29 jz return_1
102 F0085 7540 push.w r0
103 F0087 7321 mov.w r2,r1
104 F0089 7820 mul.b r1l,r0l
105 F008B D902 Q mov.w #0,r2
106 F008D 7DE10001 div.w #256
107 F0091 7320 mov.w r2,r0
108 F0093 A104 add.w r0,a0
109 F0095 A104 add.w r0,a0
110 F0097 75D0 pop.w r0
111 F0099 A105 add.w r0,a1
112 F009B A105 add.w r0,a1
113 F009D 7361 mov.w [a0],r1
114 F009F 7971 mul.w [a1],r1
115 F00A1 A11F0007 add.w r1,temp1
116 F00A5 B13F0207 adc.w r3,temp2
117 F00A9 75D2 pop.w r2
118 F00AB FEC9 B jmp loop_3
119 F00AD return_1:
120 F00AD 73F00007 mov.w temp1,r0
121 F00B1 73F20207 mov.w temp2,r2
122 F00B5 74C3F1 mov.b #-15,r1H
123 F00B8 EB21 SHA.L r1H,r2r0
* M16C FAMILY ASSEMBLER * SOURCE LIST Sat Apr 09 01:54:19 2005 PAGE 003
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
124 F00BA 730F0407 mov.w r0,resultemp
125 F00BE 75D2 pop.w r2
126 F00C0 75D2 pop.w r2
127 F00C2 F3 RTS
128
129
130 ;
131 ;---------- START-----------------------
132 ;
133 F00C3 sw_int0:
134
135
136 F00C3 FB reit
137 ;
138 ;---------- DUMMY UART0 INTERRUPT PROGRAM ------
139 ;
140 F00C4 dummy:
141 F00C4 FB reit;
142 ;
143 ;---------- VARIABLE VECTOR TABLE SET ----------
144 ;
145 .section val_vect,romdata
146 FA000 .org Vintbase
147 FA000 USER_vector_table:
148 FA000 C4000F00 .lword dummy ; No0 Break Interrupt
149 FA004 C4000F00 .lword dummy ; No1 Break Interrupt
150 FA008 C4000F00 .lword dummy ; No2 Break Interrupt
151 FA00C C4000F00 .lword dummy ; No3 Break Interrupt
152 FA010 C4000F00 .lword dummy ; No4 Break Interrupt
153 FA014 C4000F00 .lword dummy ; No5 Break Interrupt
154 FA018 C4000F00 .lword dummy ; No6 Break Interrupt
155 FA01C C4000F00 .lword dummy ; No7 Break Interrupt
156 FA020 C4000F00 .lword dummy ; No8 Break Interrupt
157 FA024 C4000F00 .lword dummy ; No9 Break Interrupt
158 FA028 C4000F00 .lword dummy ; No10 Bus Clash Detect
159 FA02C C4000F00 .lword dummy ; No11 DMA0
160 FA030 C4000F00 .lword dummy ; No12 DMA1
161 FA034 C4000F00 .lword dummy ; No13 KEY IN Interrupt
162 FA038 C4000F00 .lword dummy ; No14 A-D Interrupt
163 FA03C C4000F00 .lword dummy ; No15 UART2 Transmission Interrupt
164 FA040 C4000F00 .lword dummy ; No16 UART2 receive Interrupt
165 FA044 C4000F00 .lword dummy ; No17 UART0 Transmission Interrupt
166 FA048 C4000F00 .lword dummy ; No18 UART0 receive Interrupt
167 FA04C C4000F00 .lword dummy ; No19 UART1 Transmission Interrupt
168 FA050 C4000F00 .lword dummy ; No20 UART1 receive Interrupt
169 FA054 C4000F00 .lword dummy ; No21 TimerA0 Interrupt
170 FA058 C4000F00 .lword dummy ; No22 TimerA1 Interrupt
171 FA05C C4000F00 .lword dummy ; No23 TimerA2 Interrupt
172 FA060 C4000F00 .lword dummy ; No24 TimerA3 Interrupt
173 FA064 C4000F00 .lword dummy ; No25 TimerA4 Interrupt
174 FA068 C4000F00 .lword dummy ; No26 TimerB0 Interrupt
175 FA06C C4000F00 .lword dummy ; No27 TimerB1 Interrupt
176 FA070 C4000F00 .lword dummy ; No28 TimerB2 Interrupt
177 FA074 C3000F00 .lword sw_int0 ; No29 INIT0(Active Low) Interrupt
178 FA078 C4000F00 .lword dummy ; No30 INIT1(Active Low) Interrupt
179 FA07C C4000F00 .lword dummy ; No31 INIT2(Active Low) Interrupt
180 FA080 C4000F00 .lword dummy ; No32 S/W Interrupt
181 FA084 C4000F00 .lword dummy ; No33 S/W Interrupt
182 FA088 C4000F00 .lword dummy ; No34 S/W Interrupt
183 FA08C C4000F00 .lword dummy ; No35 S/W Interrupt
184 FA090 C4000F00 .lword dummy ; No36 S/W Interrupt
185 FA094 C4000F00 .lword dummy ; No37 S/W Interrupt
* M16C FAMILY ASSEMBLER * SOURCE LIST Sat Apr 09 01:54:19 2005 PAGE 004
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
186 FA098 C4000F00 .lword dummy ; No38 S/W Interrupt
187 FA09C C4000F00 .lword dummy ; No39 S/W Interrupt
188 FA0A0 C4000F00 .lword dummy ; No40 S/W Interrupt
189 FA0A4 C4000F00 .lword dummy ; No41 S/W Interrupt
190 FA0A8 C4000F00 .lword dummy ; No42 S/W Interrupt
191 FA0AC C4000F00 .lword dummy ; No43 S/W Interrupt
192 FA0B0 C4000F00 .lword dummy ; No44 S/W Interrupt
193 FA0B4 C4000F00 .lword dummy ; No45 S/W Interrupt
194 FA0B8 C4000F00 .lword dummy ; No46 S/W Interrupt
195 FA0BC C4000F00 .lword dummy ; No47 S/W Interrupt
196 FA0C0 C4000F00 .lword dummy ; No48 S/W Interrupt
197 FA0C4 C4000F00 .lword dummy ; No49 S/W Interrupt
198 FA0C8 C4000F00 .lword dummy ; No50 S/W Interrupt
199 FA0CC C4000F00 .lword dummy ; No51 S/W Interrupt
200 FA0D0 C4000F00 .lword dummy ; No52 S/W Interrupt
201 FA0D4 C4000F00 .lword dummy ; No53 S/W Interrupt
202 FA0D8 C4000F00 .lword dummy ; No54 S/W Interrupt
203 FA0DC C4000F00 .lword dummy ; No55 S/W Interrupt
204 FA0E0 C4000F00 .lword dummy ; No56 S/W Interrupt
205 FA0E4 C4000F00 .lword dummy ; No57 S/W Interrupt
206 FA0E8 C4000F00 .lword dummy ; No58 S/W Interrupt
207 FA0EC C4000F00 .lword dummy ; No59 S/W Interrupt
208 FA0F0 C4000F00 .lword dummy ; No60 S/W Interrupt
209 FA0F4 C4000F00 .lword dummy ; No61 S/W Interrupt
210 FA0F8 C4000F00 .lword dummy ; No62 S/W Interrupt
211 FA0FC C4000F00 .lword dummy ; No63 S/W Interrupt
212 ;
213 ;---------- VECTOR TABLE ----------
214 ;
215 .section inter,romdata
216 FFFFC .org Vvector+(8*4)
217 FFFFC 00000F00 .lword reset
218 .SECTION xishu,ROMDATA
219 0C000 .org xishutop
220 0C000 FF7F cosk1: .word 32767
221
222 0C002 F67F cosk2: .word 32758
223
224 0C004 D87F cosk3: .word 32728
225
226 0C006 A77F cosk4: .word 32679
227
228 0C008 627F cosk5: .word 32610
229
230 0C00A 097F cosk6: .word 32521
231
232 0C00C 9D7E cosk7: .word 32413
233
234 0C00E 1D7E cosk8: .word 32285
235
236 0C010 8A7D cosk9: .word 32138
237
238 0C012 E37C cosk10: .word 31971
239
240 0C014 297C cosk11: .word 31785
241
242 0C016 5D7B cosk12: .word 31581
243
244 0C018 7D7A cosk13: .word 31357
245
246 0C01A 8A79 cosk14: .word 31114
247
* M16C FAMILY ASSEMBLER * SOURCE LIST Sat Apr 09 01:54:19 2005 PAGE 005
SEQ. LOC. OBJ. 0XMSDA ....*....SOURCE STATEMENT....7....*....8....*....9....*....0....*....1....*....2....*....3....*....4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -