Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
# Algoritmo "exercicio4.s" # Linguagem : MIPs Assembly # Disciplina : Org2 # Professor : Lahir # Descrição : Calcular IRPF # Autor(a) : Fabio Cabral # Data atual : 26/09/2018 .data # dados: .space 20 # 20 bytes de memoria para o vetor msg1:.asciiz "\nDigite o salario: " msg2:.asciiz "\nFaixa 1 - Isento" msg3:.asciiz "\nFaixa 2 - 7,5% - R$ " msg4:.asciiz "\nFaixa 3 - 15,0% - R$ " msg5:.asciiz "\nFaixa 4 - 22,5% - R$ " msg6:.asciiz "\nFaixa 5 - 27,5% - R$ " msg7:.asciiz "\nTotal Imposto - R$ " msg8:.asciiz "\nSalario com descontos - R$ " msg9:.asciiz "\n***** SISTEMA CALCULAR IRPF ***** " msg10:.asciiz "\n********************************* " .text main: ##################################### # Mostrar Titulo li $v0, 4 la $a0, msg9 syscall # Pergunta li $v0, 4 la $a0, msg1 syscall # Leitura REAL li $v0, 6 syscall mov.s $f1, $f0 # Mostrar linha acabamento li $v0, 4 la $a0, msg10 syscall ##################################### li.s $f2, 1903.98 # Faixa 1 li.s $f3, 2826.65 # Faixa 2 li.s $f4, 3751.05 # Faixa 3 li.s $f5, 4664.68 # Faixa 4 li.s $f6, 0.075 li.s $f7, 0.15 li.s $f8, 0.225 li.s $f9, 0.275 # CALCULA IMPOSTO FAIXA 1 sub.s $f26, $f3, $f2 mul.s $f22, $f6, $f26 # CALCULA IMPOSTO FAIXA 2 sub.s $f27, $f4, $f3 mul.s $f23, $f7, $f27 add.s $f13, $f22, $f23 # TOTAL DO IMPOSTO # CALCULA IMPOSTO FAIXA 3 sub.s $f28, $f5, $f4 mul.s $f24, $f8, $f28 add.s $f14, $f13, $f24 # TOTAL DO IMPOSTO # CALCULA IMPOSTO FAIXA 4 sub.s $f29, $f1, $f5 mul.s $f25, $f9, $f29 add.s $f15, $f14, $f25 # TOTAL DO IMPOSTO ############## FAIXA 1 c.le.s $f1, $f2 # se salario <= 1903.98 bc1t se1 bc1f senao1 se1: li $v0, 4 la $a0, msg2 # IMPRIME FAIXA 1 syscall j fimse senao1: ############### FAIXA 2 c.le.s $f1, $f3 # SE SALARIO <= 2826.65 bc1t se2 bc1f senao2 se2: li $v0, 4 la $a0, msg2 # IMPRIME FAIXA 1 syscall li $v0, 4 la $a0, msg3 # IMPRIME FAIXA 2 syscall li $v0, 2 mov.s $f12, $f22 # VALOR FAIXA 2 syscall li $v0, 4 la $a0, msg7 # IMPRIME TOTAL IMPOSTO syscall li $v0, 2 mov.s $f12, $f22 # VALOR TOTAL IMPOSTO syscall li $v0, 4 la $a0, msg8 # IMPRIME SALARIO COM DESCONTOS syscall sub.s $f1, $f1, $f22 li $v0, 2 mov.s $f12, $f1 # VALOR SALARIO COM DESCONTOS syscall li $v0, 4 la $a0, msg10 # Mostrar linha acabamento syscall j fimse senao2: ################ FAIXA 3 c.le.s $f1, $f4 # SE SALARIO <= 3751.05 bc1t se3 bc1f senao3 se3: li $v0, 4 la $a0, msg2 # IMPRIME FAIXA 1 syscall li $v0, 4 la $a0, msg3 # IMPRIME FAIXA 2 syscall li $v0, 2 mov.s $f12, $f22 # VALOR FAIXA 2 syscall li $v0, 4 la $a0, msg4 # IMPRIME FAIXA 3 syscall li $v0, 2 mov.s $f12, $f23 # VALOR FAIXA 3 syscall li $v0, 4 la $a0, msg7 # IMPRIME TOTAL IMPOSTO syscall li $v0, 2 mov.s $f12, $f13 # VALOR TOTAL IMPOSTO syscall li $v0, 4 la $a0, msg8 # IMPRIME SALARIO COM DESCONTOS syscall sub.s $f1, $f1, $f13 li $v0, 2 mov.s $f12, $f1 # VALOR SALARIO COM DESCONTOS syscall li $v0, 4 la $a0, msg10 # Mostrar linha acabamento syscall j fimse senao3: ################ FAIXA 4 c.le.s $f1, $f5 # SE SALARIO <= 4664.68 bc1t se4 bc1f senao4 se4: li $v0, 4 la $a0, msg2 # IMPRIME FAIXA 1 syscall li $v0, 4 la $a0, msg3 # IMPRIME FAIXA 2 syscall li $v0, 2 mov.s $f12, $f22 # VALOR FAIXA 2 syscall li $v0, 4 la $a0, msg4 # IMPRIME FAIXA 3 syscall li $v0, 2 mov.s $f12, $f23 # VALOR FAIXA 3 syscall li $v0, 4 la $a0, msg5 # IMPRIME FAIXA 4 syscall li $v0, 2 mov.s $f12, $f24 # VALOR FAIXA 4 syscall li $v0, 4 la $a0, msg7 # IMPRIME TOTAL IMPOSTO syscall li $v0, 2 mov.s $f12, $f14 # VALOR TOTAL IMPOSTO syscall li $v0, 4 la $a0, msg8 # IMPRIME SALARIO COM DESCONTOS syscall sub.s $f1, $f1, $f14 li $v0, 2 mov.s $f12, $f1 # VALOR SALARIO COM DESCONTOS syscall li $v0, 4 la $a0, msg10 # Mostrar linha acabamento syscall j fimse senao4: ################ FAIXA 5 # SE SALARIO > 4664.68 li $v0, 4 la $a0, msg2 # IMPRIME FAIXA 1 syscall li $v0, 4 la $a0, msg3 # IMPRIME FAIXA 2 syscall li $v0, 2 mov.s $f12, $f22 # VALOR FAIXA 2 syscall li $v0, 4 la $a0, msg4 # IMPRIME FAIXA 3 syscall li $v0, 2 mov.s $f12, $f23 # VALOR FAIXA 3 syscall li $v0, 4 la $a0, msg5 # IMPRIME FAIXA 4 syscall li $v0, 2 mov.s $f12, $f24 # VALOR FAIXA 4 syscall li $v0, 4 la $a0, msg6 # IMPRIME FAIXA 5 syscall li $v0, 2 mov.s $f12, $f25 # VALOR FAIXA 5 syscall li $v0, 4 la $a0, msg7 # IMPRIME TOTAL IMPOSTO syscall li $v0, 2 mov.s $f12, $f15 # VALOR TOTAL IMPOSTO syscall li $v0, 4 la $a0, msg8 # IMPRIME SALARIO COM DESCONTOS syscall sub.s $f1, $f1, $f15 li $v0, 2 mov.s $f12, $f1 # VALOR SALARIO COM DESCONTOS syscall li $v0, 4 la $a0, msg10 # Mostrar linha acabamento syscall fimse:
Compartilhar