Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- v: .space 400
- str: .asciiz "Informe um numero de 1 a 100\n"
- .text
- # ---------------------------
- # Registradores utilizados
- # ---------------------------
- # $a0 - String - Endereço de str
- # $a1 - int - Incremento de controle do while - inicializado com 0
- # $t0 - int - Word informada pelo usuário
- # $t1 - int - Valor da posição do vetor
- # $t2 - int - Valor posição atual do vetor 0
- # $t3 - int - Valor anterior a posição atual do vetor -4
- # $v0 - int - Código Syscall
- # $v1 - int - Endereço do vetor v
- la $v1, v
- la $a0, str
- addi $v0, $zero, 4 # printf
- syscall
- addi $v0, $zero, 5 # scanf
- syscall
- add $t0, $zero, $v0
- while: beq $a1, $t0, end_while
- # if_zero:
- bne $a1, 0, if_um
- addi $t1, $zero, 1
- sw $t1, 0($v1) # atribui 1 a primeira posição do vetor
- j endif
- if_um:
- bne $a1, 1, else
- addi $t1, $zero, 1
- addi $v1, $v1, 4 # segunda posição do vetor
- sw $t1, 0($v1) # atribui 1 a segunda posição do vetor
- j endif
- else:
- #addi $t2, $v1, 0
- addi $t3, $v1, -4 # endereço da posição anterior
- lw $t2, 0($v1) # valor da posição atual
- lw $t3, 0($t3) # valor da posição anterior
- add $t2, $t2, $t3 # formação fibonacci atual + anterior = proximo
- addi $v1, $v1, 4 # proxima posição do vetor
- sw $t2, 0($v1) # atribui o próximo valor da sequencia
- endif:
- addi $a1, $a1, 1 # incremento ($a1++)
- j while
- end_while:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement