Projeto de linguagem assembly

Disponível somente no TrabalhosFeitos
  • Páginas : 5 (1230 palavras )
  • Download(s) : 0
  • Publicado : 17 de fevereiro de 2013
Ler documento completo
Amostra do texto
UNIVERSIDADE FEDERAL DA PARAIBA CAMPUS IV – LITORAL NORTE Aluno: Antonio Braz Silva Finizola Mat.: 81021016 Curso: Licenciatura em Ciências da Computação Disciplina: Arquitetura de Computadores I Professor: Dr. Alisson Brito

Relatório: Projeto de linguagem Assembly
O programa a seguir é um Calculador de Fatorial, feito na linguagem Java. Tem como objetivo calcular o fatorial de um númerointeiro: lê um dado inteiro do usuário, informando quantas vezes ele deseja utilizar o programa; lê um número inteiro qualquer e mostra o resultado do fatorial desse número; mostra para o usuário quantas vezes faltam para o programa finalizar, cada vez que ele é utilizado. Observe o significado de cada linha de código em Java e sua respectiva equivalência na linguagem Assembly (após). Programa em Java(Passo-a-passo)
import java.util.Scanner; dados; public class Fatorial { # Classe principal do programa; public static void main(String[] args) { # Método principal; Scanner input = new Scanner(System.in); # Instancia um objeto da classe Scanner, para utilizar os recursos de leitura de dados; System.out.println("-------------------------------------------------"); # Método de impressão. Imprimea String acima; System.out.println(" Fatorial Calculator" ); # Imprime a String “Fatorial Calculator”; System.out.println("-------------------------------------------------"); # Imprime a String acima; System.out.print("Quantas vezes você deseja utilizar o programa? "); # Imprime a String acima; # Classe de leitura Scanner. Específica para leitura de

int vez = input.nextInt( ); # A variávelinteira vez é declarada, recebendo o valor do usuário através do objeto input pelo método da classe Scanner nextInt( ), que lê um valor inteiro. Essa variável serve para receber o número de vezes que o programa funcionará; int i; # Declaração da variável i (inteira); int cont = vez; # Declaração da variável cont (inteira), recebendo o valor da variável vez; for(i = 0;i < vez;i++){ # Laço derepetição for: o bloco de comandos será executado até que i assuma o valor igual ao de vez; int fatorial = 1; # Declaração da variável fatorial (inteira), recebendo o valor 1; System.out.print("\nInforme um número: "); # Imprime essa String; int numero = input.nextInt(); # A variável inteira número é declarada, recebendo o valor do usuário através do objeto input pelo método da classe Scanner nextInt( );while(numero > 0){ # Laço de repetição while: o bloco de comandos se rá executado até que, decrementando o valor de numero, este assuma um valor igual a 0; fatorial *= numero; # fatorial recebe o valor dela mesma multiplicada por numero; numero - = 1; # numero recebe o valor dele mesmo menos 1; } System.out.println("Fatorial = "+ fatorial); # Imprime essa String e o valor final do fatorial;System.out.print("\n"); # Quebra de linha; System.out.println("Você usou o programa "+(i+1)+" vezes. Faltam " +(cont =1)+" vezes para finalizar."); # Imprime essa String a fim de que o usuário fique atento quanto às vezes que ele ainda poderá utilizar o programa; } System.out.println("\nFim da execução."); Imprime essa String; } }

Transformação para Assembly (Passo-a-passo)
.data # Aqui estão asmensagens que deverão ser impressas: linha: .asciiz "----------------------------------------------------" titulo: .asciiz "\n Fatorial Calculator\n" pergunta: .asciiz "\nQuantas vezes você deseja utilizar o programa? " entrada: .asciiz "\nInforme um número: " saida: .asciiz "Fatorial = " resposta1: .asciiz "\nVocê usou o programa " resposta2: .asciiz " vez(es). Faltam " resposta3: .asciiz " vez(es)para finalizar." espaco: .asciiz "\n"

fim: .asciiz "\nFim da execução." .text la $a0,linha # Carrega o endereço do dado de “linha” e o armazena no reg. $s0; li $v0,4 # Imprime a mensagem armazenada em “linha” pelo reg. $v0 através do dígito 4 (imprimir String). Equivalente a System.out.println("------------------------------------------------") em Java; syscall # Chamada de eventos de...
tracking img