Este repositório documenta minha jornada de aprendizado na linguagem Assembly com foco na arquitetura x86, utilizando o NASM no sistema operacional Linux (Ubuntu). A integração com C++ também é explorada para ampliar a aplicabilidade dos conceitos estudados.
O objetivo principal é consolidar e compartilhar o conhecimento adquirido ao longo dos estudos em Assembly, através de anotações, exemplos práticos e projetos aplicados. Este repositório serve tanto como material de referência pessoal quanto como fonte de aprendizado para outros interessados na linguagem de baixo nível.
-
📒 Notas de Estudo
Anotações organizadas sobre os principais conceitos da linguagem, como registradores, sintaxe NASM, manipulação de arquivos, integração com C++, entre outros. -
💻 Códigos de Exemplo
Programas simples e intermediários desenvolvidos em Assembly, com foco no uso de instruções específicas, leitura/escrita de dados, chamadas de sistema, lógica de decisão, entre outros tópicos. -
🧠 Projetos Práticos
Pequenos projetos que combinam os conhecimentos adquiridos e demonstram o uso de Assembly em problemas reais ou simulados, frequentemente integrando com código em C++.
.
├── .gitignore
├── LICENSE
├── README.md
└── assembly
├── notas/ # Documentação e anotações teóricas
│ ├── introducao.md
│ ├── registradores.md
│ ├── sintaxe.md
│ ├── arquivos.md
│ ├── compilar_executar.md
│ ├── makefile.md
│ └── integrar_com_outra_linguagem.md
│
├── codigos/ # Exemplos práticos e exercícios
│ ├── hello.asm
│ ├── soma.asm
│ ├── maiorNum.asm
│ ├── entrada.asm
│ ├── parOuImpar.asm
│ ├── saoIguais.asm
│ ├── lea.asm
│ ├── menu.asm
│ ├── converte.asm
│ ├── converteValorDigitado.asm
│ ├── testaBiblioteca.asm
│ ├── piramide.asm
│ ├── quadrado.asm
│ ├── xadrez.asm
│ ├── bibliotecas/ # Includes auxiliares (modularização)
│ │ ├── arquivos.inc
│ │ ├── bibliotecaE.inc
│ │ ├── j7.inc
│ │ ├── menu.inc
│ │ ├── piramide.inc
│ │ ├── quadrado.inc
│ │ └── xadrez.inc
│ ├── decisao/
│ ├── escreverArquivo/
│ ├── lerArquivo/
│ ├── fib/
│ ├── parametros/
│ ├── questao/
│ └── troca/
│
└── projetos_praticos/ # Projetos completos em Assembly + C++
├── calculadora/
├── fatorial/
├── pascal/
└── primo/
Todos os códigos foram desenvolvidos e testados em ambiente Linux ubuntu.
Alguns diretórios possuem arquivos
makefilepara facilitar a compilação.
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.
Contribuições são bem-vindas! Sinta-se à vontade para:
- Abrir uma issue com dúvidas ou sugestões
- Criar um pull request com melhorias, correções ou novos conteúdos
Para sugestões, dúvidas ou colaborações, utilize as issues deste repositório.