📄 softuart.lst
字号:
266 /* epilogue: frame size=0 */
267 016a 0895 ret
268 /* epilogue end (size=1) */
269 /* function softuart_turn_rx_off size 4 (3) */
270 .LFE8:
272 .global softuart_getchar
274 softuart_getchar:
275 .LFB9:
276 .LM52:
277 /* prologue: frame size=0 */
278 /* prologue end (size=0) */
279 .LM53:
280 016c 2091 0000 lds r18,qout
281 .L33:
282 .LM54:
283 0170 8091 0000 lds r24,qin
284 0174 2817 cp r18,r24
285 0176 01F0 breq .L33
286 .LM55:
287 0178 E22F mov r30,r18
288 017a FF27 clr r31
289 017c E050 subi r30,lo8(-(inbuf))
290 017e F040 sbci r31,hi8(-(inbuf))
291 0180 E081 ld r30,Z
292 .LVL5:
293 .LM56:
294 0182 822F mov r24,r18
295 0184 8F5F subi r24,lo8(-(1))
296 0186 8093 0000 sts qout,r24
297 018a 8032 cpi r24,lo8(32)
298 018c 00F0 brlo .L35
299 .LM57:
300 018e 1092 0000 sts qout,__zero_reg__
301 .L35:
302 .LM58:
303 0192 8E2F mov r24,r30
304 0194 9927 clr r25
305 /* epilogue: frame size=0 */
306 0196 0895 ret
307 /* epilogue end (size=1) */
308 /* function softuart_getchar size 22 (21) */
309 .LFE9:
311 .global softuart_kbhit
313 softuart_kbhit:
314 .LFB10:
315 .LM59:
316 /* prologue: frame size=0 */
317 /* prologue end (size=0) */
318 .LM60:
319 0198 9091 0000 lds r25,qin
320 019c 20E0 ldi r18,lo8(0)
321 019e 30E0 ldi r19,hi8(0)
322 01a0 8091 0000 lds r24,qout
323 01a4 9817 cp r25,r24
324 01a6 01F0 breq .L41
325 .LM61:
326 01a8 21E0 ldi r18,lo8(1)
327 01aa 30E0 ldi r19,hi8(1)
328 .L41:
329 .LM62:
330 01ac C901 movw r24,r18
331 /* epilogue: frame size=0 */
332 01ae 0895 ret
333 /* epilogue end (size=1) */
334 /* function softuart_kbhit size 12 (11) */
335 .LFE10:
337 .global softuart_flush_input_buffer
339 softuart_flush_input_buffer:
340 .LFB11:
341 .LM63:
342 /* prologue: frame size=0 */
343 /* prologue end (size=0) */
344 .LM64:
345 01b0 1092 0000 sts qin,__zero_reg__
346 .LM65:
347 01b4 1092 0000 sts qout,__zero_reg__
348 /* epilogue: frame size=0 */
349 01b8 0895 ret
350 /* epilogue end (size=1) */
351 /* function softuart_flush_input_buffer size 5 (4) */
352 .LFE11:
354 .global softuart_can_transmit
356 softuart_can_transmit:
357 .LFB12:
358 .LM66:
359 /* prologue: frame size=0 */
360 /* prologue end (size=0) */
361 .LM67:
362 01ba 8091 0000 lds r24,flag_tx_ready
363 .LM68:
364 01be 9927 clr r25
365 /* epilogue: frame size=0 */
366 01c0 0895 ret
367 /* epilogue end (size=1) */
368 /* function softuart_can_transmit size 4 (3) */
369 .LFE12:
371 .global softuart_putchar
373 softuart_putchar:
374 .LFB13:
375 .LM69:
376 /* prologue: frame size=0 */
377 /* prologue end (size=0) */
378 .LVL6:
379 01c2 982F mov r25,r24
380 .LVL7:
381 .L49:
382 .LM70:
383 01c4 8091 0000 lds r24,flag_tx_ready
384 01c8 8823 tst r24
385 01ca 01F4 brne .L49
386 .LM71:
387 01cc 83E0 ldi r24,lo8(3)
388 01ce 8093 0000 sts timer_tx_ctr,r24
389 .LM72:
390 01d2 8AE0 ldi r24,lo8(10)
391 01d4 8093 0000 sts bits_left_in_tx,r24
392 .LM73:
393 01d8 892F mov r24,r25
394 01da 9927 clr r25
395 01dc 880F lsl r24
396 01de 991F rol r25
397 01e0 9260 ori r25,hi8(512)
398 01e2 9093 0000 sts (internal_tx_buffer)+1,r25
399 01e6 8093 0000 sts internal_tx_buffer,r24
400 .LM74:
401 01ea 81E0 ldi r24,lo8(1)
402 01ec 8093 0000 sts flag_tx_ready,r24
403 /* epilogue: frame size=0 */
404 01f0 0895 ret
405 /* epilogue end (size=1) */
406 /* function softuart_putchar size 24 (23) */
407 .LFE13:
409 .global softuart_puts
411 softuart_puts:
412 .LFB14:
413 .LM75:
414 /* prologue: frame size=0 */
415 01f2 CF93 push r28
416 01f4 DF93 push r29
417 /* prologue end (size=2) */
418 .LVL8:
419 01f6 EC01 movw r28,r24
420 01f8 00C0 rjmp .L55
421 .LVL9:
422 .L56:
423 .LM76:
424 01fa 2196 adiw r28,1
425 01fc 00D0 rcall softuart_putchar
426 .LVL10:
427 .L55:
428 .LM77:
429 01fe 8881 ld r24,Y
430 0200 8823 tst r24
431 0202 01F4 brne .L56
432 /* epilogue: frame size=0 */
433 0204 DF91 pop r29
434 0206 CF91 pop r28
435 0208 0895 ret
436 /* epilogue end (size=3) */
437 /* function softuart_puts size 12 (7) */
438 .LFE14:
440 .global softuart_puts_p
442 softuart_puts_p:
443 .LFB15:
444 .LM78:
445 /* prologue: frame size=0 */
446 020a CF93 push r28
447 020c DF93 push r29
448 /* prologue end (size=2) */
449 .LVL11:
450 020e EC01 movw r28,r24
451 0210 00C0 rjmp .L60
452 .LVL12:
453 .L61:
454 .LM79:
455 0212 00D0 rcall softuart_putchar
456 .LVL13:
457 .L60:
458 0214 FE01 movw r30,r28
459 .LVL14:
460 .LBB12:
461 .LM80:
462 0216 2196 adiw r28,1
463 /* #APP */
464 0218 8491 lpm r24, Z
465
466 .LVL15:
467 /* #NOAPP */
468 .LBE12:
469 021a 8823 tst r24
470 021c 01F4 brne .L61
471 /* epilogue: frame size=0 */
472 021e DF91 pop r29
473 0220 CF91 pop r28
474 0222 0895 ret
475 /* epilogue end (size=3) */
476 /* function softuart_puts_p size 16 (11) */
477 .LFE15:
479 .lcomm qin,1
480 .lcomm qout,1
481 .lcomm internal_rx_buffer.1384,1
482 .lcomm bits_left_in_rx.1383,1
483 .lcomm timer_rx_ctr.1382,1
484 .lcomm rx_mask.1381,1
485 .lcomm flag_rx_waiting_for_stop_bit.1380,1
486 .lcomm inbuf,32
487 .lcomm flag_rx_off,1
488 .lcomm flag_rx_ready,1
489 .lcomm flag_tx_ready,1
490 .lcomm timer_tx_ctr,1
491 .lcomm bits_left_in_tx,1
492 .lcomm internal_tx_buffer,2
585 .Letext0:
DEFINED SYMBOLS
*ABS*:00000000 softuart.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:20 .text:00000000 __vector_9
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:488 .bss:00000029 flag_tx_ready
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:489 .bss:0000002a timer_tx_ctr
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:491 .bss:0000002c internal_tx_buffer
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:490 .bss:0000002b bits_left_in_tx
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:486 .bss:00000027 flag_rx_off
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:484 .bss:00000006 flag_rx_waiting_for_stop_bit.1380
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:482 .bss:00000004 timer_rx_ctr.1382
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:487 .bss:00000028 flag_rx_ready
.bss:00000000 qin
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:480 .bss:00000002 internal_rx_buffer.1384
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:485 .bss:00000007 inbuf
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:481 .bss:00000003 bits_left_in_rx.1383
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:483 .bss:00000005 rx_mask.1381
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:192 .text:00000138 softuart_init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:243 .text:0000015e softuart_turn_rx_on
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:258 .text:00000164 softuart_turn_rx_off
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:274 .text:0000016c softuart_getchar
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:479 .bss:00000001 qout
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:313 .text:00000198 softuart_kbhit
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:339 .text:000001b0 softuart_flush_input_buffer
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:356 .text:000001ba softuart_can_transmit
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:373 .text:000001c2 softuart_putchar
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:411 .text:000001f2 softuart_puts
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccuQaaaa.s:442 .text:0000020a softuart_puts_p
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -