Advertisement
Guest User

Untitled

a guest
May 4th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2.     string1: .space 1000
  3.     string2: .space 1000
  4.     resenie1: .asciiz "Concatenated string:"
  5.     resenie2: .asciiz "\nLength:"
  6. .text
  7.  
  8.  
  9.  
  10.  
  11. la $a0, string1 #read first
  12. li $a1, 1000
  13. li $v0, 8
  14. syscall
  15.  
  16. la $a0, string2 #read second
  17. li $a1, 1000
  18. li $v0, 8
  19. syscall
  20.  
  21.  
  22. la $a0, string1
  23. sb $0, -1($a0)
  24. la $a1, string2
  25. sb $0, -1($a1)
  26. jal procedure #procedure
  27.  
  28. move $t0, $v0
  29. move $t1, $v1
  30.  
  31. #print
  32. la $a0, resenie1
  33. li $v0, 4
  34. syscall
  35.  
  36. move $a0, $t1
  37. li $v0, 4
  38. syscall
  39.  
  40.  
  41. la $a0, resenie2
  42. li $v0, 4
  43. syscall
  44.  
  45. move $a0, $t0
  46. li $v0, 1
  47. syscall
  48.  
  49. li $v0, 10 #exit
  50. syscall
  51.  
  52.  
  53.  
  54.  
  55.  
  56. procedure:
  57.  
  58. li $t0, 0
  59. li $t1, 0
  60.  
  61. L_1:
  62. lb $t2, ($a0)
  63. slti $t2, $t2, 1
  64. beq $t2, 1, exit1
  65. addi $t0, $t0, 1
  66. addi $a0, $a0, 1
  67. j L_1
  68. exit1:
  69.  
  70. L_2:
  71. lb $t2, ($a1)
  72. slti $t3, $t2, 1
  73. beq $t3, 1, exit2
  74. addi $t1, $t1, 1
  75. addi $a1, $a1, 1
  76. j L_2
  77. exit2:
  78.  
  79.  
  80. #removing endl from strings
  81. addi $t0, $t0, -1
  82. addi $t1, $t1, -1
  83. addi $a0, $a0, -1
  84. addi $a1, $a1, -1
  85.  
  86.  
  87. add $v0, $t0, $t1 #v0 = length_1 + length_2
  88. slt $t2, $t0, $t1
  89. beq $t2, 1, addfirst #if t0 < t1 concat first to second
  90.  
  91. #else:
  92.  
  93.  #concatenate second to first
  94.  la $v1, string1
  95.  la $a1, string2
  96.  li $t3, 0
  97.  conc1:
  98.     slt $t2, $t3, $t1
  99.     beq $t2, 0, cexit1
  100.     lb $t4, ($a1)
  101.     sb $t4, ($a0)
  102.     addi $t3, $t3, 1 #t2++
  103.     addi $a1, $a1, 1 #a1++
  104.     addi $a0, $a0, 1 #a0++
  105.     j conc1
  106.  cexit1:
  107.  sb $0, ($a0) #null
  108.  j end
  109.  
  110.  
  111. #concatenate first to second
  112. addfirst:
  113. la $v1, string2
  114. la $a0, string1
  115. li $t2, 0
  116. conc2:
  117.   slt $t3, $t2, $t0
  118.   beq $t3, 0, cexit2
  119.   lb $t4, ($a0)
  120.   sb $t4, ($a1)
  121.   addi $t2, $t2, 1
  122.   addi $a1, $a1, 1
  123.   addi $a0, $a0, 1
  124.   j conc2
  125.  
  126. cexit2:
  127. sb $0, ($a1) #null
  128.  
  129. end:
  130.  
  131. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement