C e Assembly para arquiteturas x86-64
195 pág.

C e Assembly para arquiteturas x86-64


DisciplinaArquitetura de Computadores4.545 materiais34.501 seguidores
Pré-visualização50 páginas
Dicas - C e Assembly
para arquitetura x86-64
Versão 0.31.15
© 2014, 2015 por Frederico Lamberti Pissarra
07 de junho de 2015
Título: C & Assembly para arquitetura x86-64
Autor: Frederico Lamberti Pissarra
Ano de publicação: 2015
Este material é protegido pela licença GFDL 1.3:
C & Assembly para arquitetura x86-64
Copyright (C) 2014-2015 by Frederico Lamberti Pissarra
A permissão de cópia, distribuição e/ou modificação deste documento é 
garantida sob os termos da licença \u201cGNU Free Documentation License, 
Version 1.3\u201d ou versão mais recente publicada pela Free Software 
Foundation.
O texto integral da licença pode ser lido no link 
https://www.gnu.org/licenses/fdl.html.
É importante, no entanto, advertir ao leitor que este material encontra-se em processo de produção. 
Trata-se, então, de um rascunho e não reflete o material finalizado.
Figura da capa: DIE da arquitetura Intel Ivy Bridge
Índice
Introdução.............................................................................................................................................1
Organização do livro........................................................................................................................1
Sistemas Operacionais: Linux vs Windows.....................................................................................2
Sobre C e C++.................................................................................................................................2
Sobre o uso da linguagem Assembly...............................................................................................3
Códigos-fonte deste livro.................................................................................................................4
Arquiteturas de processadores.........................................................................................................5
Não confunda arquitetura com modo de operação..........................................................................6
Avisos finais sobre o livro................................................................................................................6
Capítulo 1: Introdução ao processador.................................................................................................7
Modos de operação..........................................................................................................................7
O que significa \u201cproteção\u201d?.............................................................................................................7
O que significa \u201cpaginação\u201d?..........................................................................................................7
Proteção e segmentos, no modo protegido em 32 bits.....................................................................8
Onde fica a tabela de descritores?....................................................................................................9
Cache de descritores......................................................................................................................10
Proteção no modo IA-32e..............................................................................................................10
Privilégios e \u201crings\u201d.......................................................................................................................11
Capítulo 2: Interrompemos nossa programação.................................................................................13
O que é uma interrupção?..............................................................................................................13
Interrupções especiais: Exceções, Faltas e Abortos.......................................................................13
Interrupções são sempre executadas no ring 0!.............................................................................14
Faltas importantes para performance.............................................................................................14
Sinais: Interrupções no user space.................................................................................................14
Um exemplo de uso de sinal..........................................................................................................16
Não use signal(), use sigaction()....................................................................................................16
Capítulo 3: Resolvendo dúvidas frequentes sobre a Linguagem C....................................................19
Headers e Módulos: Uma questão de organização........................................................................19
Tamanho de inteiros e ponteiros....................................................................................................20
Existe diferença entre \u201cdeclarar\u201d e \u201cdefinir\u201d um símbolo.............................................................21
Parêntesis.......................................................................................................................................21
Escopo dos parâmetros de funções................................................................................................22
Protótipos de funções.....................................................................................................................22
Problemas com algumas estruturas com máscaras de bits.............................................................23
Ponteiros........................................................................................................................................25
Declarando e usando ponteiros......................................................................................................26
Problemas com ponteiros para estruturas......................................................................................28
Ponteiros e strings..........................................................................................................................28
Ponteiros e arrays contendo \u201cstrings\u201d............................................................................................29
Mais ponteiros e arrays..................................................................................................................30
Declarando e inicializando arrays, estruturas e unions..................................................................30
Ponteiros, funções e a pilha...........................................................................................................32
Entendendo algumas declarações \u201cmalucas\u201d usando ponteiros....................................................33
Utilidade de ponteiros para funções...............................................................................................34
A biblioteca padrão: libc................................................................................................................35
A libc faz um monte de coisas \u201cpor baixo dos panos\u201d...................................................................37
Disparando processos filhos..........................................................................................................38
Capítulo 4: Resolvendo dúvidas sobre a linguagem Assembly..........................................................41
O processador pode ter \u201cbugs\u201d......................................................................................................41
A mesma instrução pode gastar mais tempo do que deveria.........................................................42
Nem todas as instruções \u201cgastam\u201d tempo......................................................................................43
Capítulo 5: Misturando C e Assembly................................................................................................45
Convenções de chamada (x86-64).................................................................................................45
Jorge
Jorge fez um comentário
Desculpa responder só agora, pois só vi a mensagem agora. Envio sim. Grande abraço !
0 aprovações
Carregar mais