Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- str1: .asciiz "digite 0 para preencher vetor em posiçoes impares ou diferente para par: "
- vet1: .word 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- str2: .asciiz " |"
- .text
- la $a1, vet1
- la $s3, vet1
- la $s4, vet1
- addi $s3, $s3, 4
- li $t3, 0 #contador do loop
- li $t1, 0 #posiçoes
- li $s2, 13
- li $s6, 0 #contador do print
- Loop:
- beq $t3, 3, Printar
- li $s0, 0 #contador do par
- li $s1, 0 #contador impar
- addi $t3, $t3, 1
- la $a0, str1
- li $v0 ,4
- syscall
- li $v0, 5
- syscall
- move $t0, $v0 #poe o valor lido em t0
- beq $t0, $zero, Impar #ve se t0 é diferente de 0
- Par:
- beq $s0, 3, Loop
- mul $t2, $t1, 4
- sw $t2, 0($s4) #poe a posição i * 4
- addi $s4, $s4, 8 #aumenta 2 posiçoes em s4
- addi $s0, $s0, 1 #incrementa s1
- addi $t1, $t1, 2 #aumenta 2 posiçao o t1 para mostrar em qual posiçao esta e fazer a mult
- j Par
- Impar:
- beq $s1, 3, Loop
- sw $s2, 0($s3) #poe 13 em vet 1
- addi $s3, $s3, 8
- addi $s1, $s1, 1
- j Impar
- Printar:
- beq $s6, 21, Exit
- lw $a0, 0($a1)
- li $v0, 1
- syscall
- la $a0, str2
- li $v0, 4
- syscall
- addi $s6, $s6, 1
- addi $a1, $a1, 4
- j Printar
- Exit:
- li $v0, 10
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement