fibonacci em assembly

299 palavras 2 páginas
;n == ebx

section .data extern printf ;label para importação de função da linguagem C extern scanf ;label para importação de função da linguagem C fmt1: db "%d" fmt2: db "resultado: %i",10,0 a: dd 0 ;variável para execução das funções res: dd 0 ;resultado/retorno da função fibonacci section .text

global main

main: ;início push dword a ;empilha endereço da variável 'a' push dword fmt1 ;empilha endereço da entrada da função scanf call scanf ;chamada da função scanf add esp,8 ;desempilha a variável a

mov ebx,[a] ;armazena o valor de 'a' no registrador ebx call fibo ;chamada da função que realiza o cálculo da sequência de fibonacci mov [res],eax ;armazena o valor de eax no valor de 'res' (resultado)

push dword [res] push dword fmt2 call printf add esp,8

fibo: push ebx push ecx push edx

cmp ebx,0 ;compara o conteúdo de ebx com 0 je lb1 ;se a comparação anterior for verdadeira, pula para lb1 cmp ebx,1 ;compara o conteúdo de ebx com 1 je lb1 ;se a comparação anterior for verdadeira, pula para lb1 jmp lb2 ;pule para lb2

lb1:

mov eax,ebx ;armazena o conteúdo de ebx em eax pop edx ;desempilhar na ordem inversa em que foi empilhado pop ecx ;desempilhar na ordem inversa em que foi empilhado pop ebx ;desempilhar na ordem inversa em que foi empilhado ret

lb2:

sub ebx,1 call fibo mov ecx,eax sub ebx,1 call fibo mov edx,eax add ecx,edx mov eax,ecx pop edx ;desempilhar na ordem inversa em que foi empilhado pop ecx ;desempilhar na ordem inversa em que foi empilhado pop ebx ;desempilhar na ordem inversa em que foi empilhado

Relacionados

  • Arquitetura de computadores
    743 palavras | 3 páginas
  • Programação em Assebler 8086
    365 palavras | 2 páginas
  • Laborat Rio 01 Roteiro F
    628 palavras | 3 páginas
  • Ling C
    1037 palavras | 5 páginas
  • LABORATORIO 1 AOC
    1729 palavras | 7 páginas
  • Organização de computadores
    1195 palavras | 5 páginas
  • Introdução a computação
    3004 palavras | 13 páginas
  • Guia de referencia C#
    9966 palavras | 40 páginas
  • programação C#
    10041 palavras | 41 páginas
  • Tutorial C# Informática
    10041 palavras | 41 páginas