Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- n: .word 0
- string1: .asciiz "Dati n:"
- string2: .asciiz "Rezultat:"
- #---------------------------------
- .text
- #---------------------------------
- patratperfect:
- move $t0, $a0 #preluarea parametrilor de intrare
- li $t1, 0 #contor i = 0
- loop:
- beq $t0, $t1, endloop
- mulo $t2, $t0, $t0
- beq $t2, $t0, true
- addi $t1, 0
- j loop
- endloop:
- j false
- true:
- addi $v0, 1,
- j afterfalse
- false:
- addi, $v0, 0
- afterfalse:
- jr $ra
- #---------------------------------
- sumatreipatrateperfecte:
- move $t0, $a1
- li $s0, 0
- li $t4, 1
- li $t5, 0
- li $t1, 0
- li $t2, 0
- li $t3, 0
- loop1:
- beq $t1, $t0, endloop1
- loop2:
- beq $t2, $t0, endloop2
- loop3:
- beq $t3, $t0, endloop3
- lw $a0, ($t3)
- jal patratperfect
- bne $v0, $t4, noteqiv
- add $s0, $s0, $t3
- lw $a0, ($t2)
- jal patratperfect
- bne $v0, $t4, noteqiv
- add $s0, $s0, $t2
- lw $a0, ($t1)
- jal patratperfect
- bne $v0, $t4, noteqiv
- add $s0, $s0, $t1
- noteqiv:
- addi $t3, 1
- j loop3
- endloop3:
- addi $t2, 1
- j loop2
- endloop2:
- addi $t1, 1
- j loop1
- endloop1:
- li $v0, 1
- beq $s0, $0, false2
- j true2
- false2:
- move $v0, $0
- true2:
- jr $ra
- #---------------------------------
- main:
- li $t0, 1
- #---------------------------------
- li $v0, 4
- la $a0, string1
- syscall
- #---------------------------------
- li $v0, 5
- syscall
- sw $a1, n
- #---------------------------------
- jal patratperfect
- #jal sumatreipatrateperfecte
- #---------------------------------
- beq $v0, $0, false3
- j true3
- false3:
- li $t0, 0
- true3:
- #---------------------------------
- li $v0, 4
- la $a0, string2
- syscall
- #---------------------------------
- move $v0, $t0
- li $v0, 1
- syscall
- #---------------------------------
- li $v0, 10
- syscall
- #---------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement