Aprendendo Assembly
Doar para o autor
  • Introdução
  • Conteúdo
  • Como usar este livro
  • A base
    • Noção geral da arquitetura
    • Modos de operação
    • Sintaxe
    • Registradores de propósito geral
    • Endereçamento
    • Pilha
    • Saltos
    • Procedimentos
    • Seções e símbolos
    • Instruções assembly x86
    • Instruções do NASM
    • Pré-processador do NASM
    • Syscall no Linux
    • Olá mundo no Linux
    • Revisão
  • Aprofundando em Assembly
    • Registradores de segmento
    • CALL e RET
    • Position-independent executable
    • Atributos
    • Prefixos
    • Flags do processador
    • Instruções condicionais
    • Programando no MS-DOS
    • Interrupções de software e exceções
    • Procedimentos do BIOS
    • Usando instruções da FPU
    • Entendendo SSE
      • Instruções de movimentação de dados
      • Instruções aritméticas
      • Instruções lógicas e de comparação
      • Instruções com inteiros 128-bit
      • Instruções de conversão
  • Programando junto com C
    • Sintaxe do GAS
    • Convenção de chamada da System V ABI
    • Convenções de chamada no Windows
    • Variáveis em C
    • Funções em C
    • Ambiente hosted
    • Ambiente freestanding
    • Inline Assembly no GCC
    • Instruções intrínsecas
  • Depuração de código
    • Entendendo os depuradores
    • Depurando com o GDB
    • Depurando com o Dosbox
  • Apêndices
    • Código de máquina
      • Formato das instruções
      • Atributos e prefixos
      • Immediate
      • Displacement
      • ModR/M e SIB
      • Opcode
      • Prefixo REX
      • Codificação dos registradores
  • Metadados
    • TO DO
    • Referências
Powered by GitBook
On this page
  • Pré-requisitos
  • Ferramentas necessárias

Was this helpful?

Export as PDF

Conteúdo

Conteúdo que será apresentado neste livro

PreviousIntroduçãoNextComo usar este livro

Last updated 3 years ago

Was this helpful?

Neste livro você irá aprender Assembly da arquitetura x86 e x86-64 desde os conceitos base até conteúdo mais "avançado". Digo conceitos "base" e não "básico" porque infelizmente o termo "básico" é mal empregado na internet afora. As pessoas estão acostumadas a verem conteúdo básico como algo superficial quando na verdade é a parte mais importante para o aprendizado. É a partir dos conceitos básicos que nós conseguimos aprender todo o resto. Mas infelizmente devido ao mal uso do termo ele acabou sendo associado a uma enorme quantidade de conteúdo superficial encontrado na internet.

Significado de básico: Que serve como base; essencial, basilar. O mais relevante ou importante de; fundamental. ~

Portanto que fique de prévio aviso que o conteúdo básico apresentado aqui não deve ser pulado, ele é de extrema importância e não será superficial como muitas vezes é visto em outras fontes de conteúdo na internet.

Pré-requisitos

Neste livro não será ensinado a programar em C e nem muito menos como elaborar algoritmos usando o paradigma imperativo (vulgo "lógica de programação"). É recomendável ter experiência razoável em alguma linguagem de programação e ser capaz de escrever um "Olá Mundo" em C além de ao menos saber usar funções. Bem como também é importante que saiba usar a linha de comando mas não se preocupe, todos os comandos serão ensinados na hora certa. E claro, não ensinarei sobre sistemas de numeração como , ou .

Por fim e o mais importante: Você precisa de um computador da arquitetura x86 rodando um sistema operacional de 64-bit. Mas não adianta apenas tê-lo, use-o para programar o que iremos aprender aqui.

Caso queira aprender C, o Mente Binária tem um treinamento gratuito intitulado .

Ferramentas necessárias

Todas as ferramentas que utilizaremos são gratuitas, de código aberto e com versão para Linux e Windows. Não se preocupe pois você não terá que desembolsar nada e nem baixar softwares em um site "alternativo". Não ensinarei como instalar as ferramentas, você pode facilmente encontrar tutoriais pesquisando no Google ou na própria documentação da ferramenta. De preferência já deixe todas as ferramentas instaladas e, caso use o Windows, não esqueça de setar a PATH corretamente.

Eis a lista de ferramentas:

  • -- Assembler que usaremos para nossos códigos em Assembly

  • -- Compilador de C que usaremos e ensinarei o Inline Assembly

  • -- É o porte do GCC para o Windows, caso use Windows instale esse especificamente e não o MinGW do projeto original.

  • -- Emulador do MS-DOS e arquitetura x86

  • -- Emulador de várias arquiteturas diferentes, usaremos a i386

  • É recomendável que tenha o , porém é opcional.

Qualquer dúvida sugiro que acesse o a fim de tirar dúvidas e ter acesso a outros conteúdos.

Dicio
binário
hexadecimal
octal
Programação Moderna em C
variável de ambiente
nasm
gcc
mingw-w64
dosbox
qemu
make
fórum do Mente Binária