Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .text
- .global main
- .extern fgetc
- .extern fputc
- .extern realloc
- .extern free
- main:
- push {r9, lr}
- mov r0, #0
- mov r1, #8
- bl realloc
- mov r9, r0
- mov r1, #0
- str r1, [r9]
- str r1, [r9, #4]
- loop:
- ldr r1, .Lexterns
- ldr r0, [r1]
- bl fgetc
- cmp r0, #0
- blt print
- str r0, [r9, #4]
- // ldr r0, [r9]
- // add r0, #1
- // str r0, [r9]
- ldr r1, [r9]
- add r1, #3
- mov r3, #4
- mul r2, r1, r3
- mov r1, r2
- mov r0, r9
- bl realloc
- mov r9, r0
- ldr r3, [r9, #4]
- ldr r1, [r9]
- add r1, #2
- mov r4, #4
- mul r2, r1, r4
- mov r1, r2
- str r3, [r9, r1]
- ldr r1, [r9]
- add r1, #1
- str r1, [r9]
- str r1, [r9, #4]
- b loop
- //
- print:
- //
- ldr r0, [r9]
- cmp r0, #1
- blt endloop
- sub r0, #1
- str r0, [r9]
- add r0, #2
- mov r1, r0
- mov r3, #4
- mul r1, r0, r3
- ldr r0, [r9, r1]
- ldr r1, .Lexterns+4
- ldr r1, [r1]
- bl fputc
- b print
- endloop:
- ldr r1, [r9, #1]
- add r1, #2
- mov r3, #4
- mul r2, r1, r3
- mov r1, r2
- mov r0, r9
- bl free
- pop {r9, r14}
- bx lr
- .Lexterns:
- .word stdin
- .word stdout
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement