fgets.lst 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. GAS LISTING /tmp/ccZEvyHc.s page 1
  2. 1 .file "fgets.c"
  3. 2 __SP_H__ = 0x3e
  4. 3 __SP_L__ = 0x3d
  5. 4 __SREG__ = 0x3f
  6. 5 __RAMPZ__ = 0x3b
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .section .text.fgets,"ax",@progbits
  10. 9 .global fgets
  11. 10 .type fgets, @function
  12. 11 fgets:
  13. 12 0000 CF92 push r12
  14. 13 0002 DF92 push r13
  15. 14 0004 EF92 push r14
  16. 15 0006 FF92 push r15
  17. 16 0008 0F93 push r16
  18. 17 000a 1F93 push r17
  19. 18 000c CF93 push r28
  20. 19 000e DF93 push r29
  21. 20 /* prologue: function */
  22. 21 /* frame size = 0 */
  23. 22 /* stack size = 8 */
  24. 23 .L__stack_usage = 8
  25. 24 0010 8C01 movw r16,r24
  26. 25 0012 6A01 movw r12,r20
  27. 26 0014 7B01 movw r14,r22
  28. 27 0016 C02F mov r28,r16
  29. 28 0018 D12F mov r29,r17
  30. 29 .L2:
  31. 30 001a 82E0 ldi r24,2
  32. 31 001c E816 cp r14,r24
  33. 32 001e F104 cpc r15,__zero_reg__
  34. 33 0020 04F0 brlt .L5
  35. 34 0022 C601 movw r24,r12
  36. 35 0024 0E94 0000 call fgetc
  37. 36 0028 8F3F cpi r24,-1
  38. 37 002a 2FEF ldi r18,-1
  39. 38 002c 9207 cpc r25,r18
  40. 39 002e 01F4 brne .L3
  41. 40 0030 1882 st Y,__zero_reg__
  42. 41 0032 80E0 ldi r24,0
  43. 42 0034 90E0 ldi r25,0
  44. 43 0036 00C0 rjmp .L4
  45. 44 .L3:
  46. 45 0038 2196 adiw r28,1
  47. 46 003a FE01 movw r30,r28
  48. 47 003c 3197 sbiw r30,1
  49. 48 003e 8083 st Z,r24
  50. 49 0040 21E0 ldi r18,1
  51. 50 0042 E21A sub r14,r18
  52. 51 0044 F108 sbc r15,__zero_reg__
  53. 52 0046 0A97 sbiw r24,10
  54. 53 0048 01F4 brne .L2
  55. 54 .L5:
  56. 55 004a 1882 st Y,__zero_reg__
  57. 56 004c C801 movw r24,r16
  58. 57 .L4:
  59. GAS LISTING /tmp/ccZEvyHc.s page 2
  60. 58 /* epilogue start */
  61. 59 004e DF91 pop r29
  62. 60 0050 CF91 pop r28
  63. 61 0052 1F91 pop r17
  64. 62 0054 0F91 pop r16
  65. 63 0056 FF90 pop r15
  66. 64 0058 EF90 pop r14
  67. 65 005a DF90 pop r13
  68. 66 005c CF90 pop r12
  69. 67 005e 0895 ret
  70. 68 .size fgets, .-fgets
  71. 69 .ident "GCC: (GNU) 5.3.0"
  72. GAS LISTING /tmp/ccZEvyHc.s page 3
  73. DEFINED SYMBOLS
  74. *ABS*:0000000000000000 fgets.c
  75. /tmp/ccZEvyHc.s:2 *ABS*:000000000000003e __SP_H__
  76. /tmp/ccZEvyHc.s:3 *ABS*:000000000000003d __SP_L__
  77. /tmp/ccZEvyHc.s:4 *ABS*:000000000000003f __SREG__
  78. /tmp/ccZEvyHc.s:5 *ABS*:000000000000003b __RAMPZ__
  79. /tmp/ccZEvyHc.s:6 *ABS*:0000000000000000 __tmp_reg__
  80. /tmp/ccZEvyHc.s:7 *ABS*:0000000000000001 __zero_reg__
  81. /tmp/ccZEvyHc.s:11 .text.fgets:0000000000000000 fgets
  82. UNDEFINED SYMBOLS
  83. fgetc