kristina7

Strings AOK

May 3rd, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. .data
  2. S1: .asciiz "I "
  3. S2: .asciiz "love "
  4. S3: .asciiz "assembly"
  5. string1: .asciiz "The first string is: "
  6. string2: .asciiz "\nThe second string is: "
  7. string3: .asciiz "\nThe third string is: "
  8. string4: .space 16
  9. S4: .asciiz "\nThe three strings combined are: "
  10.  
  11. .text
  12. main:
  13.     #display all three strings first
  14.     li $v0, 4
  15.     la $a0, string1
  16.     syscall
  17.     la $a0, S1
  18.     syscall
  19.     la $a0, string2
  20.     syscall
  21.     la $a0, S2
  22.     syscall
  23.     la $a0, string3
  24.     syscall
  25.     la $a0, S3
  26.     syscall
  27.  
  28.     #concat
  29.     la $a0, string4
  30.     la $a1, S1
  31.     la $a2, S2
  32.     la $a3, S3
  33.     jal strcatFirst
  34.  
  35.     #print
  36.     jal printConcat
  37.  
  38.     #exit
  39.     li $v0, 10
  40.     syscall
  41.  
  42. strcatFirst:
  43.         lb $t0, ($a1)
  44.         beqz $t0, strcatSecond
  45.         sb $t0, ($a0)
  46.         addi $a1, $a1, 1
  47.         addi $a0, $a0, 1
  48.     j strcatFirst
  49.  
  50.     strcatSecond:
  51.         lb $t0,($a2)
  52.         beqz $t0, strcatThird
  53.         sb $t0, ($a0)
  54.         addi $a2, $a2, 1
  55.         addi $a0, $a0, 1
  56.         j strcatSecond
  57.  
  58.     strcatThird:
  59.         lb $t0, ($a3)
  60.         beqz $t0, endStrcat
  61.         sb $t0, ($a0)
  62.         addi $a3, $a3, 1
  63.         addi $a0, $a0, 1
  64.         j strcatThird
  65.  
  66.     endStrcat:
  67.         jr $ra
  68.  
  69. printConcat:
  70.  
  71.     #print label
  72.     li $v0, 4
  73.     la $a0, S4
  74.     syscall
  75.  
  76.     #print string4
  77.     li $v0, 4
  78.     la $a0, string4
  79.     syscall
  80.  
  81.     jr $ra
Add Comment
Please, Sign In to add comment