Advertisement
Guest User

Untitled

a guest
May 20th, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. .data
  2. str1: .ascii "Geben Sie beliebig viele Zahlen zwischen 1 und 99 ein.\n"
  3. .asciiz "Eingabe von 0 beendet die Eingabe und gibt das Ergebnis aus.\n"
  4. askstr: .asciiz "\n?-> "
  5. errstr: .asciiz "Sie dürfen nur Zahlen zwischen 1 und 99 eingeben.\n"
  6. answstr:.asciiz "Das Ergebnis lautet: "
  7. str2: .asciiz "\n\n"
  8.  
  9. .text
  10. main: li $s0, 0 # s0 = 0 result of this program
  11. li $s1, 0 # s1 = 0 used in the math part of loop
  12. # Print str1
  13. li $v0, 4 # v0 = 4
  14. la $a0, str1 # a0 -> str1
  15. syscall # print string
  16.  
  17. loop: # Print askstr
  18. li $v0, 4 # v0 = 4
  19. la $a0, askstr # a0 -> askstr
  20. syscall # print string
  21.  
  22. # Load user input into v0
  23. li $v0, 5 # v0 = 5
  24. syscall # read int
  25.  
  26. # Check if 0 < v0 < 99
  27. li $t2, 99 # t2 = 99
  28. bgt $v0, $t2, error # v0 > t2 => error
  29. li $t2, 0 # t2 = 0
  30. blt $v0, $t2, error # v0 < t2 => error
  31.  
  32. # Check if v0 == 0
  33. beqz $v0, exit # v0 == 0 => exit
  34.  
  35. # Math
  36. addi $s1, $s1, 1 # s1 = s1 + 1
  37. mul $t2, $v0, $v0 # t2 = v0 * v0
  38. mul $t2, $t2, $s1 # t2 = t2 * s1
  39. add $s0, $s0, $t2 # s0 = s0 + t2
  40.  
  41. # Let's loop again
  42. j loop # => loop
  43.  
  44. error: # Print error
  45. li $v0, 4 # v0 = 4
  46. la $a0, errstr # a0 -> errstr
  47. syscall # print string
  48.  
  49. # Back to the loop
  50. j loop # => loop
  51.  
  52. exit: # Print answstr
  53. li $v0, 4 # v0 = 4
  54. la $a0, answstr # a0 -> answstr
  55. syscall # print string
  56.  
  57. # Print result
  58. li $v0, 1 # v0 = 1
  59. move $a0, $s0 # a0 = s0
  60. syscall # print int
  61.  
  62. # Print str2
  63. li $v0, 4 # v0 = 4
  64. la $a0, str2 # a0 -> str2
  65. syscall # print string
  66.  
  67. # Exit
  68. li $v0, 10 # v0 = 10
  69. syscall # exit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement