📄 main.lst
字号:
203 007a 261B sub r18,r22
204 007c 370B sbc r19,r23
205 007e 8A2F mov r24,r26
206 0080 9927 clr r25
207 0082 8217 cp r24,r18
208 0084 9307 cpc r25,r19
209 0086 88F4 brsh .L20
56:main.c **** {
57:main.c **** max_value=g_aAdValue[i]-ret;
211 .LM26:
212 0088 A081 ld r26,Z
213 008a A61B sub r26,r22
58:main.c **** max_id=i;
215 .LM27:
216 008c C42F mov r28,r20
217 008e 0DC0 rjmp .L20
218 .L22:
59:main.c **** }
60:main.c **** }
61:main.c **** else
62:main.c **** {
63:main.c **** if(ret-g_aAdValue[i]>min_value)
220 .LM28:
221 0090 CB01 movw r24,r22
222 0092 821B sub r24,r18
223 0094 930B sbc r25,r19
224 0096 9C01 movw r18,r24
225 0098 852F mov r24,r21
226 009a 9927 clr r25
227 009c 8217 cp r24,r18
228 009e 9307 cpc r25,r19
229 00a0 20F4 brsh .L20
64:main.c **** {
65:main.c **** min_value=ret-g_aAdValue[i];
231 .LM29:
232 00a2 8081 ld r24,Z
233 00a4 562F mov r21,r22
234 00a6 581B sub r21,r24
66:main.c **** min_id=i;
236 .LM30:
237 00a8 B42F mov r27,r20
239 .LM31:
240 .L20:
241 00aa 4F5F subi r20,lo8(-(1))
242 00ac 3296 adiw r30,2
243 00ae 4830 cpi r20,lo8(8)
244 00b0 F8F2 brlo .L26
67:main.c **** }
68:main.c **** }
69:main.c **** }
70:main.c ****
71:main.c **** //去掉第一个和最大最小值后的平均值
72:main.c **** ret=0;
246 .LM32:
247 00b2 60E0 ldi r22,lo8(0)
248 00b4 70E0 ldi r23,hi8(0)
73:main.c **** for(i=1;i<8;i++)
250 .LM33:
251 00b6 41E0 ldi r20,lo8(1)
252 00b8 E0E0 ldi r30,lo8(g_aAdValue+2)
253 00ba F0E0 ldi r31,hi8(g_aAdValue+2)
254 .L32:
74:main.c **** {
75:main.c **** if((i!=min_id)&&(i!=max_id))
256 .LM34:
257 00bc 4B17 cp r20,r27
258 00be 31F0 breq .L29
259 00c0 4C17 cp r20,r28
260 00c2 21F0 breq .L29
76:main.c **** ret+=g_aAdValue[i];
262 .LM35:
263 00c4 8081 ld r24,Z
264 00c6 9181 ldd r25,Z+1
265 00c8 680F add r22,r24
266 00ca 791F adc r23,r25
268 .LM36:
269 .L29:
270 00cc 4F5F subi r20,lo8(-(1))
271 00ce 3296 adiw r30,2
272 00d0 4830 cpi r20,lo8(8)
273 00d2 A0F3 brlo .L32
77:main.c **** }
78:main.c **** if(min_id!=max_id)
275 .LM37:
276 00d4 BC17 cp r27,r28
277 00d6 21F0 breq .L33
79:main.c **** ret/=5;
279 .LM38:
280 00d8 CB01 movw r24,r22
281 00da 65E0 ldi r22,lo8(5)
282 00dc 70E0 ldi r23,hi8(5)
283 00de 03C0 rjmp .L45
284 .L33:
80:main.c **** else
81:main.c **** ret/=6;
286 .LM39:
287 00e0 CB01 movw r24,r22
288 00e2 66E0 ldi r22,lo8(6)
289 00e4 70E0 ldi r23,hi8(6)
290 .L45:
291 00e6 00D0 rcall __udivmodhi4
82:main.c ****
83:main.c **** ADCSRA=0;//关闭ADC
293 .LM40:
294 00e8 16B8 out 38-0x20,__zero_reg__
84:main.c ****
85:main.c **** return ret;
86:main.c **** }
296 .LM41:
297 .LBE2:
298 00ea CB01 movw r24,r22
299 /* epilogue: frame size=0 */
300 00ec CF91 pop r28
301 00ee 0895 ret
302 /* epilogue end (size=2) */
303 /* function AdcConvert size 124 (121) */
319 .data
320 .LC0:
321 0000 2563 00 .string "%c"
322 .LC1:
323 0003 2564 0A00 .string "%d\n"
324 .text
326 .global main
328 main:
87:main.c ****
88:main.c **** int main(void)
89:main.c **** {
330 .LM42:
331 /* prologue: frame size=1 */
332 00f0 C0E0 ldi r28,lo8(__stack - 1)
333 00f2 D0E0 ldi r29,hi8(__stack - 1)
334 00f4 DEBF out __SP_H__,r29
335 00f6 CDBF out __SP_L__,r28
336 /* prologue end (size=4) */
90:main.c **** uchar i;
91:main.c **** IoInit();
338 .LM43:
339 .LBB5:
340 00f8 00D0 rcall IoInit
341 .L52:
92:main.c ****
93:main.c **** while(1)
94:main.c **** {
95:main.c **** scanf("%c",&i);
343 .LM44:
344 00fa CE01 movw r24,r28
345 00fc 0196 adiw r24,1
346 00fe 9F93 push r25
347 0100 8F93 push r24
348 0102 80E0 ldi r24,lo8(.LC0)
349 0104 90E0 ldi r25,hi8(.LC0)
350 0106 9F93 push r25
351 0108 8F93 push r24
352 010a 00D0 rcall scanf
96:main.c **** if(i=='c')
354 .LM45:
355 010c 8981 ldd r24,Y+1
356 010e 0F90 pop __tmp_reg__
357 0110 0F90 pop __tmp_reg__
358 0112 0F90 pop __tmp_reg__
359 0114 0F90 pop __tmp_reg__
360 0116 8336 cpi r24,lo8(99)
361 0118 81F7 brne .L52
97:main.c **** printf("%d\n",AdcConvert());
363 .LM46:
364 011a 72DF rcall AdcConvert
365 011c 9F93 push r25
366 011e 8F93 push r24
367 0120 80E0 ldi r24,lo8(.LC1)
368 0122 90E0 ldi r25,hi8(.LC1)
369 0124 9F93 push r25
370 0126 8F93 push r24
371 0128 00D0 rcall printf
372 012a 0F90 pop __tmp_reg__
373 012c 0F90 pop __tmp_reg__
374 012e 0F90 pop __tmp_reg__
375 0130 0F90 pop __tmp_reg__
376 0132 E3CF rjmp .L52
98:main.c **** }
99:main.c **** }
378 .LM47:
379 .LBE5:
380 /* epilogue: frame size=1 */
381 /* epilogue: noreturn */
382 /* epilogue end (size=0) */
383 /* function main size 34 (30) */
388 .lcomm g_aAdValue,16
390 .text
392 Letext:
393 /* File "main.c": code 158 = 0x009e ( 151), prologues 5, epilogues 2 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxaaaa.s:67 .text:00000000 AdcConvert
.bss:00000000 g_aAdValue
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxaaaa.s:328 .text:000000f0 main
G:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccxaaaa.s:392 .text:00000134 Letext
*ABS*:00000000 *ABS*
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__udivmodhi4
__stack
IoInit
scanf
printf
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -