Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- wynik: .asciiz "Macierz[C]: \n" #store string to difference
- macierzA: .word 6, 3, 7, #macierzA, ktora przechowywuje liczby
- .word 4, 4, 5,
- .word 1, 6, 4
- macierzB: .word 3, 4, 2, #macierzB przechowywujaca liczby
- .word 3, 2, 1,
- .word 4, 2, 1
- macierzC: .space 4 #macierzC przechowywujaca sume macierzyA i macierzyB (kazde slowo ma 4 bajty. 20=5
- endl: .asciiz "\n"
- .text
- main:
- la $t1, macierzA #$t1 = adres macierzyA
- la $t2, macierzB #$t2 = adres macierzyB
- la $t3, macierzC #$t3 = addres macierzyC
- li $t4, 0 #ustawiamy adres $t4 =0, który posłuży jako licznik
- li $s1, 11 #ustiawamy $s1 = 10
- li $s2, 3
- li $s3, 7
- li $v0, 4 #wywolanie systemowe do wypisywania stringów
- la $a0, wynik #wypisuje aktualnego stringa
- syscall #wywołanie systemowe
- j petla #skocz do petli
- petla:
- beq $t4, $s1, final # jesli t4 czyli 0 bedzie sie rownalo 3 to idz do mat
- beq $t4, $s2, petla2
- beq $t4, $s3, petla2
- lw $t5, 0($t1) #wez wartosc z komorki macierzy i pzrechowaj w $t5
- lw $t6, 0($t2) #wez wartosc z komorki macierzy i przechowaj w $t6
- add $t7, $t5, $t6 #dodaj $t5 z $t6 i zapisz w $t7
- sw $t7, 0($t3) #przechowaj adres $t7 w adresie $t3
- li $v0, 1 #wypisz integer
- move $a0, $t7 #przenieś $t7 do $a0
- syscall #wywołanie systemowe
- li $a0, 32 #wypisz ASCII czyli spacje
- li $v0, 11 #wywołanie systemowe do wypisywania liter
- syscall #wywołanie systmowe
- addi $t1, $t1, 4 #zwiększamy $t1 o 4
- addi $t2, $t2, 4 #zwiększamy $t2 o 4
- addi $t4, $t4, 1 #zwiększamy $t1 o 1
- j petla #wróc przez petla
- petla2: #przejscie do nowej lini
- li $v0, 4
- la $a0, endl
- addi $t4, $t4, 1
- syscall
- j petla #wraca do petla
- final:
- li $v0, 10 # wywolanie systemowe konczące program
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement