Advertisement
Guest User

Untitled

a guest
Apr 27th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. .data
  2. expVal23: .asciiz "Expected Value : 23 Your Value : "
  3. expVal21: .asciiz "Expected Value : 21 Your Value : "
  4. endl: .asciiz "\n"
  5.  
  6. .text
  7.  
  8. # #
  9. # int getDigit(int number);
  10. # List Used Registers Here:
  11. #
  12. # #
  13. getDigit: li $t0, 0
  14. bge $a1, $t1, end
  15. move $t0, $a1
  16.  
  17. end: rem $t2, $a1, $t1
  18. div $t3, $a1, $t1
  19. add $t0, $t2, $t3
  20. move $v1, $t0
  21. jr $ra
  22.  
  23.  
  24.  
  25. ##
  26. # int sumOfDoubleEvenPlace(int number);
  27. # List Used Registers Here:
  28. # sum --> $s0
  29. # digit --> $s1
  30. #
  31. ##
  32. sumOfDoubleEvenPlace: addi $sp, $sp, -4
  33. sw $a0, ($sp)
  34. sw $ra, 4($sp)
  35. div $a0, $a0, $t1
  36. ble $a0, $0, end2
  37. whileloop: rem $t4, $a0, $t1
  38. mul $a1, $t4, $t5
  39. jal getDigit
  40. add $v0, $v0, $v1
  41. div $a0, $a0, $t6
  42. bgt $a0, 0, whileloop
  43.  
  44. end2: addi $v0, $v0, -4
  45. lw $ra, 4($sp)
  46. lw $a0, ($sp)
  47. addi $sp, $sp, 4
  48. jr $ra
  49.  
  50.  
  51. main:
  52. li $s0, 89744563 # int test1 = 89744563;
  53. li $s1, 98756421 # int test2 = 98756421;
  54. li $s2, 0 # int result1 = 0;
  55. li $s3, 0 # int result2 = 0;
  56. li $t1, 10
  57. li $t5, 2
  58. li $t6, 100
  59.  
  60.  
  61. # code for first function call
  62.  
  63. add $a0, $0, $s0
  64. jal sumOfDoubleEvenPlace
  65. add $s2, $0, $v0
  66.  
  67. la $a0, expVal23
  68. addi $v0, $0, 4
  69. syscall
  70.  
  71. move $a0, $s2
  72. addi $v0, $0, 1
  73. syscall
  74.  
  75. la $a0, endl
  76. addi $v0, $0, 4
  77. syscall
  78.  
  79. # code for first function call
  80.  
  81. add $a0, $0, $s1
  82. jal sumOfDoubleEvenPlace
  83. add $s3, $0, $v0
  84.  
  85. la $a0, expVal21
  86. addi $v0, $0, 4
  87. syscall
  88.  
  89. move $a0, $s3
  90. addi $v0, $0, 1
  91. syscall
  92.  
  93. la $a0, endl
  94. addi $v0, $0, 4
  95. syscall
  96.  
  97. li $v0, 10
  98. syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement