Advertisement
Guest User

Week V

a guest
Mar 23rd, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text
  2.  
  3. insert_begin:
  4.  
  5. addi $sp, $sp, -12
  6. sw $a0, ($sp) #sacuvali a0 na steku jer nam treba za return
  7.  
  8. #allocate for node 4 for data, 4 for pointer
  9. li $a0, 8 #alokacija
  10. li $v0, 9 #kod za sitemski poziv za alokaciju
  11. syscall
  12.  
  13. sw $a1, ($v0)
  14. lw $a0, ($sp) # glava liste
  15. sw $a0, 4($v0) # next od novog cvora je glava liste
  16.  
  17. move $a0, $v0
  18. addi $sp, $sp, 12
  19. jr $ra
  20.  
  21. print_list:
  22.  
  23. addi $sp, $sp, -12
  24. sw $a0, ($sp)
  25.  
  26. move $t0, $a0 # struct node* curr = glava
  27.  
  28. loop_print:
  29. beq $t0, $0, end_print
  30. lw $a0, ($t0) #t0 pokazivač koji ide po listi
  31. li $v0, 1
  32. syscall
  33.  
  34. la $a0, space
  35. li $v0, 4
  36. syscall
  37.  
  38. lw $t0, 4($t0) #curr = cur->next;
  39. j loop_print
  40.  
  41. end_print:
  42. lw $a0, ($sp)
  43. addi $sp, $sp, 12
  44. jr $ra
  45.  
  46. insert_end:
  47.  
  48.     addi $sp, $sp, -12
  49.     sw $a0, ($sp)
  50.  
  51.     li $a0, 8
  52.     li $v0, 9
  53.     syscall
  54.  
  55.     sw $a1, ($v0)
  56.     sw $0, 4($v0) #jer je next null kada dodajemo na kraj logic dude..
  57.  
  58.     lw $a0, ($sp)
  59.  
  60.     beq $a0, $0, empty_list
  61.  
  62.         move $t0, $a0 #curr = glava
  63.         move $t1, $0 #prev = NULL;
  64.  
  65.         loop_insert:
  66.             beq $t0, $0, end_insert
  67.             move $t1, $t0 #prev = curr
  68.             lw $t0, 4($t0) #curr = curr->next;
  69.             j loop_insert
  70.  
  71.             end_insert:
  72.             sw $v0, 4($t1)
  73.             j final_insert
  74.  
  75.     empty_list:
  76.  
  77.     move $a0, $v0
  78.     final_insert:
  79.         addi $sp, $sp, 12
  80.         jr $ra
  81.  
  82. main:
  83. move $a0, $0 #struct node* glava = NULL;
  84.  
  85. li $a1, 5
  86. jal insert_begin
  87.  
  88. li $a1, 3
  89. jal insert_begin
  90.  
  91. li $a1, 7
  92. jal insert_end
  93.  
  94. jal print_list
  95.  
  96. li $v0, 10
  97. syscall
  98.  
  99. .data
  100. space: .asciiz " "
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement