77
Organização Básica de computadores e linguagem de montagem 1 o Semestre de 2011 Prof. Edson Borin

Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

  • Upload
    vuquynh

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Organização Básica de computadores e linguagem de

montagem

1o Semestre de 2011

Prof. Edson Borin

Page 2: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Regras do Curso

Aulas na quarta-feira: CB03Aulas na sexta-feira: CC02/CC03 (Lab.) ou CC51 (Teóricas)

Página com informações sobre o programa da disciplina, horários de atendimento, etc...

http://www.ic.unicamp.br/~edson/mc404/2011-1s/

Page 3: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Regras do CursoCritérios de Avaliação:

2 Provas: P1 e P22 ou 3 trabalhos de laboratório: T1, T2, ...Média das provas:

MP = 0,3xP1 + 0,7xP2Média dos trabalhos:

MT = Média aritmética dos trabalhosMédia da Disciplina: MD

se MP >= 5,0 então MD = 0,5xMP + 0,5xMT,se MP < 5,0 então MD = 0,8xMP + 0,2xMT

Nota Final: NFse MD >= 5,0 então NF = MD, se MD < 5,0 então NF = (MD+Exame) / 2

Aviso aos trapaceiros: Cola implica em zero na disciplina.

Page 4: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Porque Aprender Linguagem de Montagem

•Permite compreender o funcionamento de uma CPU

Page 5: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Porque Aprender Linguagem de Montagem

•Permite compreender o funcionamento de uma CPU

•Utilizado na:•Programação de máquinas baseadas em micro-controladores.

Page 6: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Porque Aprender Linguagem de Montagem

•Permite compreender o funcionamento de uma CPU

•Utilizado na:•Programação de máquinas baseadas em micro-controladores.

•Programação de sistemas embarcados (embedded systems)

Page 7: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Porque Aprender Linguagem de Montagem

•Permite compreender o funcionamento de uma CPU

•Utilizado na:•Programação de máquinas baseadas em micro-controladores.

•Programação de sistemas embarcados (embedded systems)•Programaçao de trechos críticos (tempo e/ou memória)

Page 8: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Porque Aprender Linguagem de Montagem

•Permite compreender o funcionamento de uma CPU

•Utilizado na:•Programação de máquinas baseadas em micro-controladores.

•Programação de sistemas embarcados (embedded systems)•Programaçao de trechos críticos (tempo e/ou memória) •Acesso a recursos não disponíveis em alto nível

Page 9: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Porque Aprender Linguagem de Montagem

•Permite compreender o funcionamento de uma CPU

•Utilizado na:•Programação de máquinas baseadas em micro-controladores.

•Programação de sistemas embarcados (embedded systems)•Programaçao de trechos críticos (tempo e/ou memória) •Acesso a recursos não disponíveis em alto nível

•OBS.: A linguagem de montagem é absolutamente ligada ao hardware, depende de cada máquina específica (diferentemente das linguagens de alto nível)

Page 10: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos

Page 11: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Processadores

•Máquinas para manipular informações (ou dados)

ProcessadorDados deEntrada

Saída, ou dadosprocessados

Page 12: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Processadores

•Máquinas para manipular informações (ou dados)

ProcessadorDados deEntrada

Saída, ou dadosprocessados

Programa

Page 13: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Linguagens de Programação

•Máquinas para manipular informações (ou dados)

ProcessadorDados deEntrada

Saída, ou dadosprocessados

Programa fonte C/C++/JavaPascal/etc...

Linguagem de Montagem

Compilador (gcc, ...)

Montador (as, ...)

Linguagem de Máquina

Page 14: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Linguagens de Programação

Programa fonteLing. de alto nível (Java, ...)Laços, variáveis, objetos, ...Independente de máquina

Linguagem de Montagem

Linguagem de Máquina

Ling. de baixo nívelSequência de instruções, registradores, posições de memória, ...Dependente de máquina

Código binário (0s e 1s)

Page 15: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Representando Informações

•Como representar as informações em um processador?•Associando-as a uma grandeza física que possamos gerar, manipular, armazenar, ler, etc...

•Exemplos de grandezas: comprimento, posição angular, força, pressão, fluxo, tensão, corrente, etc...

Page 16: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Representando Informações

•Máq. Analógicas x Máq. Digitais•Analógicas: Informação associada a uma grandeza contínua•Digitais: Informação associada a uma grandeza discreta

•Máq. Digitais:•Normalmente um pequeno conjunto de faixa de valores (ex. 2 faixas), da grandeza escolhida para representar a informação, distintos e facilmente controláveis e dintinguíveis. Ex: Faixas de tensão.

•A informação é representada por números, na forma digitalizada, isto é, representada por dígitos: Ex: 10, 1001, 145, 80EA2, etc...

Page 17: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Representando Informações

•A quantidade de dígitos distintos define a base numérica:•Ex: Base 2 => 2 dígitos distintos (0 e 1)

•Utiliza-se tantos componentes digitais quantos necessários para representar a informação desejada.

•Ex:Para representar os valores de 0 a 1000, usando base 2 são necessários 10 componentes digitais - são necessários 1001 combinações diferentes dos estados dos componentes digitais.

•Símbolos normalmente usados para representação dos números:

•Base até 10: algarismos arábicos (0 1 2 ... 9)•Base maior do que 10: acrescenta-se letras,

•Ex Hexadecimal (Base 16): 0 1 2 3 4 5 6 7 8 9 A B C D E F

Page 18: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: BITs e BYTEs

•Bit = BInary digiT = vale sempre 0 ou 1. Elemento básico de informação

Page 19: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: BITs e BYTEs

•Bit = BInary digiT = vale sempre 0 ou 1. Elemento básico de informação•Byte = 8 bits processados em paralelo (ao mesmo tempo)•Word (Palavra) = n bytes

•Tamanho da palavra depende do processador em questão. •Double word = 2 words•Nibble = 4 bits (útil para BCD)

Page 20: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: BITs e BYTEs

•Bit = BInary digiT = vale sempre 0 ou 1. Elemento básico de informação•Byte = 8 bits processados em paralelo (ao mesmo tempo)•Word (Palavra) = n bytes

•Tamanho da palavra depende do processador em questão. •Double word = 2 words•Nibble = 4 bits (útil para BCD)

•Posição dos bits:

0 1 0 1 1 0 1 015 14 13 12 11 10 9 8

0 1 0 1 1 0 1 07 6 5 4 3 2 1 0

0 1 0 1 1 0 1 07 6 5 4 3 2 1 0

1 word (de 16 bits)1 byte

high byte low byte

Page 21: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Representação de Números

•Representação binária de números não sinalizados

n-1 Qualquer número em qualquer base => N = Σ di x basei

i=0a) Base 10 (Decimal)

230910 = 2x103 + 3x102 + 0x101 + 9x100

= 2000 + 300 + 0 + 9

Page 22: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Representação de Números

•Representação binária de números não sinalizados

n-1 Qualquer número em qualquer base => N = Σ di x basei

i=0a) Base 10 (Decimal)

230910 = 2x103 + 3x102 + 0x101 + 9x100

= 2000 + 300 + 0 + 9

Exercício:

b) Base 2 (Binária)101001112 = ...

Page 23: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

•Representação binária de números não sinalizados

n-1 Qualquer número em qualquer base => N = Σ di x basei

i=0a) Base 10 (Decimal)

230910 = 2x103 + 3x102 + 0x101 + 9x100

= 2000 + 300 + 0 + 9

Exercício:

b) Base 2 (Binária)101001112 = 1x27 + 0x26 + 1x25 + 0x24 + 0x23 + 1x22 + 1x21 + 1x20

= 128 + 0 + 32 + 0 + 0 + 4 + 2 + 1 = 16710 (Solução)

Conceitos Básicos: Representação de Números

Page 24: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

•Representação binária de números não sinalizados

n-1 Qualquer número em qualquer base => N = Σ di x basei

i=0a) Base 10 (Decimal)

230910 = 2x103 + 3x102 + 0x101 + 9x100

= 2000 + 300 + 0 + 9

Exercício:

b) Base 2 (Binária)101001112 = 1x27 + 0x26 + 1x25 + 0x24 + 0x23 + 1x22 + 1x21 + 1x20

= 128 + 0 + 32 + 0 + 0 + 4 + 2 + 1 = 16710 (Solução)

MSB (Most significant bit): bit mais significativo.LSB (Least significant bit): bit menos significativo.

1 0 1 0 0 1 1 17 6 5 4 3 2 1 0

Conceitos Básicos: Representação de Números

MSB LSB

Page 25: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Representação de Números

•Representação binária de números não sinalizados

n-1 Qualquer número em qualquer base => N = Σ di x basei

i=0

Caso particulares de bases:

B = 1 - Unário - tem utilidade ? B = 2 - Binário B = 8 - Octal B = 10 - Decimal B = 16 - Hexadecimal

Dígitos hexadecimais: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, FNotação hexadecimal é uma forma compacta e prática para representar binários 01010111011011102 = 576E16

Page 26: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Representação de Números

•Conversão entre bases

Tipo de conversão Procedimento

Decimal => BinárioDivisões sucessivas por 2 até se obter zero no quociente. Leitura dos dígitos binários no resto de baixo para cima.

Binário => DecimalSoma de potências de 2 cujo expoente é a posição do bit e cujo coeficiente é o próprio bit.

Hexadecimal => BinárioExpandir cada dígito hexa em quatro dígitos binários segundo seu valor.

Binário => HexadecimalCompactar cada quatro dígitos binários em um único dígito hexa segundo seu valor.

Decimal => HexadecimalDivisões sucessivas por 16 até se obter zero no quociente. Converter restos p/ dígitos hexadecimais.Leitura dos dígitos de baixo para cima.

Hexadecimal => Decimal Soma de potências de 16 cujo expoente é a posição do dígito e cujo coeficiente é o valor do próprio dígito hexa.

Page 27: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

•Representação binária de números sinalizados

1) Representação com sinal e magnitudeO bit mais significativo (MSB) é o sinal do número. Se for 1 o número é negativo se for 0 o número é positivo.

Exemplo 1: 011100012

valor não sinalizado = 0 x 27 + 1 x 26 + 1 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 0 x 21 + 1 x 20

= 64 + 32 + 16 + 1 = 11310

valor sinalizado bit de sinal = 0 => " + " (positivo) = 1 x 26 + 1 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = = 64 + 32 + 16 + 1 = 11310, logo = +11310

Conceitos Básicos: Representação de Números

Page 28: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Exemplo 2: 101100012

valor não sinalizado = 1 x 27 + 0 x 26 + 1 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 128 + 32 + 16 + 1 = 17710

valor sinalizado bit de sinal = 1 => " - " (negativo) = 0 x 26 + 1 x 25 + 1 x 24 + 0 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 32 + 16 + 1 = 4910, logo = - 4910

Conceitos Básicos: Representação de Números

Page 29: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Representação de Números

•Exemplo 3:

70FF16 = 01110000111111112

valor não sinalizado: = 0 X 215 + 1 X 214 + . .. + 1 X 22 + 1 X 21 + 1 X 20

valor sinalizado: bit de sinal = 0 => " + " (positivo) = + (1 X 214 + . .. + 1 X 22 + 1 X 21 + 1 X 20)

Exemplo 4: C77716 = 11000111011101112

valor não sinalizado: = 1 X 215 + 1 X 214 + ... + 1 X 22 + 1 X 21 + 1 X 20

valor sinalizado: bit de sinal = 1 => " - " (negativo) = - (1 X 214 + ... + 1 X 22 + 1 X 21 + 1 X 20)

Page 30: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

•Representação binária de números sinalizados

2) Complemento de 1

- X = (2n - 1) – X n é o número de bits utilizados na representação

3) Complemento de 2

- X = (2n) – X n é o número de bits utilizados na representação

Conceitos Básicos: Representação de Números

Page 31: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

•Representações possíveis de números sinalizados

• Sinal e Magnitude Complemento de 1 Complemento de 2 000 = +0 000 = +0 000 = +0 001 = +1 001 = +1 001 = +1 010 = +2 010 = +2 010 = +2 011 = +3 011 = +3 011 = +3 100 = -0 100 = -3 100 = -4 101 = -1 101 = -2 101 = -3 110 = -2 110 = -1 110 = -2 111 = -3 111 = -0 111 = -1

•Representação em Complemento de 2 é utilizada pois temos apenas uma representação para o zero e podemos fazer a soma e subtração com apenas um circuito.

Conceitos Básicos: Representação de Números

Page 32: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Números sinalizados de 32 bits, em Complemento de 2:

0000 0000 0000 0000 0000 0000 0000 00002 = 010

0000 0000 0000 0000 0000 0000 0000 00012 = + 110

0000 0000 0000 0000 0000 0000 0000 00102 = + 210

...0111 1111 1111 1111 1111 1111 1111 11102 = + 2,147,483,64610

0111 1111 1111 1111 1111 1111 1111 11112 = + 2,147,483,64710

1000 0000 0000 0000 0000 0000 0000 00002 = – 2,147,483,64810

1000 0000 0000 0000 0000 0000 0000 00012 = – 2,147,483,64710

1000 0000 0000 0000 0000 0000 0000 00102 = – 2,147,483,64610

...1111 1111 1111 1111 1111 1111 1111 11012 = – 310

1111 1111 1111 1111 1111 1111 1111 11102 = – 210

1111 1111 1111 1111 1111 1111 1111 11112 = – 110

Conceitos Básicos: Representação de Números

maxint

minint

Page 33: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Representação em Complemento de 2 de um número:

• Partindo-se da representação do negativo do valor a ser achado, nega-se

este número (negar = inverter) e somar 1

Exemplo 1:

-5 em Complemento de 2 (usando-se 5 bits para a sua representação)

Partindo-se da representação do 510 = 001012 => (invertendo os bits) =

11010 => (somando 1) = 110112 = - 5 em Complemento de 2

Exemplo 2:

+5 em Complemento de 2 (usando-se 5 bits para a sua representação)

Partindo-se da representação do -510 = 110112 => (invertendo os bits) =

001002 => (somando 1) = 001012 = +5 em Complemento de 2

Conceitos Básicos: Representação de Números

Page 34: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Conversão de números com n bits em números com mais que n bits:

– copiar o bit mais significativo (bit de sinal) nos outros bits (extensão do

sinal):

Exemplo:

0010 => 0000 0010

1010 => 1111 1010

Conceitos Básicos: Representação de Números

Page 35: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Operações de soma e adição binárias

• Como aprenderam no primeiro grau: (vai-um/vem-um)

0111 (7) 0111 (7) 0110 (6) + 0110 (6) -0110 (6) -0101 (5)

1101 (13) 0001 (1) 0001 (1)

• Subtração em complemento de 2 é feito como se fosse uma soma • (A – B = A + (-B)):

– subtração usando adição de números negativos. Ex: 7 - 6 = 7 + (-6)

0111 (+7) + 1010 (-6)

0001 (=1)

Conceitos Básicos: Representação de Números

Page 36: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Overflow

• Overflow (resultado maior (menor) que a palavra do computador pode representar):

Exemplo: • Quando na operação abaixo ocorre e quando não ocorre overflow ???

0111 (7) ou (+7) + 0001 (1) ou (+1)

1000

Conceitos Básicos: Representação de Números

Page 37: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Detecção de Overflow

• Não existe overflow quando adicionamos um número positivo e um negativo• Não existe overflow quando os sinais dos números são os mesmos na

subtração• Ocorre overflow quando os valores afetam o sinal:

– Somando dois números positivos dá um número negativo– Somando dois números negativos dá um número positivo– Subtrai um número negativo de um positivo e dá negativo– Subtrai um número positivo de um negativo e dá positivo

Exercício: Compute o resultado das operações abaixo e verifique se houve overflow

• 4 + 5 em uma representação com números sinalizados de 8 bits• 4 + 5 em uma representação com números sinalizados de 4 bits

Conceitos Básicos: Representação de Números

Page 38: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Aula 2

Page 39: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Multiplicação Binária• Exemplo:1010 x 101

Conceitos Básicos: Representação de Números

Page 40: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Multiplicação Binária• Exemplo:1010 x 101

Solução: 1 0 1 0 x 1 0 1 1 0 1 0 0 0 0 0 1 0 1 0 1 1 0 0 1 0

Conceitos Básicos: Representação de Números

Page 41: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Divisão Binária• Exemplo:1 1 0 0 1 0 / 101

Conceitos Básicos: Representação de Números

Page 42: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Divisão Binária• Exemplo:1 1 0 0 1 0 / 101

Conceitos Básicos: Representação de Números

110010 101

1010-10100101

-1010000

Solução

Page 43: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Representação de Caracteres Alfanuméricos

• Padrão ASCII - American Standard Code for Information Interchange também conhecido como ISO 646-1973 (international) 7-bit code (128 different characters)

• Exemplo (Tabela ASCII)

Conceitos Básicos: Representação de Números

64 @65 A66 B67 C68 D69 E70 F71 G72 H73 I

48 049 150 251 352 453 554 655 756 857 9

96 ´97 a98 b99 c100 d101 e102 f103 g104 h105 i

Page 44: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Representação de Caracteres Alfanuméricos• ASCII - American Standard Code for Information Interchange (ISO 8859-1) 7-bit code (128 different characters) Números, pontuação e letras Alfabeto americano sem símbolos para á, é, í, ç...

Ainda é muito utilizado

•EBCDIC - Extended Binary-Coded-Decimal Interchange Code Formato proprietário da IBM 8-bit code Não é compatível com ASCII

•ISO Latin1 8-bit code ASCII aumentado, ou estendido (ASCII é compatível) Tem caracteres para linguagens européias, inclusive o português

•Unicode (16 bits)

Conceitos Básicos: Representação de Números

Page 45: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Memória

•Memória: local do computador (hardware) onde se armazenam temporária ou definitivamente dados (números, caracteres e instruções)•Posição de memória ou “endereço”: localidade física da memória onde se encontra o dado.

•Organização da memória:

Endereço Conteúdo... ...

4MB 10110101... ...

1048576 01001010... ...

1765 01001101... ...4 010100003 111111112 111010011 110110100 01100100

Page 46: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Endianness

•Words são representadas em bytes consecutivos na memória.•Endianness: define a organização das palavras (Words) na memória.

•Exemplo:102510 = 00000000 00000000 00000100 000000012

