A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Assembly Equipe: David Lopes Embiruçú (dle) Emanuel Felipe Príncipe Carvalho (efpc) Luis Otávio Cavalcante Borba (locb) Rosana Silva Matos (rsm2)

Apresentações semelhantes


Apresentação em tema: "Assembly Equipe: David Lopes Embiruçú (dle) Emanuel Felipe Príncipe Carvalho (efpc) Luis Otávio Cavalcante Borba (locb) Rosana Silva Matos (rsm2)"— Transcrição da apresentação:

1 Assembly Equipe: David Lopes Embiruçú (dle) Emanuel Felipe Príncipe Carvalho (efpc) Luis Otávio Cavalcante Borba (locb) Rosana Silva Matos (rsm2)

2 Assembly “There are three reasons for using assembly language: speed, speed, and more speed.” Autor e data desconhecidos

3 História Criada nos anos 50 com o intuito de tornar a programação mais humana Antes do assembly os programadores tinham que programar pensando em 0’s e 1’s Essa forma de programar tornava tanto a escrita como a leitura dos programas difícil e confusa Uma grande quantidade de programas foram escritos inteiramente em assembly antes do aparecimento das HLL (High Level Languages) nos anos 70 e no inicio dos anos 80

4 Paradigma Classificação  Linguagem de primeira geração  Sem fontes que especifiquem o seu paradigma Conclusão  Peculiaridade que se aproxima do paradigma imperativo  No entanto o Fortran foi a primeira linguagem classificada como tal

5 Utilização Por ser uma linguagem de baixo nível, assembly foi bastante utilizada para a escrita de programas que precisavam de alto desempenho, baixo consumo de memória ou que para realizar alguma ação que uma HLL não permitia Exemplos a maioria das HLL’s não permitem o envio de um byte para a porta serial desenvolvimento de algumas partes dos sistemas operacionais que necessitam de um alto desempenho desenvolvimento de drivers de dispositivos, como os drivers de mouses e impressoras implementação de rotinas de alta velocidade para compressão e encriptação de dados e em otimizações de rotinas gráficas também pode ser utilizado em códigos maliciosos, como vírus de computador

6 Sintaxe A sintaxe de Assembly depende intrinsecamente do assembler em questão, diferindo geralmente apenas os mnemônicos e diretivas Hoje em dia duas vertentes de sintaxe se destacam, At&t e x86 Principais diferenças: Registradores Origem/Destino Constantes Comandos Endereçamento através dos registradores

7 Especificação Ligação íntima de assembly e seus montadores não é possível apresentar uma documentação da linguagem sem que essa envolva algum assembler Assembly também é extremamente dependente da arquitetura sobre o qual é feito Cada dispositivo tem seu próprio assembly e há uma especificação para cada um deles  Principais assemblers que usam sintaxe Intel: Fasm (Flat Assembler) Masm (Microsoft Assembler) Nasm (Netwide Assembler) Tasm (Turbo Assembler)  Principais assemblers que usam sintaxe At&t: Gnu Gas

8 Implementação Plataforma: apenas para High Level Assembly (HLA) Compiladores: fasm, goasm, masm, nasm, tasm, gas entre outros Interpretadores: não há

9 Ambientes de desenvolvimento Editores como Notepad, Context, gedit, Emacs e editores de texto em geral servem como ambientes rústicos de trabalho Alguns compiladores seguem acompanhados de IDEs Turbo Assembler IDE AsmEdit que acompanham o Tasm e WinAsm Quick Editor que acompanha o Masm

10 Exemplos de programas Os sistemas operacionais modernos com trechos de código em assembly em seus device drivers Sistemas onde é necessário extremo controle sobre o código ou mesmo sistemas em tempo real como jogos MMORPG Sistemas onde não existem HLL (sistemas muito novos) Exemplo de um hello world feito com a sintaxe x86 e para o Nasm:

11 Vantagens Velocidade. Programas em linguagem assembly são geralmente os programas mais rápidos. Espaço. Os programas em linguagem assembly são geralmente menores. Capacidade. Você pode fazer coisas em assembly que são difíceis ou impossíveis em linguagens de alto nível. Conhecimento. Seu conhecimento em assembly irá ajudar a escrever melhores programas, mesmo usando linguagens de alto nível. Total domínio do processo de geração de código por parte do programador.

12 Desvantagens Difícil de aprender, de ler, entender, debugar, escrever e difícil manutenção Programar em assembly consome muito tempo. Hoje em dia as máquinas são rápidas e não precisamos mais usar assembly. Se você precisar de mais velocidade é melhor escolher um algoritimo melhor do que trocar para o assembly. As máquinas hoje em dia têm muita memória, então salvar espaço usando o assembly não é importante. A linguagem não é portável.

13 Conclusão Chegamos a uma breve conclusão: Apesar de ter perdido sua importância na implementação de softwares, assembly possivelmente nunca perderá sua utilidade na fabricação de determinados artefatos de software. Esse fato se dá pela característica de extremo baixo nível desta linguagem.

14 Perguntas? A hora é essa!


Carregar ppt "Assembly Equipe: David Lopes Embiruçú (dle) Emanuel Felipe Príncipe Carvalho (efpc) Luis Otávio Cavalcante Borba (locb) Rosana Silva Matos (rsm2)"

Apresentações semelhantes


Anúncios Google