luiz-linkezio / Torre_de_Hanoi-RAx86

O projeto consiste em fazer um algoritmo da Torre de Hanói usando recursão em Assembly x86. A Torre de Hanói consiste em três hastes (pinos verticais) e um número de discos de tamanhos diferentes, empilhados em ordem decrescente de tamanho em uma haste, o objetivo é mover a pilha de discos de uma haste para outra seguindo algumas regras.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Torre de Hanói RAx86

banner

💻 Projeto

Projeto da disciplina Organização de Computadores e Sistemas Operacionais, da graduação em Sistemas de Informação (SI) do Centro de Informática (CIn) da Universidade Federal de Pernambuco (UFPE), cursada em no letivo 2023.2.

O projeto consiste em fazer uma Torre de Hanói usando recursão em Assembly. A Torre de Hanói consiste em três hastes (pinos verticais) e um número de discos de tamanhos diferentes, empilhados em ordem decrescente de tamanho em uma haste, o objetivo é mover a pilha de discos de uma haste para outra seguindo algumas regras.


⚙️ Como executar?

Para executar o projeto de forma fácil e online, siga as instruções abaixo:

# 1) Acesse o site
$ https://www.tutorialspoint.com/compile_assembly_online.php

# 2) Copie o código ./src/script/assembly_x86/torre_hanoit.asm e cole no editor de texto do site

# 3) Execute o projeto clicando no botão "Execute" no site

📋 Ementa da Disciplina

Estudo de conceitos de arquitetura, da organização de computadores e dos sistemas de gerenciamento de recursos de um sistema de computação.

  • Módulo 1:

    • Números binários
    • Portas lógicas
    • Representação de números e caracteres (ASCII)
    • Operações binárias: como os computadores fazem cálculos (ALU)
    • Memória principal e registradores
    • A CPU
    • Instruções da CPU
    • Arquiteturas avançadas: pipeline e superscalar
    • O iníco e a necessidade de programação
    • Surgimento e introdução dos Sistemas Operacionais
  • Módulo 2:

    • Gerenciamento de Processos (12/02/2024)
    • Gerenciamento de Entrada e Saída
  • Módulo 3:

    • Gerenciamento de Memória (04/03/2024)
    • Gerenciamento de Discos

🔖 Regras e Orientações

Construa um programa em Assembly X86 sobre Windows que resolva o quebra-cabeça clássico conhecido como Torre de Hanoi. A Torre de Hanoi é um jogo que envolve três torres A, B e C, contendo N discos com tamanhos diferentes dispostos em ordem decrescente de tamanho, estando o maior embaixo e o menor no topo da pilha. O objetivo deste jogo é mover todos os discos da Torre A para a Torre C, podendo usar a Torre B como auxiliar, seguindo a única regra essencial: nenhum disco maior pode ser colocado sobre um disco menor.

Visualização:

No link https://www.mathsisfun.com/games/towerofhanoi.html, você pode jogar ou ver a solução da Torre de Hanoi.

Especificação:

  • Este projeto pode ser feito em dupla.
  • A entrega se dará de forma presencial no dia 05/02.
  • A solução deve usar um procedimento recursivo.
  • O número de discos deve ser inserido pelo usuário e pode ter até dois algarismos, ou seja, seu programa deve ser capaz de ler este número.
  • O programa deve ser feito em Assembly X86 usando o compilador Nasm ou Tasm para Windows.

Exemplo de saída do programa:

  • Algoritmo da Torre de Hanoi com 3 discos
  • Mova disco 1 da Torre A para a Torre C
  • Mova disco 2 da Torre A para a Torre B
  • Mova disco 1 da Torre C para a Torre B
  • Mova disco 3 da Torre A para a Torre C
  • Mova disco 1 da Torre B para a Torre A
  • Mova disco 2 da Torre B para a Torre C
  • Mova disco 1 da Torre A para a Torre C
  • Concluido!

🧑‍💻 Autores


Luiz Henrique
Desenvolvedor
Linkedin
Portfolio

José Ronaldo
Desenvolvedor
Linkedin
Portfólio

About

O projeto consiste em fazer um algoritmo da Torre de Hanói usando recursão em Assembly x86. A Torre de Hanói consiste em três hastes (pinos verticais) e um número de discos de tamanhos diferentes, empilhados em ordem decrescente de tamanho em uma haste, o objetivo é mover a pilha de discos de uma haste para outra seguindo algumas regras.

License:MIT License


Languages

Language:Assembly 78.3%Language:Python 21.7%