Representação RepresentaçãoEndereço Big-Endian (MOTOROLA) Little-Endian (INTEL) 00 00000000 00000001 01 00000000 00000100 02 00000100 00000000 03 00000001 00000000

Page 47: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Processo de tradução de umprograma em linguagem de alto nível

PROGRAMA LING. ALTO NÍVEL

COMPILADOR

PROGRAMA LING. INTERMEDIÁRIA

(LING. ASSEMBLY)

MONTADOR (ASSEMBLER)

PROGRAMA LING. OBJETO (BINÁRIO)

LIGADOR - LINKER

BIBLIOTECA DE FUNÇÕES DA LINGUAGEM

PROGRAMA LING. EXECUTÁVEL

(BINÁRIO)

Conceitos Básicos: Ling. de Programação

Page 48: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Linguagem de Alto Nível – próximo ao ser humano, escrita de forma textual.– Ex: if (a==b) a=b+c;

• Linguagem de Montagem (Assembly) – próximo à linguagem de máquina, escrita em códigos (mnemônicos)– Ex: ADD AX,BX;

• Linguagem de Máquina – linguagem que o computador consegue executar – códigos binários– Ex: 01010001

Conceitos Básicos: Ling. de Programação

Page 49: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Memória Principal

Unidade deE/S

Barramento de controle

Barramento de endereço

Barramento de dados

REM RDM

UNIDADEDE

CONTROLE

PC

RI

SP

ULA

. . .Para todos o elementos internos da

CPUCPU

RegistradoresPropósito

Geral

Conceitos Básicos: O ComputadorOrganização Básica de um Computador Digital

Page 50: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Organização Básica de um Computador Digital

• Unidade Central de Processamento – CPU:– Unidade de Controle – UC;– Unidade Lógica e Aritmética – ULA;– Registradores de Propósito Geral – GPR;– Registradores Específicos.

• Unidade de Memória hierarquia de memória:– Memória Principal;– Memória Secundária;

• Unidade de Entrada e Saída:– Interfaces;– Canais de E/S;– Processadores E/S.

• Barramentos:– Barramento de Endereços;– Barramento de Dados;– Barramento de Controle.

Conceitos Básicos: O Computador

Page 51: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Unidade Central de Processamento – CPU

– Responsável por todo o processamento (execução de programas) no sistema

• Unidade de Controle: circuito que gera os sinais de controle responsáveis pelo gerenciamento (controle) de todas as atividades do computador.

• Unidade Lógica e Aritmética – ULA: circuito responsável por efetuar todas as operações lógicas e aritméticas.

• Registradores de Propósito Geral – GPR: elementos de memória (circuitos) responsáveis por armazenar os dados que são utilizados durante a execução de um programa (instruções).

Conceitos Básicos: O Computador

Page 52: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Unidade Central de Processamento – CPU (cont.)

• Registradores Específicos:– Program Counter – PC: armazena o endereço da próxima instrução a

ser executada;

– Stack Pointer – SP: armazena o endereço do topo da pilha;

– Registrador de Instrução – RI: armazena a instrução que está sendo executada;

– Registrador de Dados de Memória – RDM: armazena os dados que vem da memória (lidos) ou que vão para a memória (escritos);

– Registrador de Endereços de memória – REM: armazena o endereço enviado para a memória, quando ocorrer um acesso à mesma (leitura ou escrita)

Conceitos Básicos: O Computador

Page 53: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Unidade de Memória – Hierarquia de Memória: sistema de memória com objetivo de melhorar o

desempenho de um sistema computacional, diminuindo o tempo de acesso médio

Regs. CPU

Memória Cache

MemóriaPrincipal

MemóriaSecundária

Custo de armazenamento por bit maiorTempo de acesso menorCapacidade de armazenamento menor

Custo de armazenamento por bit menorTempo de acesso maiorCapacidade de armazenamento maior

Conceitos Básicos: O Computador

Page 54: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Memórias– Semicondutoras: fabricadas com materiais semicondutores (silício) –

circuitos integrados.• RAM – Random Access Memory : memória de acesso aleatório, volátil.

– SRAM – RAM estática: seu conteúdo só se altera quando se escreve nela ou quando se desliga a tensão de alimentação. Exemplo – registradores da CPU, memória cache.

– DRAM – RAM dinâmica: periodicamente é necessário reescrever o seu conteúdo (refresh de memória) pois há diminuição de cargas elétricas. Exemplo – memória principal.

• ROM – Read Only Memory: memória somente de leitura, não volátil.– ROM: gravação feita pelo fabricante da memória, não apagável;– PROM – Programmable ROM: programação feita pelo usuário, não apagável;– EPROM – Erasable PROM: programação feita pelo usuário, apagável através de

luz ultra-violeta;– EEPROM – Electrical EPROM: programação feita pelo usuário, apagável

eletricamente;• Flash – memória semicondutora, não volátil e de escrita e leitura, apagável.

Conceitos Básicos: O Computador

Page 55: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Memórias (continuação)– Exemplo: memórias secundárias

• Magnéticas– Discos – Hard Disk – HDs– Fitas – cartuchos, rolos, etc.

• Ópticas – CD-ROM, DVD, etc.

Disco Magnético:pratos, lados, trilhas e setores

Conceitos Básicos: O Computador

Page 56: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Aula 3

Page 57: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Unidade de Entrada e Saída

– Responsável por gerenciar a ligação entre CPU-Memória-barramentos e os periféricos.

– Interfaces – circuitos simples que apenas compatibilizam a comunicação (protocolo). O controle da transferência é feita pela CPU. Exemplo: interface serial RS232, interface paralela, interface USB;

– Canais de E/S – circuitos que controlam e compatibilizam a comunicação. A CPU apenas inicia a transferência. Exemplo – Controlador de Acesso Direto à Memória (DMA – Direct Access Memory);

– Processadores de E/S – são CPUs dedicadas a fazer E/S de dados. Iniciam e controlam a comunicação.

Conceitos Básicos: O Computador

Page 58: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Barramentos: Conjunto de fios que fazem a ligação física entre as diversas unidades.– Barramento de Endereços: Por onde trafegam os endereços;– Barramento de Dados: Por onde trafegam os dados;– Barramento de Controle: por onde trafegam os sinais de controle;

• Observação: Internamente à CPU, existe um barramento interno de dados que liga os

registradoes com a ULA e a UC, e um barramento interno de controle que liga a UC a todos os elementos da CPU.

Conceitos Básicos: O Computador

Page 59: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Conjunto de Instruções

– Cada processador tem o seu conjunto de instruções de linguagem de máquina (ISA – Instruction Set Architecture). Este conjunto contém todas as instruções, em linguagem de máquina, que o processador pode executar.

• Formato das Instruções

– Tamanho (número de bits) e o significado de cada campo de bits de uma instrução de linguagem de máquina.

Conceitos Básicos: Execução de Instruções

Page 60: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Memória Principal

Unidade deE/S

Barramento de controle

Barramento de endereço

Barramento de dados

REM RDM

UNIDADEDE

CONTROLE

PC

RI

SP

ULA

. . .Para todos o elementos internos da

CPUCPU

RegistradoresPropósito

Geral

Organização Básica de um Computador Digital

Conceitos Básicos: Execução de Instruções

Page 61: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Execução de uma instrução de acesso à memória pela CPU• Ciclos de execução de uma instrução:

– Leitura da instrução da memória principal – Fetch da Instrução• REM←PC• Read (sinal de controle)• PC ← PC atualizado• RDM ← [REM] (instrução lida)

– Decodificação da instrução• RI ← RDM (instrução)• É feita a decodificação pela Unidade de Controle

– Busca dos operandos da instrução na memória – se houver• REM ← Endereço do Dado • Read (sinal de controle)• RDM ← [REM] (operando lido)

– Execução da instrução – depende da instrução

– Escrita no Banco de Registradores• Obs – Quando usamos [..], significa que estamos acessando um conteúdo de memória, cujo endereço está

dentro dos colchetes.

Conceitos Básicos: Execução de Instruções

Page 62: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Execução de uma instrução sem acesso à memória pela CPU• Ciclos de execução de uma instrução:

– Leitura da instrução da memória principal – Fetch da Instrução• REM←PC• Read (sinal de controle)• PC ← PC atualizado• RDM ← [REM] (instrução lida)

– Decodificação da instrução• RI ← RDM (instrução)• É feita a decodificação pela Unidade de Controle

– Busca dos operandos da instrução no banco de registradores• Read-Banco-Reg (sinal de controle)• ULA ← Operandos lidos

– Execução da instrução – depende da instrução

– Escrita no Banco de Registradores

Conceitos Básicos: Execução de Instruções

Page 63: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

ESTUDO DE CASO - CPU HIPOTÉTICA• Formatos das instruções da CPU HIPOTÉTICA:

– Formato tipo I – Uma palavra de 8 bits, com os seguintes campos:

00 – R001 – R110 – R211 – R3

Código que diz o que a instrução faz

Conceitos Básicos: Execução de Instruções

opcode reg1 reg2

4 bits 2 bits 2 bits

• Exemplo: MOV R0,R1 ; R0 ← R1

Page 64: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

ESTUDO DE CASO - CPU HIPOTÉTICA• Formatos das instruções da CPU HIPOTÉTICA:

– Formato tipo II – Duas palavras de 8 bits, com os seguintes campos:

00 – R001 – R110 – R211 – R3

Código que diz o que a instrução faz

Conceitos Básicos: Execução de Instruções

opcode reg1 00

4 bits 2 bits 2 bits

Palavra 1

operando - número

8 bits

Palavra 2

• Exemplos:MOV R0, 5 ; R0 ← 5MOV R0, [5] ; R0 ← [5]

Page 65: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Execução de Instruções

Mnemônico Operandos Opcode SignificadoInstruções de Movimentação de DadosInstruções de Movimentação de DadosInstruções de Movimentação de DadosInstruções de Movimentação de Dados

1 MOV Reg1,Reg2 0000 Reg1 ←Reg2 2 MOV Reg,imed 1000 Reg ← imed3 MOV Reg,[end] 1001 Reg ← [end]4 MOV [end],Reg 1010 [end] ← Reg

Instruções Aritméticas e LógicasInstruções Aritméticas e LógicasInstruções Aritméticas e LógicasInstruções Aritméticas e Lógicas

5 ADD Reg1,Reg2 0001 Reg1 ← Reg1 + Reg2

6 ADD Reg,imed 1011 Reg ← Reg + imed

7 SUB Reg1,Reg2 0010 Reg1 ← Reg1 - Reg2

8 SUB Reg,imed 1100 Reg ← Reg – imed

9 AND Reg1,Reg2 0011 Reg1 ← Reg1 e Reg2

10 AND Reg,imed 1101 Reg ← Reg e imed

11 OR Reg1,Reg2 0100 Reg1 ← Reg1 ou Reg2Instruções de Manipulação de PilhaInstruções de Manipulação de PilhaInstruções de Manipulação de PilhaInstruções de Manipulação de Pilha

12 PUSH Reg 0101 SP-- , [SP] ← Reg

13 POP Reg 0110 Reg←[SP], SP++Instruções de Controle de Fluxo de ExecuçãoInstruções de Controle de Fluxo de ExecuçãoInstruções de Controle de Fluxo de ExecuçãoInstruções de Controle de Fluxo de Execução

14 JMP end 1110 PC ← end

15 CALL end 1111 SP-- , [SP]←PC , PC←end

16 RET --- 0111 PC←[SP] , SP++

Page 66: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Exercícios

• Mostrar o ciclo de execução de instruções para todas as instruções do ISA da CPU Hipotética 1.

Conceitos Básicos: Execução de Instruções

Page 67: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

ESTUDO DE CASO - CPU HIPOTÉTICA 2

Memória Principal

Unidade deE/S

Bus de controle

Bus de endereço

Bus de dados

UNIDADEDE

CONTROLE

PC

RI

SP

ULA

Y . . .Para todos o elementos internos da

CPUZ

CPU

R0

R1

R2

R3

Conceitos Básicos: Execução de Instruções

Page 68: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Exercícios

• Mostrar o ciclo de execução de instruções para todas as instruções do ISA da CPU Hipotética 2.– O que difere da CPU hipotética 1?

Conceitos Básicos: Execução de Instruções

Page 69: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

CPU HIPOTÉTICA 3

Memória PrincipalR

eg. I

nstr.

PC

U.C.

ULA

Banco

de Registra

dores

. . .

Barramento deControle

Barramento de Endereços

Barramento de Dados

CPU

Rx

Conceitos Básicos: Execução de Instruções

A

B

Page 70: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

ESTUDO DE CASO - CPU HIPOTÉTICA 3 - Formato das instruções

00 – R001 – R110 – R211 – R3

Código que diz o que a instrução faz

Conceitos Básicos: Execução de Instruções

opcode reg1

3 bits 2 bits 2 bits

– Formato tipo S - subrotina– Formato tipo J – Jump

– Formato I – Imediato – Formato tipo R – Registrador

reg2

1 vago

opcode num

3 bits 5 bits

opcode num

3 bits 4 bits

1 bit função

00 – R001 – R110 – R211 – R3

Código que diz o que a instrução faz

opcode reg1

3 bits 2 bits 3 bits

num

Page 71: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Conceitos Básicos: Execução de Instruções

Mnemônico Operandos Opcode Significado

Instrução especialInstrução especialInstrução especialInstrução especial

1 MV Rx, reg 000 Rx ← Reg

Instruções de Acesso à MemóriaInstruções de Acesso à MemóriaInstruções de Acesso à MemóriaInstruções de Acesso à Memória

2 LW Reg, num 001 Reg ← [Rx + num]

3 SW Reg, num 010 [Rx + num] ← Reg

Instruções Aritméticas e LógicasInstruções Aritméticas e LógicasInstruções Aritméticas e LógicasInstruções Aritméticas e Lógicas

4 ADD Reg1,Reg2 011 Reg1 ← Reg1 + Reg2

