atualização do conteúdo geral do curso

This commit is contained in:
Blau Araujo 2025-06-02 12:29:14 -03:00
parent 805c821269
commit e1c525de6b

View file

@ -1,3 +1,53 @@
* 0 -- Introdução à linguagem Assembly (NASM)
- O que é Assembly
- Linguagem dependente da arquitetura
- Linguagem de montagem
- Classificações da linguagem
- De baixo nível de abstração (segunda geração)
- Imperativa
- De tipagem inexistente
- Com gerenciamento manual de memória
- Compilada via montagem
- Paradigmas
- De uso específico
- Comparação com outras linguagens
- Não há estruturas de controle
- Não há o conceito de variáveis
- Ponteiros, só por analogia
- Em vez de tipos, quantidades de bytes
- Por que aprender Assembly?
- Entendimento do funcionamento de computadores
- Depuração e análise
- Integração com C
- Aprendizado
- Principais sintaxes
- Sintaxe AT&T
- Sintaxe Intel
- Compatibilidade
- O Netwide Assembler (NASM)
- Sintaxe de instruções
- Sintaxe de metaprogramação da montagem
- Operadores e símbolos
- Seções no NASM
- Importação e exportação de símbolos
- Tipos de operandos em instruções
- Instruções essenciais
- Instrução =mov=
- Instrução =lea=
- Instruções aritméticas básicas (=inc=, =dec=, =add= e =sub=)
- Instruções de multiplicação e divisão (=mul=, =imul=, =div= e =idiv=)
- Instrução =jmp= (salto incondicional)
- Instruções de salto condicional
- Instrução =cmp=
- Instrução =test=
- Instruções =call= e =ret=
- Instrução =syscall=
- Padrões frequentemente utilizados
- Montagem e execução de programas em Assembly NASM
- Requisitos
- Exemplo: "Salve, simpatia!"
* 1 -- Arquitetura de computadores
- Modelo de von Neumann
@ -89,3 +139,47 @@
- Exemplo em Assembly
- Preservação de registradores com a pilha
- Resumo comparativo com chamadas de funções
* 6 -- Vetor de argumentos de linha de comando
- O quadro inicial da pilha do processo
- Inspecionando argumentos e variáveis exportadas
- Contador de argumentos
- Primeiro elemento do vetor de argumentos
- Separador nulo do vetor de argumentos
- Primeiro elemento do vetor ambiente
- Resultados com mais de um argumento
- Acesso aos argumentos em baixo nível
- Acesso direto à pilha
- Acesso em Assembly exportando main
- Listando todos os dados de argumentos
- Exemplo em Assembly com main e gcc
- Exemplo com acesso direto à pilha
* 7 -- Vetor de ambiente
- Revisão: o quadro inicial da pilha do processo
- Localizando o vetor de ambiente
- Extraindo valores de variáveis exportadas
- Implementação com funções da linguagem C
* 8 -- Fluxos de dados
- Tabela de descritores de arquivos
- Uma nota sobre tipos de arquivos
- Descritores de arquivos padrão
- Abstração em alto nível (/stream/)
- Uso dos fluxos de dados padrão no shell
- Mecanismo de redirecionamento
- Mecanismo de pipe
- Captura da entrada padrão
- Uso dos fluxos de dados padrão em programas
- Demonstrando um redirecionamento interno
- Demonstrando um pipe interno
- Demonstrando a leitura da entrada padrão
- Identificando a origem do fluxo de leitura
- Criação e manipulação de fluxos de dados
- Armazenamento temporário (/bufferização/)
- Bufferização em alto nível
- Bufferização no nível do kernel
- Bufferização em Assembly