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

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

Programação em Assembly Introdução e Revisão Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.

Apresentações semelhantes


Apresentação em tema: "Programação em Assembly Introdução e Revisão Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores."— Transcrição da apresentação:

1 Programação em Assembly Introdução e Revisão Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores

2 Roteiro Por que estudar Assembly? Representação de dados Sistema decimal Sistema binário Sistema hexadecimal Organização dos dados Organização de Dados Organização de Sistemas Livro texto: The Art of Assembly Language

3 Introdução É AssemblY e não AssemblER! Linguagem de programação de baixo nível Cada instrução é convertida diretamente em linguagem de máquina Cada arquitetura possui um conjunto de instruções IA32 – Intel 1985 X86 – 32 bits IA32-EM64T ou IA32-AMD64 – AMD 2002 X86-64 – 64 bits

4 Por que estudar Assembly? Assembly é difícil de aprender Assembly é difícil de ler e entender Assembly é difícil de manter Programar em assembly consome muito tempo Os compiladores atuais dispensam a necessidade do assembly As máquina atuais são rápidas e não precisamos mais do assembly Se você precisa de mais velocidade, escolha um algoritmo mais rápido Memória não é mais o problema Assembly não é portável

5 Por que estuar assembly? Velocidade Programas escritos e assembly são geralmente mais rápidos Espaço de memória Programas em assembly consomem menos memória Possibilidades de programação Você pode fazer coisas em assembly que são difíceis ou impossíveis de fazer em outras linguagens Conhecimento Quem conhece assembly programa melhor em outras linguagens

6 Representação de dados Sistema decimal Sistema binário Sistema hexadecimal Organização dos dados

7 Sistema Decimal Qual o significado de um valor decimal? Exemplo: 123 (1x10^2) + (2x10^1) + (3x10^0) = 100 + 20 + 3 E com casas decimais? Exemplo: 123,45 (1x10^2) + (2x10^1) + (3x10^0) + (4 x 10^-1) + (5 x 10^-2) = 100 + 20 + 3 + 0,4 + 0,05 = 123,45

8 Sistema Binário Computadores utilizam níveis de voltagem para representar dados 0v e +5v -> 0 e 1 O sistema binário é análogo ao decimal Sistema decimal tem 10 digitos (0 a 9) Sistema binário tem 2 dígitos (0 e 1) Quanto é 1111011 em decimal? (1x2^6) + (1x2^5) + (1x2^4) + (1x2^3) + (0x2^2) + (1x2^1) + (1x2^0) 64 + 32 + 16 + 8 + 0 + 2 + 1 = 123

9 Sistema Binário Conversão decimal-binário Exemplo: converter 123 para binário 123/2 = 61resta 1 61/2 = 30 resta 1 30/2= 15resta 0 15/2= 7resta 1 7/2= 3resta 1 3/2= 1resta 1 1/2= 0resta 1 123 = 1111011b

10 Sistema Hexadecimal Por que hexadecimais? Binários são muito longos pra escrever Converter decimal para binário é muito custoso Mas computadores “pensam” em binário! Hexadecimais são compactos e fáceis de converter para binário A base hexadecimal é 16 (4 bits : 2^4) Como só existem 10 dígitos (0-9) completa-se com as letras de A-F 0000 = 0 0001 = 1 0010 = 2 0011 = 3 0100 = 4 0101 = 5 0110 = 6 0111 = 7 1000 = 8 1001 = 9 1010 = A 1011 = B 1100 = C 1101 = D 1110 = E 1111 = F

11 Sistema Hexadecimal Conversão hexadecimal -> decimal Exemplo: 1234h = ?d dígitos hexadecimais 1 2 3 4 numeração 3 2 1 0 potência de 1616^3 16^2 16^1 16^0 (1 x 16^3) + (2 x 16^2) + (3 x 16^1) + (4 x 16^0) = 4096 + 512 + 48 + 4 = 4660 decimal Conversão hexadecimal binário Exemplo: ABCDh = ?b hexadecimal A B C D binário1010 1011 1100 1101

12 Organização de Dados Bit Nibble Byte Word Double word

13 Bit Menor unidade de dados Pode representar 2 valores distintos 0 ou 1 Verdadeiro ou falso Azul ou vermelho Feminino ou masculino 400 ou 300 etc.

14 Nibble Conjunto de 4 bits Interessante para hexadecimais Todo dígito hexadecimal pode ser representado por um nibble

15 Byte Conjunto de 8 bits Menor item de dados endereçável no 80x86 Cada byte comporta 2 nibbles

16 Word Uma palavra de 16 bits

17 Double word Palavra de 32 bits

18 Operações aritméticas 9h + 1h = 10h? 10h - 1h = 9h? Seu cérebro só pensa decimal!!! 1. Converta hex ou bin para decimal 2. Faça os cálculos 3. Converta o resultado para hex ou bin Ou: use uma calculadora!!

19 Deslocamentos Left Shift Multiplicação pela base Acrescenta-se zeros na direita Descarta-se os bits da esquerda Right Shift Divisão pela base Acrescenta-se zeros na esquerda Descarta-se os bits da direita 1234 SHL 1 = 12340 1234 SHR 1 = 123?

20 Rotações Left rotate Right rotate

21 Caracteres ASCII 4 grupos 0 a 31 – Caracteres de controle 32 a 63 – pontuação, caracteres especiais e dígitos 0-9 Espaço: 20h Dígitos 0-9: 30h ao 39h 64 a 95 – letras maísculas e alguns símbolos 96 a 127 – letras minúsculas e alguns símbolos Bit 6Bit 5Grupo 0 0Caracteres de controle 0 1Dígitos e caracteres de pontuação 1 0Maiúsculos e especiais 1 1Minúsculos e especiais

22 Caracteres ASCII Relação Hexadecimal CaractDecimalHexa 0 4830h 1 4931h 2 5032h 3 5133h 4 5234h 5 5335h 6 5436h 7 5537h 8 5638h 9 5739h Bit 5 – diferencia maiúsculas e minúsculas

23 Organização de Sistemas Componentes básicos do sistema Arquitetura de John Von Newmann CPU Memória Dispositivos E/S

24 O barramento do Sistema Conjunto de fios entre os componentes no sistema pelos quais passam sinais elétricos São três: barramento de endereços barramento de dados barramento de controle.

25 Barramento de Dados Utilizados para transportar dados entre os componentes do computador Nos sistemas 80x86 o barramento de dados contém 8, 16, 32 ou 64 linhas 8086, 80186, 80286 e 80386SX – 16 bits 80386DX, 80486 e 80586 Pentium (Pro) – 32 bits

26 Barramento de Endereços Utilizado para indicar qual endereço (de memória ou de E/S) será utilizado O número de bits define o tamanho da memória endereçável e de posições de E/S Processador 8088 8086 80188 80186 80286 80386SX 80386DX 80486 80586 Barramento 20 bits 24 bits 32 bits Memória endereçável 1 Megabyte 16 Megabytes 4 Gibabytes

27 Barramento de Controle Controla como o processador se comunica com o restante do sistema Por exemplo: Indicação de leitura ou escrita Memória ou dispositivo de E/S

28 A memória do Computador O que exatamente é uma posição de memória? Escrita: Memory[125] := 0;Leitura: CPU := Memory[125]

29 Temporização Em computadores reais as operações não ocorrem instantaneamente Certas operações precisam ser executadas em ordem I := J; I := I * 5 + 2; As CPUs do 80x86 utilizam um sinal alternado chamado clock do sistema

30 O clock do sistema Gerencia toda a sincronização dentro de um computador É um sinal elétrico no barramento de controle que fica alternando entre zero e um de acordo com uma determinada taxa cíclica Freqüência de clock: freqüência com que o clock alterna entre zero e um Período ou Ciclo de clock: tempo que ele leva para alternar de zero para um e voltar para zero Ex.: 80486 cicla a 66 milhões de Hertz - 66 MHz.

31 Estados de Espera É um ciclo de clock extra para dar a algum dispositivo o tempo para completar uma operação Exemplo: 80486 de 50 MHz tem um período do clock de 20 ns necessitamos de uma memória de 20 ns decodificadores e buffers lógicos consomem tempo Memórias rápidas são muito caras Solução: cache

32 Memória Cache Programas tendem a acessar as mesmas posições de memória repetidamente localidade temporal de referência localidade espacial de referência for i := 0 to 10 do A[i] := 0; A cache não é perfeita Em caso de erro, busca- se na memória principal Cache secundária aumenta acertos


Carregar ppt "Programação em Assembly Introdução e Revisão Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores."

Apresentações semelhantes


Anúncios Google