5 SUB Reg1,Reg2 100 Reg1 ← Reg1 - Reg2

6 AND Reg1,Reg2 101 Reg1 ← Reg1 e Reg2

Instruções de Controle de Fluxo de ExecuçãoInstruções de Controle de Fluxo de ExecuçãoInstruções de Controle de Fluxo de ExecuçãoInstruções de Controle de Fluxo de Execução

7 JMP num 110 PC ← num

8 JAL num 111 0 Rx ← PC; PC ← num

9 RET - 111 1 PC ← Rx

ESTUDO DE CASO - CPU HIPOTÉTICA 3 - Conjunto de instruções

Page 72: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Exercícios

• Associar cada instrução a um formato apropriado• Mostrar o ciclo de execução de instruções para todas as instruções do ISA

da CPU Hipotética 3.• Representar o seguinte programa em linguagem de máquina

– MV R1, 0 – MV Rx, R1– LW R1, 0– MV R2, 1h– ADD R1, R2– SW R1, 0

Conceitos Básicos: Execução de Instruções

Page 73: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Arquiteturas Harvard versus Von Neuman

– Arquitetura Harvard:• Computador: “Harvard Mark 1” - 1944

– Memórias separadas para armazenar dados e código (Instruções)

– Acesso à memória para busca da próxima instrução e para execução da instrução atual pode ser feito simultaneamente.

• Dados e Instruções são armazenados em espaços de endereçamentos diferentes.

– Arquitetura Von Neuman: Programa é armazenado na mesma memória que os dados.• Dado pode ser visto como código e código pode ser visto como dado.

– Código pode ser manipulado pela própria máquina. Ex:

• Carregar um programa do disco para a própria memória (dado) e depois executá-lo (código).

• Geração de código dinâmica e código auto-modificável.

Conceitos Básicos: Harvard x Von Neuman

Page 74: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

Aula 4

Page 75: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Arquiteturas Harvard modificadas

– Combinas características das arquiteturas Harvard e Von Neuman.

• A maioria dos processadores modernos utiliza caches distintas para armazenamento de dados e de código (x86, Sparc, PowerPC, MIPS, ...)

• Sob a perspectiva da CPU, dados e código são armazenados em dispositivos diferentes: cache de instruções (I$) e cache de dados (D$).

• Entretanto, sob a perspectiva do usuário (programador) tanto código quanto dados são armazenados na mesma memória (RAM). Os programados não precisam estar cientes da presença de caches na hierarquia de memória.

Conceitos Básicos: Harvard x Von Neuman

Page 76: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• Arquiteturas Harvard x Von Neuman x Harvard Modificadas

– Arquiteturas atuais não possuem uma distinção tão clara:

• Microcontroladores PIC17, PIC18 e o Atmel 8-bit AVR são considerados arquiteturas Harvard pois armazenam dado e código em espaços de endereçamento distintos (endereço 0 de dados aponta para uma posição de memória distinta do endereço 0 de código).

• A maioria dos processadores modernos (x86, PowerPC, MIPS, ARM9, ...) são considerados arquiteturas Harvard Modernas pois armazenam dados e memória no mesmo espaço de endereçamento (e dispositivo físico -- RAM) mas sob o aspecto da CPU existem dois dispositivos distintos para armazenar instruções e dados: a cache de instruções e a cache de dados.

• O microcontrolador ARM7TDMI é considerado uma arquitetura Von Neuman pois armazena tanto dado quanto instruções na mesma memória e não possui vias distintas para acesso a dados e à código.

Conceitos Básicos: Harvard x Von Neuman

Page 77: Organização Básica de computadores e linguagem de montagemedson/disciplinas/mc404/2011-1s/slides/mc404_1... · •Programação de sistemas embarcados (embedded systems) Porque

• CISC: Complex Instruction Set Computer– Exemplos: System/360, PDP-11, VAX, Motorola 68k, and x86. – Instruções complexas: Uma instrução pode executar diversas operações (Ex:

carregar dado da memória, realizar uma operação aritmética e armazenar o dado de volta na memória)• Programas mais compactos e menos acessos à memória para busca de

instruções.– Tentativa de gerar um conjunto de instruções mais próximos às linguagens de

programação de alto nível. (Ex: instrução para controle de laço).– Complexidade do conjunto de instruções pode tornar o projeto do processador

um desafio à parte.

• RISC: Reduced Instruction Set Computer– Exemplos: MIPS, Sparc, ...– Instruções simples: Cada instrução faz uma operação simples.– Compiladores permitem o mapeamento automático (e eficiente) de ling. de alto

nível para instruções simples.– Simplicidade do conjunto de instruções permite focar no desempenho (execução

em pipeline, super-escalar, etc...)

Conceitos Básicos: RISC x CISC