fgetc.lst 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. GAS LISTING /tmp/cchNQc7b.s page 1
  2. 1 .file "fgetc.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.fgetc,"ax",@progbits
  10. 9 .global fgetc
  11. 10 .type fgetc, @function
  12. 11 fgetc:
  13. 12 0000 0F93 push r16
  14. 13 0002 1F93 push r17
  15. 14 0004 CF93 push r28
  16. 15 0006 DF93 push r29
  17. 16 0008 1F92 push __zero_reg__
  18. 17 000a CDB7 in r28,__SP_L__
  19. 18 000c DEB7 in r29,__SP_H__
  20. 19 /* prologue: function */
  21. 20 /* frame size = 1 */
  22. 21 /* stack size = 5 */
  23. 22 .L__stack_usage = 5
  24. 23 000e 8C01 movw r16,r24
  25. 24 0010 FC01 movw r30,r24
  26. 25 0012 8481 ldd r24,Z+4
  27. 26 0014 83FF sbrs r24,3
  28. 27 0016 00C0 rjmp .L2
  29. 28 0018 877F andi r24,lo8(-9)
  30. 29 001a 8483 std Z+4,r24
  31. 30 001c 8581 ldd r24,Z+5
  32. 31 001e 9681 ldd r25,Z+6
  33. 32 0020 00C0 rjmp .L3
  34. 33 .L2:
  35. 34 0022 41E0 ldi r20,lo8(1)
  36. 35 0024 50E0 ldi r21,0
  37. 36 0026 BE01 movw r22,r28
  38. 37 0028 6F5F subi r22,-1
  39. 38 002a 7F4F sbci r23,-1
  40. 39 002c F801 movw r30,r16
  41. 40 002e 8081 ld r24,Z
  42. 41 0030 9181 ldd r25,Z+1
  43. 42 0032 0E94 0000 call _read
  44. 43 0036 9C01 movw r18,r24
  45. 44 0038 0197 sbiw r24,1
  46. 45 003a 01F0 breq .L4
  47. 46 003c F801 movw r30,r16
  48. 47 003e 9481 ldd r25,Z+4
  49. 48 0040 232B or r18,r19
  50. 49 0042 01F0 breq .L5
  51. 50 0044 9061 ori r25,lo8(16)
  52. 51 0046 00C0 rjmp .L6
  53. 52 .L5:
  54. 53 0048 9062 ori r25,lo8(32)
  55. 54 004a F801 movw r30,r16
  56. 55 .L6:
  57. 56 004c 9483 std Z+4,r25
  58. 57 004e 8FEF ldi r24,lo8(-1)
  59. GAS LISTING /tmp/cchNQc7b.s page 2
  60. 58 0050 9FEF ldi r25,lo8(-1)
  61. 59 0052 00C0 rjmp .L3
  62. 60 .L4:
  63. 61 0054 8981 ldd r24,Y+1
  64. 62 0056 90E0 ldi r25,0
  65. 63 .L3:
  66. 64 /* epilogue start */
  67. 65 0058 0F90 pop __tmp_reg__
  68. 66 005a DF91 pop r29
  69. 67 005c CF91 pop r28
  70. 68 005e 1F91 pop r17
  71. 69 0060 0F91 pop r16
  72. 70 0062 0895 ret
  73. 71 .size fgetc, .-fgetc
  74. 72 .ident "GCC: (GNU) 5.3.0"
  75. GAS LISTING /tmp/cchNQc7b.s page 3
  76. DEFINED SYMBOLS
  77. *ABS*:0000000000000000 fgetc.c
  78. /tmp/cchNQc7b.s:2 *ABS*:000000000000003e __SP_H__
  79. /tmp/cchNQc7b.s:3 *ABS*:000000000000003d __SP_L__
  80. /tmp/cchNQc7b.s:4 *ABS*:000000000000003f __SREG__
  81. /tmp/cchNQc7b.s:5 *ABS*:000000000000003b __RAMPZ__
  82. /tmp/cchNQc7b.s:6 *ABS*:0000000000000000 __tmp_reg__
  83. /tmp/cchNQc7b.s:7 *ABS*:0000000000000001 __zero_reg__
  84. /tmp/cchNQc7b.s:11 .text.fgetc:0000000000000000 fgetc
  85. UNDEFINED SYMBOLS
  86. _read