Advertisement
Guest User

Untitled

a guest
Apr 29th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2. message1: .asciiz "\nVnesete go prviot zbor: "
  3. message2: .asciiz "\nVnesete go vtoriot zbor: "
  4. firstWord: .space 101
  5. secondWord: .space 101
  6. finalWord: .space 101
  7. message3: .asciiz "\nDolzinata na prviot vnesen zbor iznesuva: "
  8. message4: .asciiz "\nDolzinata na vtoriot vnesen zbor iznesuva: "
  9. message5: .asciiz "\nKoga pokratkiot zbor kje se zalepi na podolgiot se dobiva zborot: "
  10. message6: .asciiz "\nCija dolzina iznesuva: "
  11.  
  12. .text
  13. # main
  14. FirstWord: # go vnesuvame prviot zbor od tastatura
  15.     la $a0, message1 # se pecati poraka 1 (message 1) pred da se vnese prviot zbor od tastatura
  16.     li $v0, 4
  17.     syscall
  18.     la $a0, firstWord  
  19.     li $a1, 101
  20.     li $v0, 8  
  21.     syscall
  22.     la $t0, firstWord # adresata na prviot string
  23.    
  24. # go vnesuvame vtoriot zbor od tastatura
  25. SecondWord:    
  26.     la $a0, message2 # se pecati poraka 2 (message 2) pred da se vnese vtoriot zbor od tastatura
  27.     li $v0, 4  
  28.     syscall
  29.     la $a0, secondWord 
  30.     li $a1, 101
  31.     li $v0, 8  
  32.     syscall
  33.     la $t1,secondWord # adresata na vtoriot string
  34.     jal FirstLoop
  35.     li $v0, 10
  36.     syscall
  37. # end of main
  38.  
  39. #ciklusi za broenje na znacite vo dvata vneseni stringovi i pecatenje na ekran na istite
  40. FirstLoop:
  41.     addi $t6, $zero, 0
  42.     lbu $t2, 0($t0)
  43.     beq $t2, 10, EndFirstLoop #ako e = ’\n’ zavrsi go broenjeto na znaci za prvata vnesena niza
  44.     addi $t3,$t3,1 # azuriranje na brojac vo koj se cuva izmerenata dolzina na prviot vnesen string
  45.     addi $t0, $t0, 1
  46.     j FirstLoop
  47. EndFirstLoop:
  48.     la $a0,message3
  49.     li $v0,4
  50.     syscall
  51.     add $a0,$t3,$zero # pecatenje na dolzinata na prviot vnesen string od tastatura
  52.     li $v0, 1
  53.     syscall
  54. SecondLoop:
  55.     lbu $t2, 0($t1)
  56.     beq $t2, 10, EndSecondLoop # proverka na tekovniot znak, ako e '\n' zavrsi go broenjeto na znaci
  57.     addi $t4,$t4,1  # azuriranje na brojac vo koj se cuva izmerenata dolzina na vtoriot vnesen string
  58.     addi $t1, $t1, 1
  59.     j SecondLoop
  60. EndSecondLoop:
  61.     la $a0,message4
  62.     li $v0,4
  63.     syscall
  64.     addi $a0,$t4,0 # pecatenje na dolzinata na vtoriot vnesen string od tastatura
  65.     li $v0, 1
  66.     syscall
  67. # kraj na ciklusi za broenje i pecatenje na brojot na znaci na dvata vneseni stringovi
  68. # analiza na informacijata za podolg string, da znaeme po koj redosled da gi zalepime  
  69.     slt $t7,$t3,$t4
  70.     beq $t7,1,LongerSecond
  71.     LongerFirst:
  72.     la $t1,secondWord
  73.  
  74. # spojuvanje na stringovite
  75. ThirdLoop:
  76.     lbu $t2, 0($t1)
  77.     beq $t2, 10, EndThirdLoop #ako e = ’\n’ izlezi
  78.     sb $t2,0($t0)
  79.     addi $t3,$t3,1
  80.     addi $t0,$t0,1
  81.     addi $t1, $t1, 1
  82.     j ThirdLoop
  83. EndThirdLoop:
  84.     la $a0,message5
  85.     li $v0,4
  86.     syscall
  87.     la $a0,firstWord
  88.     li $v0,4
  89.     syscall
  90.     la $a0,message6
  91.     li $v0,4
  92.     syscall
  93.     add $a0,$t3,$zero
  94.     li $v0,1
  95.     syscall
  96.     j End
  97. LongerSecond:
  98.     la $t0,firstWord
  99.  
  100. FinalLoop:
  101.     lbu $t2, 0($t0)
  102.     beq $t2, 10, EndFinalLoop
  103.     sb $t2,0($t1)
  104.     addi $t4,$t4,1
  105.     addi $t0, $t0, 1
  106.     addi $t1, $t1, 1
  107.     j FinalLoop
  108. EndFinalLoop:
  109.     la $a0,message5 # pecatenje na stringot dobien so spojuvanje na dvata vneseni stringa
  110.     li $v0,4
  111.     syscall
  112.     la $a0,secondWord
  113.     li $v0,4
  114.     syscall
  115.     la $a0,message4
  116.     li $v0,4
  117.     syscall
  118.     add $a0,$t4,$zero
  119.     li $v0,1
  120.     syscall
  121. End:
  122.     jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement