atualização do conteúdo geral do curso
This commit is contained in:
parent
805c821269
commit
e1c525de6b
1 changed files with 94 additions and 0 deletions
|
@ -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
|
* 1 -- Arquitetura de computadores
|
||||||
|
|
||||||
- Modelo de von Neumann
|
- Modelo de von Neumann
|
||||||
|
@ -89,3 +139,47 @@
|
||||||
- Exemplo em Assembly
|
- Exemplo em Assembly
|
||||||
- Preservação de registradores com a pilha
|
- Preservação de registradores com a pilha
|
||||||
- Resumo comparativo com chamadas de funções
|
- 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
|
||||||
|
|
Loading…
Add table
Reference in a new issue