Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MPASM 2.00 KB | None | 0 0
  1. .data
  2.     n: .word 0
  3.     string1: .asciiz "Dati n:"
  4.     string2: .asciiz "Rezultat:"
  5. #---------------------------------
  6.  
  7.  
  8. .text
  9.  
  10. #---------------------------------
  11.     patratperfect:
  12.         move $t0, $a0   #preluarea parametrilor de intrare
  13.         li $t1, 0       #contor i = 0
  14.  
  15.  
  16.         loop:
  17.             beq $t0, $t1, endloop
  18.  
  19.             mulo $t2, $t0, $t0
  20.             beq $t2, $t0, true
  21.             addi $t1, 0
  22.            
  23.             j loop
  24.         endloop:
  25.  
  26.         j false
  27.  
  28.         true:
  29.             addi $v0, 1,
  30.             j afterfalse
  31.         false:
  32.             addi, $v0, 0
  33.         afterfalse:
  34.  
  35.     jr $ra
  36. #---------------------------------
  37.  
  38.     sumatreipatrateperfecte:
  39.         move $t0, $a1
  40.        
  41.         li $s0, 0
  42.        
  43.         li $t4, 1
  44.         li $t5, 0
  45.  
  46.         li $t1, 0
  47.         li $t2, 0
  48.         li $t3, 0
  49.  
  50.         loop1:
  51.             beq $t1, $t0, endloop1
  52.  
  53.             loop2:
  54.                 beq $t2, $t0, endloop2
  55.  
  56.                 loop3:
  57.                     beq $t3, $t0, endloop3
  58.  
  59.                     lw $a0, ($t3)
  60.                     jal patratperfect
  61.                     bne $v0, $t4, noteqiv
  62.  
  63.                     add $s0, $s0, $t3
  64.  
  65.                     lw $a0, ($t2)
  66.                     jal patratperfect
  67.                     bne $v0, $t4, noteqiv
  68.  
  69.                     add $s0, $s0, $t2
  70.                    
  71.                     lw $a0, ($t1)
  72.                     jal patratperfect
  73.                     bne $v0, $t4, noteqiv
  74.  
  75.                     add $s0, $s0, $t1
  76.  
  77.                     noteqiv:   
  78.  
  79.                     addi $t3, 1
  80.                     j loop3
  81.                     endloop3:
  82.  
  83.                 addi $t2, 1
  84.                 j loop2
  85.                 endloop2:
  86.  
  87.             addi $t1, 1
  88.             j loop1
  89.             endloop1:
  90.  
  91.  
  92.     li $v0, 1
  93.  
  94.     beq $s0, $0, false2
  95.     j true2
  96.     false2:
  97.         move $v0, $0
  98.     true2:
  99.         jr $ra
  100. #---------------------------------
  101.  
  102.  
  103.     main:
  104.         li $t0, 1
  105.  
  106. #---------------------------------
  107.         li $v0, 4
  108.         la $a0, string1
  109.         syscall
  110. #---------------------------------
  111.         li $v0, 5
  112.         syscall
  113.  
  114.         sw $a1, n
  115. #---------------------------------
  116.         jal patratperfect
  117.         #jal sumatreipatrateperfecte
  118. #---------------------------------
  119.         beq $v0, $0, false3
  120.    
  121.         j true3
  122.  
  123.         false3:
  124.             li $t0, 0
  125.         true3:
  126.  
  127. #---------------------------------
  128.         li $v0, 4
  129.         la $a0, string2
  130.         syscall
  131. #---------------------------------
  132.         move $v0, $t0
  133.         li $v0, 1
  134.         syscall
  135. #---------------------------------
  136.  
  137.         li $v0, 10
  138.         syscall
  139.  
  140. #---------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement