Advertisement
Guest User

Untitled

a guest
Jan 12th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 0.80 KB | None | 0 0
  1. .text
  2. .global main
  3. .global getchar
  4.  
  5. main:
  6.   push {lr}
  7.   mov r7,#0
  8.   mov r8,#0
  9.   mov r9,#0
  10.   mov r6,#0
  11.   bl read
  12.  
  13. read:
  14.   bl getchar
  15.   mov r1, r0
  16.  
  17.   cmp r1,#-1
  18.   beq printout
  19.  
  20.   cmp r1,#10
  21.   cmpne r1,#32
  22.   bne addchar
  23.  
  24.   cmp r6,#0
  25.   beq addword
  26.  
  27.   cmp r1,#10
  28.   beq addline
  29.  
  30.   b read
  31.  
  32.  
  33.  
  34. addline:
  35.   add r7,#1
  36.   b read
  37.  
  38. addword:
  39.   add r9,#1
  40.   add r8,#1
  41.   mov r6,#1
  42.   cmp r1,#10
  43.   beq addline
  44.   b read
  45.  
  46. addfinalword:
  47.   add r8,#1
  48.   mov r6,#1
  49.   bl printout
  50.  
  51. addchar:
  52.   add r9,#1
  53.   mov r6,#0
  54.   b read
  55.  
  56. printout:
  57.   cmp r6,#0
  58.   beq addfinalword
  59.  
  60.   mov r1,r7
  61.   ldr r0,=format
  62.   bl printf
  63.  
  64.   mov r1,r8
  65.   ldr r0,=format
  66.   bl printf
  67.  
  68.   mov r1,r9
  69.   ldr r0,=format
  70.   bl printf
  71.  
  72.   bl getchar
  73.   pop {lr}
  74.   bx lr
  75.  
  76.  
  77. .data
  78. format:
  79.     .asciz " %d\n"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement