Fatorial em assembly
Publicado por Leonardo Weslei Diniz 10/06/2008
[ Hits: 22.069 ]
Homepage: http://www.agilesoft.com.br/
Download fatorial_exterminador3.s
Recursividade em assembly também é possível!
Fatorial em assembly.
#By Exterminador3 .data str1: .asciiz "\n\tDigite um valor : " .text .globl main. #main() main: # Ponto de entrada... li $v0,4 # Pede ao utilizador o valor N la $a0,str1 syscall li $v0,5 syscall addi $a0,$v0,0 # Valor lido fica em a0 jal fact # call fact(n) addi $a0,$v0,0 # Escreve o resultado li $v0,1 syscall li $v0,10 # Fim... syscall fact: sub $sp,$sp,8 # Ajusta a stack para 2 items sw $ra, 4($sp) # Guarda endereço de retorno sw $a0, 0($sp) # Guarda argumento n slt $t0,$a0,1 # testa se n < 1 beq $t0,$zero,L1 # Se n >= 1, vai fazer outra chamada li $v0,1 # Se não for devolve 1 add $sp,$sp,8 # liberta o espaço da stack antes de jr $ra # retornar L1: sub $a0,$a0,1 # Nova chamada: novo argumento (n - 1) jal fact # call fact com (n - 1) # Ponto de retorno da chamada recursiva: lw $a0, 0($sp) # Recupera o argumento passado lw $ra, 4($sp) # Recupera o endereço de retorno add $sp,$sp,8 # Liberta o espaço da stack mul $v0,$a0,$v0 # Calcula n * fact (n - 1) jr $ra # Retorna com o resultado
Escrita de número em hexadecimal em Assembly Puro para Linux 64bits (Nasm - Netwide Assemble)
Algoritmo de Raiz Quadrada Inteira em Assembly Puro para Linux x86 (GNU Assembler)
Calcula ano de nascimento - C + Assembly
Escrita de um número em decimal na tela em Assembly Puro para Linux x86 (GNU Assembler)
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Mensagem quando tento fazer o apt update && apt upgrade no kal... (2)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (0)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta