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

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

Assembly Language for Intel-Based Computers, 5 th Edition Capítulo 1: Conceitos básicos (c) Pearson Education, 2006-2007. All rights reserved. You may.

Apresentações semelhantes


Apresentação em tema: "Assembly Language for Intel-Based Computers, 5 th Edition Capítulo 1: Conceitos básicos (c) Pearson Education, 2006-2007. All rights reserved. You may."— Transcrição da apresentação:

1 Assembly Language for Intel-Based Computers, 5 th Edition Capítulo 1: Conceitos básicos (c) Pearson Education, All rights reserved. You may modify and copy this slide show for your personal use, or for use in the classroom, as long as this copyright statement, the author's name, and the title are not changed. Slides prepared by the author Revision date: June 3, 2006 Kip Irvine

2 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Conteúdo Boas vindas à linguagem Assembly Conceito de máquina virtual Representação dos dados Operações booleanas

3 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Boas vindas à linguagem Assembly Algumas questões Aplicações da linguagem Assembly

4 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Algumas Questões Por que estudar linguagem Assembly? Que base seria necessária? O que é um assembler? Que hardware/software necessito? Que tipo de programas eu posso criar? O que vou aprender?

5 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Outras questões (cont) Como uma linguagem assembly (AL) se relaciona a uma linguagem de máquina? Como C++ e Java se relaciona com AL? AL é portável? Por que aprender AL?

6 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Aplicações da linguagem Assembly Alguns tipos representativos de aplicações: Aplicação comercial para uma plataforma única Driver de um dispositivo de Hardware Aplicações comerciais para plataformas múltiplas Sistemas embarcados & jogos por computador (ver painel seguinte)

7 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Comparando ASM com linguagens de alto nível

8 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Seção seguinte Boas vindas à linguagem Assembly Conceito de máquina virtual Representação dos dados Operações booleanas

9 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Conceito de máquina virtual Máquinas virtuais Níveis específicos de máquina

10 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Máquinas virtuais Tanenbaum: conceito de máquina virtual Analogia com linguagem de programação: Cada computador tem uma linguagem de máquina nativa (linguagem L0) que roda diretamente no hardware Uma linguagem mais humanamente amigável é usualmente construida acima da linguagem de máquina, chamada linguagem L1 Programas escritos em L1 podem ser executados em duas formas : Interpretação – o programa L0 interpreta e executa instruções em L1 um a um Tradução – o programa L1 é completamente traduzido para um programa na linguagem L0, que então é executado no hardware

11 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Traduzindo linguagens English: mostra a soma de A vezes B mais C. C++: cout << (A * B + C); Linguagem Assembly : mov eax,A mul B add eax,C call WriteInt Linguagem de máquina Intel : A F E

12 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Níveis específicos de máquina (descriptions of individual levels follow... )

13 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Linguagem de alto nível Nível 5 Linguagens orientadas a aplicações C++, Java, Pascal, Visual Basic... Os programas são compilados para a linguagem assembly (nível 4)

14 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Linguagem Assembly nível 4 Mnemônicos de instruções em correspondência um-a-um com as instruções em linguagem de máquina Chama funções escritas no nível de sistema operacional (nível 3) Os programas são traduzidos para a linguagem de máquina (nível 2)

15 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Sistema operacional Nível 3 Fornece serviços para os programas de nível 4 São traduzidos e executados no nível de arquitetura do conjunto de instruções (instruction set architecture) (nível 2)

16 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Arquitetura do conjunto de instruções (Instruction Set Architecture) Nível 2 Também conhecido como linguagem de máquina convencional Executado pelo programa no nível 1 (microarquitetura)

17 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Microarquitetura Nível 1 Interpreta instruções de máquina convencional (nível 2) Executado pelo hardware digital (nível 0)

18 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Lógica Digital Nível 0 CPU, construído de portas lógicas digitais Barramento do sistema Memória Implementada usando transistores next: Data Representation

19 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Próxima seção Boas vindas à linguagem Assembly Conceito de máquina virtual Representação dos dados Operações booleanas

20 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Representação dos dados Números binários Tradução entre binário e decimal Adição binária Tamanhos de armazenamento de inteiros Inteiros Hexadecimais Tradução entre decimal e hexadecimal Subtração hexadecimal Inteiros com sinal Subtração binária Armazenamento de caractere

21 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Números binários Dígitos são 1 e 0 1 = verdadeiro 0 = falso MSB – bit mais significativo LSB – bit menos significativo Numeração de Bits:

22 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Números binários Cada dígito (bit) é 1 ou 0 cada bit representa uma potência de 2: Cada número binário é uma soma de potências de 2

23 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Traduzindo binário para decimal A notação posicional mostra como calcular o valor decimal de número binário: dec = (D n-1 2 n-1 ) (D n-2 2 n-2 )... (D ) (D ) D = dígito binário binário = decimal 9: (1 2 3 ) + (1 2 0 ) = 9

24 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Tradução de decimal sem sinal para binário Dividir repetidamente o inteiro decimal por 2. Cada resto é um dígito binário no valor traduzido: 37 =

25 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Adição binária Começando com o LSB, somar cada par de dígitos, incluindo o vai-um (carry) se tiver.

26 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Tamanhos de armazenamento de inteiros Qual é o maior inteiro sem sinal que pode ser armazenado em 20 bits? Tamanhos padrões:

27 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Inteiros hexadecimais Valores binários são representados em hexadecimal.

28 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Traduzindo binário para hexadecimal Cada dígito hexadecimal corresponde a 4 bits. Exemplo: Traduzir o inteiro binário para hexadecimal:

29 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Convertendo hexadecimal para decimal Multiplicar cada dígito pela sua potência de 16 correspondente: dec = (D ) + (D ) + (D ) + (D ) Hex 1234 é igual a ( ) + ( ) + ( ) + ( ), ou decimal 4,660. Hex 3BA4 é igual a ( ) + (11 * 16 2 ) + ( ) + ( ), ou decimal 15,268.

30 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Potência de 16 Usado para calcular valores hexadecimais até 8 dígitos:

31 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Convertendo decimal para hexadecimal decimal 422 = 1A6 hexadecimal

32 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Adição hexadecimal Divide a soma de dois dígitos pela base (16). O quociente se torna o valor de vai-um (carry) e o resto é o dígito da soma A B 786D80B / 16 = 1, rem 5 Habilidade importante: os programadores freqüentemente somam e subtraem os endereços de variáveis e instruções.

33 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Subtração hexadecimal Quando um empréstimo é requerido do dígito à esquerda, adicionar 16 (decimal) ao valor do dígito corrente: C675 A E = 21 Prática: O endereço de var1 é O endereço da variável seguinte após var1 é A. Quantos bytes são usados por var1?

34 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Inteiros com sinal O bit mais à esquerda indica o sinal. 1 = negativo, 0 = positivo Se o dígito mais à esquerda de um inteiro hexadecimal é > 7, o valor é negativo. Exemplos: 8A, C5, A2, 9D

35 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Formando os complementos de 2 Números negativos são armazenados em notação complemento de 2 Note que =

36 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Subtração Binária Quando se subtrai A – B, converte B ao seu complemento de 2 Add A a (–B) – Prática: Subtrair 0101 de 1001.

37 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Como realizar: O complemento de 2 de um inteiro hexadecimal Conversão de binário com sinal para decimal Conversão de decimal com sinal para binário Conversão de decimal com sinal para hexadecimal Conversão de hexadecimal com sinal para decimal

38 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Intervalos de inteiros com sinal O bit mais à esquerda é reservado para o sinal. Isso limita o intervalo: Prática: Qual é o maior valor positivo que pode ser armazenado em 20 bits?

39 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Armazenamento de caracteres Conjunto de caracteres Standard ASCII(0 – 127) Extended ASCII (0 – 255) ANSI (0 – 255) Unicode (0 – 65,535) Cadeia terminada por zero Arranjo de caracteres seguido por um byte nulo

40 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Representação de dados numéricos Binário puro Pode ser calculado diretamente Binário em ASCII Cadeia de dígitos: " " Decimal em ASCII Cadeia de dígitos: "65" Hexadecimal em ASCII Cadeia de dígitos: "9C" next: Boolean Operations

41 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Seção seguinte Boas vindas à linguagem Assembly Conceito de máquina virtual Representação dos dados Operações booleanas

42 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Operações Booleanas NOT AND OR Precedência de operadores Tabela verdade

43 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Álgebra Booleana Baseada na lógica simbólica, projetada por George Boole Expressões booleanas criadas de: NOT, AND, OR

44 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, NOT Inverte (reverte) um valor booleano Tabela verdade para o operador booleano NOT : Digital gate diagram for NOT:

45 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, AND Tabela verdade para o operador booleano AND: Digital gate diagram for AND:

46 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, OR Tabela verdade para o operador booleano OR: Digital gate diagram for OR:

47 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Precedência de operadores Exemplos mostrando a ordem das operações:

48 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Tabela verdade (1 de 3) Uma função booleana tem uma ou mais entradas booleanas e retorna uma única saída booleana. Uma tabela verdade mostra todas as entradas e saídas de uma função booleana Exemplo: X Y

49 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Tabela verdade (2 de 3) Exemplo: X Y

50 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Tabela verdade (3 de 3) Exemplo: (Y S) (X S) Two-input multiplexer

51 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, Resumo Linguagem Assembly ajuda a entender como o software é construído nos níveis mais baixos Linguagem Assembly language tem relação um-a-um com a linguagem de máquina Cada camada na arquitetura de computadores é uma abstração de uma máquina Camada pode ser hardware ou software Expressões booleanas são essenciais para o projeto do hardware e software de computadores

52 Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers 5/e, E 64 O que esses números representam?


Carregar ppt "Assembly Language for Intel-Based Computers, 5 th Edition Capítulo 1: Conceitos básicos (c) Pearson Education, 2006-2007. All rights reserved. You may."

Apresentações semelhantes


Anúncios Google