Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. .text
  2. .global main
  3. .extern fgetc
  4. .extern fputc
  5. .extern realloc
  6. .extern free
  7. main:
  8.  
  9. push {r9, lr}
  10. mov r0, #0
  11. mov r1, #8
  12. bl realloc
  13.  
  14. mov r9, r0
  15.  
  16. mov r1, #0
  17.  
  18. str r1, [r9]
  19. str r1, [r9, #4]
  20.  
  21. loop:
  22.  
  23. ldr r1, .Lexterns
  24. ldr r0, [r1]
  25. bl fgetc
  26.  
  27. cmp r0, #0
  28. blt print
  29.  
  30. str r0, [r9, #4]
  31.  
  32. // ldr r0, [r9]
  33. // add r0, #1
  34. // str r0, [r9]
  35.  
  36.  
  37. ldr r1, [r9]
  38. add r1, #3
  39. mov r3, #4
  40. mul r2, r1, r3
  41. mov r1, r2
  42. mov r0, r9
  43. bl realloc
  44.  
  45. mov r9, r0
  46. ldr r3, [r9, #4]
  47. ldr r1, [r9]
  48. add r1, #2
  49. mov r4, #4
  50. mul r2, r1, r4
  51. mov r1, r2
  52. str r3, [r9, r1]
  53. ldr r1, [r9]
  54. add r1, #1
  55. str r1, [r9]
  56. str r1, [r9, #4]
  57.  
  58. b loop
  59. //
  60. print:
  61. //
  62. ldr r0, [r9]
  63. cmp r0, #1
  64.  
  65. blt endloop
  66. sub r0, #1
  67. str r0, [r9]
  68. add r0, #2
  69. mov r1, r0
  70. mov r3, #4
  71. mul r1, r0, r3
  72. ldr r0, [r9, r1]
  73. ldr r1, .Lexterns+4
  74. ldr r1, [r1]
  75. bl fputc
  76.  
  77. b print
  78.  
  79. endloop:
  80. ldr r1, [r9, #1]
  81. add r1, #2
  82. mov r3, #4
  83. mul r2, r1, r3
  84. mov r1, r2
  85. mov r0, r9
  86. bl free
  87. pop {r9, r14}
  88. bx lr
  89.  
  90. .Lexterns:
  91. .word stdin
  92. .word stdout
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement