Fatorial em assembly
Publicado por Leonardo Weslei Diniz 10/06/2008
[ Hits: 22.548 ]
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
Relógio em assembly NES 8 bits (variante do 6502)
"Clear Screen" para Linux x86 em Assembly Puro (GNU Assembly)
Árvore binária de busca em Assembly - com comentários
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Abrir um arquivo URL pelo Clipper (8)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









