📄 main.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Generator V4.2.8 - 03 Dec 2008
4 bsct
5 0000 _t:
6 0000 0000 dc.w 0
60 ; 27 void main()
60 ; 28 {
62 switch .text
63 0000 _main:
65 0000 5208 subw sp,#8
66 00000008 OFST: set 8
69 ; 34 CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2); //HSI为16M,2分频8m
71 0002 a608 ld a,#8
72 0004 cd0000 call _CLK_HSIPrescalerConfig
74 ; 38 TIM2_ICInit(TIM2_CHANNEL_1, TIM2_ICPOLARITY_RISING, TIM2_ICSELECTION_DIRECTTI, TIM2_ICPSC_DIV8, 0);
76 0007 4b00 push #0
77 0009 4b0c push #12
78 000b 4b01 push #1
79 000d 5f clrw x
80 000e 4f clr a
81 000f 95 ld xh,a
82 0010 cd0000 call _TIM2_ICInit
84 0013 5b03 addw sp,#3
85 ; 40 TIM2_Cmd(ENABLE); //使能TIM2计数
87 0015 a601 ld a,#1
88 0017 cd0000 call _TIM2_Cmd
90 ; 43 TIM2_ClearFlag(TIM2_FLAG_CC1);
92 001a ae0002 ldw x,#2
93 001d cd0000 call _TIM2_ClearFlag
95 ; 45 UART2_DeInit();
97 0020 cd0000 call _UART2_DeInit
99 ; 47 UART2_Init(38400,UART2_WORDLENGTH_8D,UART2_STOPBITS_1,UART2_PARITY_NO, UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TX_ENABLE);
101 0023 4b04 push #4
102 0025 4b80 push #128
103 0027 4b00 push #0
104 0029 4b00 push #0
105 002b 4b00 push #0
106 002d ae9600 ldw x,#38400
107 0030 89 pushw x
108 0031 ae0000 ldw x,#0
109 0034 89 pushw x
110 0035 cd0000 call _UART2_Init
112 0038 5b09 addw sp,#9
113 ; 49 putStrLine("Yes,The serialport is ok already?");
115 003a ae0000 ldw x,#L72
116 003d cd0000 call _putStrLine
119 0040 L33:
120 ; 51 while((TIM2->SR1 & TIM2_FLAG_CC1) != TIM2_FLAG_CC1);
122 0040 c65302 ld a,21250
123 0043 a402 and a,#2
124 0045 a102 cp a,#2
125 0047 26f7 jrne L33
126 ; 55 t1 = TIM2_GetCapture1();
128 0049 cd0000 call _TIM2_GetCapture1
130 004c bf04 ldw _t1,x
131 ; 57 TIM2_ClearFlag(TIM2_FLAG_CC1);
133 004e ae0002 ldw x,#2
134 0051 cd0000 call _TIM2_ClearFlag
137 0054 L14:
138 ; 62 while((TIM2->SR1 & TIM2_FLAG_CC1) != TIM2_FLAG_CC1);
140 0054 c65302 ld a,21250
141 0057 a402 and a,#2
142 0059 a102 cp a,#2
143 005b 26f7 jrne L14
144 ; 66 t2 = TIM2_GetCapture1();
146 005d cd0000 call _TIM2_GetCapture1
148 0060 bf02 ldw _t2,x
149 ; 68 TIM2_ClearFlag(TIM2_FLAG_CC1);
151 0062 ae0002 ldw x,#2
152 0065 cd0000 call _TIM2_ClearFlag
154 ; 70 t=t2-t1;
156 0068 be02 ldw x,_t2
157 006a 72b00004 subw x,_t1
158 006e bf00 ldw _t,x
159 ; 74 f=8*8000000/t;
161 0070 be00 ldw x,_t
162 0072 cd0000 call c_uitolx
164 0075 96 ldw x,sp
165 0076 1c0001 addw x,#OFST-7
166 0079 cd0000 call c_rtol
168 007c ae9000 ldw x,#36864
169 007f bf02 ldw c_lreg+2,x
170 0081 ae03d0 ldw x,#976
171 0084 bf00 ldw c_lreg,x
172 0086 96 ldw x,sp
173 0087 1c0001 addw x,#OFST-7
174 008a cd0000 call c_ldiv
176 008d be02 ldw x,c_lreg+2
177 008f bf00 ldw _f,x
178 ; 78 putInt(f);
180 0091 be00 ldw x,_f
181 0093 cd0000 call c_uitolx
183 0096 be02 ldw x,c_lreg+2
184 0098 89 pushw x
185 0099 be00 ldw x,c_lreg
186 009b 89 pushw x
187 009c cd0000 call _putInt
189 009f 5b04 addw sp,#4
190 ; 79 putChr('\r');
192 00a1 a60d ld a,#13
193 00a3 cd0000 call _putChr
195 ; 80 putChr('\n');
197 00a6 a60a ld a,#10
198 00a8 cd0000 call _putChr
200 00ab L54:
201 ; 89 u32 i=50000;
203 00ab aec350 ldw x,#50000
204 00ae 1f07 ldw (OFST-1,sp),x
205 00b0 ae0000 ldw x,#0
206 00b3 1f05 ldw (OFST-3,sp),x
208 00b5 L55:
209 ; 90 while((TIM2->SR1 & TIM2_FLAG_CC1) != TIM2_FLAG_CC1);
211 00b5 c65302 ld a,21250
212 00b8 a402 and a,#2
213 00ba a102 cp a,#2
214 00bc 26f7 jrne L55
215 ; 94 t1 = TIM2_GetCapture1();
217 00be cd0000 call _TIM2_GetCapture1
219 00c1 bf04 ldw _t1,x
220 ; 96 TIM2_ClearFlag(TIM2_FLAG_CC1);
222 00c3 ae0002 ldw x,#2
223 00c6 cd0000 call _TIM2_ClearFlag
226 00c9 L36:
227 ; 101 while((TIM2->SR1 & TIM2_FLAG_CC1) != TIM2_FLAG_CC1);
229 00c9 c65302 ld a,21250
230 00cc a402 and a,#2
231 00ce a102 cp a,#2
232 00d0 26f7 jrne L36
233 ; 105 t2 = TIM2_GetCapture1();
235 00d2 cd0000 call _TIM2_GetCapture1
237 00d5 bf02 ldw _t2,x
238 ; 107 TIM2_ClearFlag(TIM2_FLAG_CC1);
240 00d7 ae0002 ldw x,#2
241 00da cd0000 call _TIM2_ClearFlag
243 ; 109 t=t2-t1;
245 00dd be02 ldw x,_t2
246 00df 72b00004 subw x,_t1
247 00e3 bf00 ldw _t,x
248 ; 113 f=8*8000000/t;
250 00e5 be00 ldw x,_t
251 00e7 cd0000 call c_uitolx
253 00ea 96 ldw x,sp
254 00eb 1c0001 addw x,#OFST-7
255 00ee cd0000 call c_rtol
257 00f1 ae9000 ldw x,#36864
258 00f4 bf02 ldw c_lreg+2,x
259 00f6 ae03d0 ldw x,#976
260 00f9 bf00 ldw c_lreg,x
261 00fb 96 ldw x,sp
262 00fc 1c0001 addw x,#OFST-7
263 00ff cd0000 call c_ldiv
265 0102 be02 ldw x,c_lreg+2
266 0104 bf00 ldw _f,x
267 ; 117 putInt(f);
269 0106 be00 ldw x,_f
270 0108 cd0000 call c_uitolx
272 010b be02 ldw x,c_lreg+2
273 010d 89 pushw x
274 010e be00 ldw x,c_lreg
275 0110 89 pushw x
276 0111 cd0000 call _putInt
278 0114 5b04 addw sp,#4
279 ; 118 putChr('\r');
281 0116 a60d ld a,#13
282 0118 cd0000 call _putChr
284 ; 119 putChr('\n');
286 011b a60a ld a,#10
287 011d cd0000 call _putChr
290 0120 L17:
291 ; 120 while(i--); //延迟一段时间
293 0120 96 ldw x,sp
294 0121 1c0005 addw x,#OFST-3
295 0124 cd0000 call c_ltor
297 0127 96 ldw x,sp
298 0128 1c0005 addw x,#OFST-3
299 012b a601 ld a,#1
300 012d cd0000 call c_lgsbc
302 0130 cd0000 call c_lrzmp
304 0133 26eb jrne L17
306 0135 acab00ab jpf L54
357 xdef _main
358 xdef _t
359 switch .ubsct
360 0000 _f:
361 0000 0000 ds.b 2
362 xdef _f
363 0002 _t2:
364 0002 0000 ds.b 2
365 xdef _t2
366 0004 _t1:
367 0004 0000 ds.b 2
368 xdef _t1
369 xref _putInt
370 xref _putStrLine
371 xref _putChr
372 xref _UART2_Init
373 xref _UART2_DeInit
374 xref _TIM2_ClearFlag
375 xref _TIM2_GetCapture1
376 xref _TIM2_Cmd
377 xref _TIM2_ICInit
378 xref _CLK_HSIPrescalerConfig
379 .const: section .text
380 0000 L72:
381 0000 5965732c5468 dc.b "Yes,The serialport"
382 0012 206973206f6b dc.b " is ok already?",0
383 xref.b c_lreg
384 xref.b c_x
404 xref c_lrzmp
405 xref c_lgsbc
406 xref c_ltor
407 xref c_ldiv
408 xref c_rtol
409 xref c_uitolx
410 end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -