Microprocessadores ii sistemas de numeração

807 visualizações

Publicada em

Microprocessadores: sistemas de numeração e operações binárias

Publicada em: Dispositivos e hardware
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
807
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
22
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Microprocessadores ii sistemas de numeração

  1. 1. Microprocessadores IIMicroprocessadores II Professor: Mauro Jansen Sistemas de Numeração e operações binárias 06/05/2015
  2. 2. Sistemas de Numeração Prof. Mauro Microprocessadores II Sistemas de Numeração 2 Sistemas de Numeração
  3. 3. Sistemas de numeração Conjunto de regras que nos permite escrever e ler qualquer número utilizando símbolos básicos (algarismos ou dígitos). Chamamos de “base N” o sistema de Prof. Mauro Microprocessadores II Sistemas de Numeração 3 Chamamos de “base N” o sistema de numeração que usa “N” símbolos para representar os números Ex.: base 10, base 2, base 8, base 16
  4. 4. Sistemas de numeração Exemplos: Sistema decimal (base 10) Dez símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Sistema binário (base 2) Dois símbolos: 0 e 1 (que são bits) Usado interna- mente pelo computador Prof. Mauro Microprocessadores II Sistemas de Numeração 4 Dois símbolos: 0 e 1 (que são bits) Sistema octal (base 8) Oito símbolos: 0, 1, 2, 3, 4, 5, 6, 7 Sistema hexadecimal (base 16) Dezesseis símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Mais usado na prática de programação
  5. 5. Sistema Decimal Soma dos produtos dos dígitos por potências de base 10 (10n), onde n é a posição relativa do algarismo, da direita (n=0) para a esquerda 7 0 4 8 Prof. Mauro Microprocessadores II Sistemas de Numeração 5 7 0 4 8 103 102 101 100 8 x 100 = 8 x 1 = 8 4 x 101 = 4 x 10 = 40 0 x 102 = 0 x 100 = 0 7 x 103 = 7 x 1.000 = 7.000 7.048
  6. 6. Sistema Binário Soma de produtos dos dígitos (bits) por potências de base 2 (2n), onde n é a posição relativa do algarismo, da direita (n=0) para a esquerda 1 0 1 0 Prof. Mauro Microprocessadores II Sistemas de Numeração 6 1 0 1 0 23 22 21 20 0 x 20 = 0 x 1 = 0 1 x 21 = 1 x 2 = 2 0 x 22 = 0 x 4 = 0 1 x 23 = 1 x 8 = 8 10
  7. 7. Bits e Bytes Byte é um conjunto de 8 bits: 1 0 1 0 1 0 1 0 7 6 5 4 3 2 1 0 Bit 0: Bit menosBit 7: Bit mais Peso / ordem dos bits Prof. Mauro Microprocessadores II Sistemas de Numeração 7 O byte é a menor unidade de memória Um byte equivale a dois dígitos hexadecimais Um Nibble é um conjunto de 4 bits (metade de um byte) ou um dígito hexadecimal Bit 0: Bit menos significativo (LSB) Bit 7: Bit mais significativo (MSB)
  8. 8. Sistema Binário: valores máximos Quantidade máxima de valores representáveis com N bits: 2N Maior valor representável: 2N – 1 Exemplos: Prof. Mauro Microprocessadores II Sistemas de Numeração 8 Exemplos: Qtd.de bits Qtd.valores Maior valor Binário 4 24 = 16 15 1111 8 28 = 256 255 11111111 16 216 = 65536 65535 11111111 11111111
  9. 9. Sistema Hexadecimal Usa dezesseis símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Notação: letra “h” após o número Exemplos: 3Fh, 200Ah, B7ECh, 70h Sistema mais usado em computadores Prof. Mauro Microprocessadores II Sistemas de Numeração 9 Sistema mais usado em computadores Correspondência de algarismos hexadecimais para decimais: A = 10 D = 13 B = 11 E = 14 C = 12 F = 15
  10. 10. Sistema Hexadecimal Soma de produtos dos dígitos (bits) por potências de base 16 (16n), onde n é a posição relativa do algarismo, da direita (n=0) para a esquerda 0 3 C F Prof. Mauro Microprocessadores II Sistemas de Numeração 10 0 3 C F 23 162 161 160 F x 160 = 15 x 1 = 15 C x 161 = 12 x 16 = 192 3 x 162 = 3 x 256 = 768 0 x 163 = = 0 975
  11. 11. Sistema Hexadecimal: valores máximos Quantidade máxima de valores representáveis com N dígitos: 16N Maior valor representável: 16N – 1 Exemplos: Prof. Mauro Microprocessadores II Sistemas de Numeração 11 Exemplos: Dígitos Qtd.de bits Qtd.valores Maior valor Hexa 1 4 161 = 16 15 F 2 8 162 = 256 255 FF 4 16 164 = 65536 65535 FFFF
  12. 12. Números com um byte Repare que com um byte (8 bits) podemos representar os números decimais de 0 a 255 e seus correspondentes hexadecimais e binários: Decimal 0 a 255 Prof. Mauro Microprocessadores II Sistemas de Numeração 12 Hexa 00h a FFh Binário 00000000 a 11111111 Para representar valores maiores que 255 precisaremos de dois bytes ou mais Cada dois dígitos hexadecimais correspondem a um byte
  13. 13. Aritmética binária Prof. Mauro Microprocessadores II Sistemas de Numeração 13 Aritmética binária
  14. 14. Soma binária Regras: Operação Resultado 0+0 0 0+1 1 1+0 1 1+1 10 (0 e “vai 1”) Prof. Mauro Microprocessadores II Sistemas de Numeração 14 Exemplo: OBS: o “vai 1” ou transporte é chamado de “carry” 1+1 10 (0 e “vai 1”)
  15. 15. Soma binária Overflow (estouro): é quando o resultado da soma não cabe na quantidade de bits disponível Exemplo (dispondo de 4 bits): Prof. Mauro Microprocessadores II Sistemas de Numeração 15 Exemplo (dispondo de 4 bits): Overflow 10102 (1010) + 11012 (1310) 101112 ( 710)
  16. 16. Valores binários sinalizados São números inteiros (positivos e negativos – conjunto Ζ) no sistema binário Existem 2 soluções para representação: Sinal-magnitude (pouco utilizada) Prof. Mauro Microprocessadores II Sistemas de Numeração 16 Sinal-magnitude (pouco utilizada) Complemento de 2 (padrão)
  17. 17. Valores binários sinalizados 1ª solução: sinal-magnitude O bit mais significativo representa o sinal e os bits restantes, o valor: +8 = 00001000 - 8 = 10001000 Prof. Mauro Microprocessadores II Sistemas de Numeração 17 Desvantagens: Duas representações para o número zero: +0 = 00000000 - 0 = 10000000 P/ efetuar adição e subtração deve-se considerar tanto a magnitude quanto o sinal (dificuldade de implementação no processador)
  18. 18. Valores binários sinalizados 2ª solução (padrão): complemento de 2 Também usa o bit mais significativo como sinal, mas os outros bits são interpretados de forma diferente É o valor simétrico de um número binário Prof. Mauro Microprocessadores II Sistemas de Numeração 18 É o valor simétrico de um número binário Passos para achar o complemento de 2: Calcular o complemento de 1, invertendo todos os bits do número binário original Somar 1 ao complemento de 1
  19. 19. Valores binários sinalizados Exemplo: calcular o complemento de 2 de 00001000 (8 em decimal): Normal: 00001000 (+810) Complemento de 1: 11110111 Soma-se 1 ao c-1: 1 Prof. Mauro Microprocessadores II Sistemas de Numeração 19 Soma-se 1 ao c-1: 1 Complemento de 2: 11111000 (-810) Regra prática p/ achar complemento de 2: Copie todos os bits da direita p/ esquerda até achar o primeiro bit 1 (inclusive ele) Inverta todos os demais bits
  20. 20. Valores binários sinalizados Quantidade máxima de valores representáveis com N bits: 2N - 1 Faixa de valores: - 2N/2– 1 a + 2N/2 – 1 Exemplos: Prof. Mauro Microprocessadores II Sistemas de Numeração 20 Exemplos: Qtd.de bits Qtd.valores Faixa de valores 4 24-1 = 15 -7 a +7 8 28-1 = 255 -127 a +127 16 216-1 = 65535 -32.768 a +32.768
  21. 21. Complemento: noção matemática Complemento de “B” É o valor simétrico de um número X na base “B”, com N dígitos Número YB com N dígitos que, somado a XB também com N dígitos, resulta num número que, Prof. Mauro Microprocessadores II Sistemas de Numeração 21 também com N dígitos, resulta num número que, desprezando-se os dígitos mais significativos que excedem a quantidade N, é o resultado da subtração X - Y complemento de B do número X = BN – x
  22. 22. Complementos: noção matemática Base 2 (complemento de 2): complemento de 2 de X = 2N – X (N=num.de algarismos) Exemplo: Complemento de 2 de 00112 (4 dígitos) = 24 – 0011 = 10000 – 0011 = 1101 Prof. Mauro Microprocessadores II Sistemas de Numeração 22 = 10000 – 0011 = 1101 Prova: 1000 – 0011 = 1000 + 1101 = 10101 Base 10 (complemento de 10): Complemento de 10 de X = 10N – X (n=num.de algarismos) Exemplo: Complemento de 10 de 3 (2 dígitos) = 102 – 3 = 97 Prova: 94 – 3 = 94 + 97 = 191
  23. 23. Operações binárias: subtração Podemos efetuar a subtração binária da mesma forma que no sistema decimal, sendo que o “vai 1” é subtraído do resultado da próxima conta Regras: Operação Resultado 0-0 0 Prof. Mauro Microprocessadores II Sistemas de Numeração 23 Exemplo: 1 1 1 1000 - 0011 0101 0-0 0 1-0 1 1-1 0 0-1 11 (1 e “vai 1”)
  24. 24. Operações binárias: subtração Como vimos no exemplo anterior, a subtração pelo processo normal é trabalhosa Por convenção e por questões de Prof. Mauro Microprocessadores II Sistemas de Numeração 24 Por convenção e por questões de simplificação, o microprocessador efetua apenas a operação de adição Mas como efetuar subtração só dispondo da adição? R: usando o “complemento de 2”
  25. 25. Subtração usando complemento de 2 Basta somar o complemento de 2 do segundo fator ao primeiro Vejamos como fica a subtração anterior usando soma com complemento de 2: Prof. Mauro Microprocessadores II Sistemas de Numeração 25 1000 – 0011 = 1000 + complemento de 2 de 0011 1000 +1101 10101 Despreza-se o dígito que excede a quantidade de bits que é 4
  26. 26. Outras operações Multiplicação: várias adições Divisão: várias subtrações (adições com complemento de 2) Prof. Mauro Microprocessadores II Sistemas de Numeração 26
  27. 27. Conversões de base Prof. Mauro Microprocessadores II Sistemas de Numeração 27 Conversões de base
  28. 28. Conversões de base É possível converter um valor de um sistema de numeração para outro, usando algumas regras Podemos usar calculadoras ou o próprio Prof. Mauro Microprocessadores II Sistemas de Numeração 28 Podemos usar calculadoras ou o próprio computador para fazer essas conversões, mas é importante conhecer as regras
  29. 29. Conversão da base n para decimal Multiplicar cada dígito por nX, onde n é a base destino e x é a posição que o dígito ocupa, da direita (x=0) para a esquerda, e somar todos os resultados. Exemplo: converter 10102 p/ base 10 1 0 1 0 Prof. Mauro Microprocessadores II Sistemas de Numeração 29 1 0 1 0 23 22 21 20 0 x 20 = 0 x 1 = 0 1 x 21 = 1 x 2 = 2 0 x 22 = 0 x 4 = 0 1 x 23 = 1 x 8 = 8 10 Portanto, 10102 = 1010
  30. 30. Conversão da base n para decimal Obs.: caso n=16 (conversão da base 16 p/ decimal), substituímos cada dígito literal hexadecimal pelo seu respectivo valor decimal (A=10, B=11, C=12, D=13, E=14, F=15) na multiplicação pela potência de Prof. Mauro Microprocessadores II Sistemas de Numeração 30 F=15) na multiplicação pela potência de base 16, quando necessário
  31. 31. Conversão de decimal para base n Efetua-se divisões sucessivas do número decimal por n enquanto o número for maior que n. O correspondente na base n será o número formado pelo último quociente e resto das divisões, da direita para a esquerda Prof. Mauro Microprocessadores II Sistemas de Numeração 31 das divisões, da direita para a esquerda Exemplo: Converter 1310 para base 2 Solução: 1310 = 11012 13 2 (1) 6 2 (0) 3 2 (1) (1)
  32. 32. Conversão de decimal para base n Obs.: caso n=16 (conversão da decimal p/ base 16), substituímos o quociente e cada resto pelo dígito literal hexadecimal correspondente (10=A, 11=B, etc.), quando necessário Prof. Mauro Microprocessadores II Sistemas de Numeração 32 quando necessário
  33. 33. Conversão de hexa para binário É feita de forma transparente, visto que a base 16 é potência da base 2 Cada dígito hexadecimal corresponde a quatro dígitos binários e vice-versa Substitui-se cada algarismo hexadecimal pelo seu correspondente binário Exemplo: Prof. Mauro Microprocessadores II Sistemas de Numeração 33 Exemplo: 0 3 C F 0000 0011 1100 1111
  34. 34. Tabela de conversão básica DECIMAL HEXA BINÁRIO 0 0 0000 1 1 0001 2 2 0010 3 3 0011 DECIMAL HEXA BINÁRIO 8 8 1000 9 9 1001 10 A 1010 11 B 1011 Prof. Mauro Microprocessadores II Sistemas de Numeração 34 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111
  35. 35. Outras codificações Prof. Mauro Microprocessadores II Sistemas de Numeração 35 Outras codificações
  36. 36. Codificação ASCII Dados não numéricos: letras, sinais ou algarismos usados em nomes de pessoa, rua, datas, códigos, etc. Tabela criada para representar os Prof. Mauro Microprocessadores II Sistemas de Numeração 36 Tabela criada para representar os caracteres do mundo real com códigos no computador e dispositivos (teclados, displays, etc)
  37. 37. Codificação ASCII ASCII é a sigla para “American Standard Code for Information Interchange” (código padrão americano para intercâmbio de informações) Prof. Mauro Microprocessadores II Sistemas de Numeração 37 Cada caractere (letras, números, símbolos, etc.) é representado por um código (1 byte) A tabela completa pode ser encontrada facilmente na internet
  38. 38. Codificação ASCII Caractere Decimal Hexa Binário Espaço 32 20 0010 0000 ( 33 21 0010 0001 + 34 22 0010 0011 $ 35 23 0010 0100 ... ... ... Caractere Decimal Hexa Binário A 65 41 0110 0001 B 66 42 0110 0010 C 67 43 0110 0011 D 68 44 0110 0100 E 69 45 0110 0101 Prof. Mauro Microprocessadores II Sistemas de Numeração 38 ... ... ... 0 48 30 0101 0000 1 49 31 0101 0001 2 50 32 0101 0010 3 51 33 0101 0011 4 52 34 0101 0100 5 53 35 0101 0101 ... ... ... E 69 45 0110 0101 F 70 46 0110 0110 G 71 47 0110 0111 H 72 48 0110 1000 ... ... ...
  39. 39. Codificação BCD Usado para representar números Binary-Coded Decimal (decimal codificado em binário) Usada em alguns displays LCD e outros dispositivos de saída Cada dígito decimal é representado pelo seu correspondente binário de quatro bits (nibble) : Prof. Mauro Microprocessadores II Sistemas de Numeração 39 correspondente binário de quatro bits (nibble) : Decimal BCD Decimal BCD 0 0000 5 0101 1 0001 6 0110 2 0010 7 0111 3 0011 8 1000 4 0100 9 1001
  40. 40. Codificação BCD Exemplo: representar 148 decimal em BCD 1=00012 4=01002 8=10002 148 (decimal) = 0001 0100 1000 (BCD) Prof. Mauro Microprocessadores II Sistemas de Numeração 40 8=10002 Como cada dígito em BCD tem 4 bytes e um byte tem 8 bits, para evitar desperdício, coloca-se dois BCDs em um byte (BCD comprimido)
  41. 41. Operações binárias Prof. Mauro Microprocessadores II Sistemas de Numeração 41 Operações binárias especiais
  42. 42. Operações binárias especiais São operações lógicas feitas com um byte ou palavra de dados com finalidades específicas: Zeramento seletivo de bits Setamento seletivo de bits Teste de bit Inversão seletiva de bits Prof. Mauro Microprocessadores II Sistemas de Numeração 42 Inversão seletiva de bits Deslocamento de bits Rotação de bits Normalmente são feitas usando operações lógicas ou instruções da linguagem máquina envolvendo um segundo operando chamado “máscara”
  43. 43. Revendo as operações lógicas básicas E (AND) 1 1 1 Qualquer outra 0 OU (OR) 0 0 0 Qualquer outra 1 Prof. Mauro Microprocessadores II Sistemas de Numeração 43 OU EXCLUSIVO (EOR) 0 1 1 1 0 1 Qualquer outra 0 NAO (NOT) 0 1 1 0
  44. 44. Zeramento seletivo É quando desejamos zerar (desligar) um ou mais bits em um byte ou palavra de dados, sem afetar os outros bits Executa-se uma operação AND do operando com um byte que só tem bit zero nas posições que desejamos zerar (máscara de zeramento) Prof. Mauro Microprocessadores II Sistemas de Numeração 44 um byte que só tem bit zero nas posições que desejamos zerar (máscara de zeramento) Exemplo: zerar os bits 2 e 4 do byte 10110101 and 11101011 10100001 Máscara
  45. 45. Setamento seletivo É quando desejamos setar (ligar) um ou mais bits em um byte ou palavra de dados sem afetar os outros bits Executa-se uma operação OU do operando com um byte que só tem bit um nas posições que desejamos setar (máscara de setamento) Prof. Mauro Microprocessadores II Sistemas de Numeração 45 um byte que só tem bit um nas posições que desejamos setar (máscara de setamento) Exemplo: ligar os bits 1 e 6 do byte 10110101 or 01000010 11110111 Máscara
  46. 46. Teste de bit É quando desejamos testar se um determinado bit de um byte ou palavra de dados está ligado Fazemos uma operação AND do operando com um byte que só tem bit um no bit que desejamos testar Resultado > 0 bit ligado Prof. Mauro Microprocessadores II Sistemas de Numeração 46 Resultado > 0 bit ligado Resultado = 0 bit desligado Exemplo: testar o bit 4 10110101 and 00010000 00010000 Resultado > 0 bit ligado Máscara
  47. 47. Inversão seletiva de bits É quando desejamos inverter um ou mais bits em um byte ou palavra de dados sem afetar os outros bits Executa-se uma operação OU EXCLUSIVO do operando com um byte que só tem bit um nas posições que desejamos inverter (máscara de Prof. Mauro Microprocessadores II Sistemas de Numeração 47 operando com um byte que só tem bit um nas posições que desejamos inverter (máscara de inversão) Exemplo: inverter os bits 1 e 2 do byte 10110101 eor 00000110 11110011 Máscara
  48. 48. Deslocamento de bits É a operação de deslocar todos os bits dentro do byte ou palavra de dados à direita ou à esquerda, sendo inserido um bit zero à esquerda ou direita, respectivamente Obs.: Prof. Mauro Microprocessadores II Sistemas de Numeração 48 Obs.: Deslocamento à direita é o mesmo que dividir o byte por 2 (descartando a parte fracionária) Deslocamento à esquerda é o mesmo que multiplicar o byte por 2, exceto quando o bit de maior ordem é um e é perdido (vai para o carry)
  49. 49. Deslocamento à direita Um zero é inserido à esquerda (bit 7) e os outros bits são deslocados para a direita O bit zero (resto da divisão) vai para o carry 0 0 0 0 1 0 1 10 carry Prof. Mauro Microprocessadores II Sistemas de Numeração 49 Resultado: 0 0 0 0 1 0 1 1 7 6 5 4 3 2 1 0 0 carry 0 0 0 0 0 1 0 1 7 6 5 4 3 2 1 0 carry=1 (11)10 (05)10 resto=1
  50. 50. Deslocamento à esquerda Um zero é inserido à direita (bit 0) e o resto é deslocado à esquerda O bit sete vai para o carry 0 0 0 0 1 0 1 1 0carry Prof. Mauro Microprocessadores II Sistemas de Numeração 50 Resultado: 0 0 0 0 1 0 1 1 7 6 5 4 3 2 1 0 0carry 0 0 0 1 0 1 1 0 7 6 5 4 3 2 1 0 carry=0 (11)10 (22)10
  51. 51. Rotação de bits É a operação de “rodar” os bits dentro do byte ou palavra de dados É executada com instrução específica para isso na linguagem de máquina Tipos de rotação de bits: Prof. Mauro Microprocessadores II Sistemas de Numeração 51 Tipos de rotação de bits: Rotação à direita Rotação à esquerda Existe a operação de rotação com o carry e sem o carry
  52. 52. Rotação de bits à direita O bit zero passa a ser o bit 7 e os outros são deslocados uma posição à direita 1 0 1 1 1 1 0 1 Prof. Mauro Microprocessadores II Sistemas de Numeração 52 Resultado: 1 0 1 1 1 1 0 1 7 6 5 4 3 2 1 0 1 1 0 1 1 1 1 0 7 6 5 4 3 2 1 0
  53. 53. Rotação de bits à esquerda O bit 7 passa a ser o bit zero e os outros são deslocados uma posição à esquerda 1 0 1 1 1 1 0 1 Prof. Mauro Microprocessadores II Sistemas de Numeração 53 Resultado: 1 0 1 1 1 1 0 1 7 6 5 4 3 2 1 0 0 1 1 1 1 0 1 1 7 6 5 4 3 2 1 0
  54. 54. Rotação de bits com o carry Nas rotações com o carry, o bit do carry incluído na rotação, como se fosse um nono bit do byte 1 0 1 1 1 1 0 1 À direita: Prof. Mauro Microprocessadores II Sistemas de Numeração 54 1 0 1 1 1 1 0 1 7 6 5 4 3 2 1 0 1 0 1 1 1 1 0 1 7 6 5 4 3 2 1 0 C C À direita: À esquerda:
  55. 55. Dúvidas ??? Prof. Mauro Microprocessadores II Sistemas de Numeração 55 Dúvidas ???
  56. 56. Exercícios O que é um sistema de numeração? O que é um nibble? Quantos números binários podemos representar com 4 dígitos? Prof. Mauro Microprocessadores II Sistemas de Numeração 56 representar com 4 dígitos? Quantos números hexadecimais podemos representar com 2 dígitos? O que é overflow? O que é carry?
  57. 57. Exercícios Efetuar as seguintes conversões de base: Número Base p/ base Res. a) 00110110 2 10 b) 10111111 2 16 c) 37 10 2 Prof. Mauro Microprocessadores II Sistemas de Numeração 57 c) 37 10 2 d) 444 10 16 e) F1 16 2 f) 300H 16 10 g) 82 10 BCD h) 121 10 BCD i) 11110011 BCD 10
  58. 58. Exercícios Efetue as seguintes operações, indicando se houve carry e overflow em cada uma: 101011 + 110010 110101 + 000111 Prof. Mauro Microprocessadores II Sistemas de Numeração 58 110101 + 000111 1010 – 0011 (normal e c/complemento de 2) Efetue a subtração 94 -12 usando soma c/ o complemento de 10 de 12
  59. 59. Exercícios Efetue as operações: Zeramento seletivo dos bits 5 e 7 do byte 10111011 Setamento seletivo dos bits 0 a 3 do byte 10010000 Prof. Mauro Microprocessadores II Sistemas de Numeração 59 10010000 Teste do bit 3 no byte 01011010 Inversão dos bits 4 a 7 do byte 01101101 Desloque o byte 00001011 três bits à esquerda Desloque o byte 10101101 quatro bits à direita

×