mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos...

67
MC404 ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM 1 - 1 Organização Básica de Computadores e Linguagem de Montagem MC404 – 1S2010 2010 Prof. Paulo Cesar Centoducatte Prof. Mario Lúcio Côrtes Prof. Ricardo Pannain MONTAGEM

Transcript of mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos...

Page 1: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

MC404

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE

MONTAGEM

1 - 1Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

2010

Prof. Paulo Cesar CentoducatteProf. Mario Lúcio Côrtes

Prof. Ricardo Pannain

MONTAGEM

Page 2: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

MC404

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

1 - 2Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

“Conceitos Básicos”

Page 3: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Programa do Curso e Conceitos BásicosSumário

• Porque um Curso de Linguagem de Montagem

• Conceitos Básicos– Processadores– Bits e Bytes– Litle Endian e Big Endian– Memória– Representação de números com e sem sinal

1 - 3Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

– Representação de números com e sem sinal– Conversão entre bases numéricas

Page 4: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Porque um Curso de 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

1 - 4Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

– 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 5: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Conceitos Básicos

1 - 5Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Conceitos Básicos

Page 6: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Processadores

• Máquinas para manipular informações

• Como representar as informações em um processador

– Associanto-as a uma grandeza física que possamos ger ar, manipular, armazenar, ler etc

1 - 6Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

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

• Máq. Analógicas X Máq. Digitais– Analógicas: Informação associada a uma grandeza cont inua– Digital: Informação associada a uma grandeza discret a

• Normalmente um pequeno conjunto de valores (ex. 2), da grandeza escolhida para representar a informação, distintos e facilmente controláveis e distinguíveis.

Page 7: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Processadores

• A informação é representada de forma digitalizada, ié representada como um número na base B, igual ao número de estado s distintos, usados na representação da informação.

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

– Ex. Para representar os valores de 0 a 1000, usa ndo base 2 são necessários 10 componentes digitais – são necessários

1 - 7Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

são necessários 10 componentes digitais – são necessários 1001 combinações diferentes dos estados dos compone ntes digitais

• OBS.: – Base: número de símbolos distintos usados para repr esentar a

informação (1, 2, 8, 10, 16 etc)– Símbolos normalmente usados:

• Base até 10: dígitos ou algarismos arábicos• Base maior que 10: acrescenta-se letras (de prefere ncia

maiúsculas), ex Hexadecimal: 0 1 2 3 4 5 6 7 8 9 A B C D E F

Page 8: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosBITs 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 = n bytes (depende do processador em questão) • Double word = 2 words• Nibble = 4 bits (útil para BCD)

• Posição dos bits:

1 - 8Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• Posição dos bits:

Para 1 byte: 7 6 5 4 3 2 1 0

Para 1 word (de 16 bits):

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

high byte | low byte

0 1 0 1 0 1 0 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Page 9: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosLitle Endian X Big Endian

Words são armazenados em bytes consecutivos, em memórias de largura de 8 bits.

Exemplo:

102510 = 00000000 00000000 00000100 000000012

1 - 9Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

102510 = 00000000 00000000 00000100 000000012

Representação RepresentaçãoEndereço Big-Endian (MOTOROLA) Little-Endian (INTEL)

00 00000000 0000000101 00000000 0000010002 00000100 0000000003 00000001 00000000

Page 10: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosMemó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

... ...

1 - 10Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

... ...

1048576 01001010

... ...

1765 01001101

... ...

4 01010000

3 11111111

2 11101001

1 11011010

0 01100100

Page 11: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosRepresentação binária de números não sinalizados

n-1

Qualquer número em qualquer base ���� N = ΣΣΣΣ di X basei

i=0a) 1 byte 001001112 = 0 X 27 + 0 X 26 + 1 X 25 + 0 X 24 + 0 X 23 + 1 X 22 + 1 X 21 + 1 X 20

= 0 + 0 + 32 + 0 + 0 + 4 + 2 + 1 = 3910

= 27

1 - 11Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

= 2716

b) 1 word01010111011011102 = 0 X 215 + 1 X 214 + ... + 1 X 22 + 1 X 21 + 0 X 20

= 2238210

= 576E16 (mais fácil de representar!)high byte = 0101 0111b = 57 16

low byte = 0110 1110b = 6E 16

Page 12: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosRepresentaçã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 ?

1 - 12Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• B = 1 - Unário - tem utilidade ?

• B = 2 - Binário

• B = 8 - Octal

• B = 10 - Decimal

• B =16 - Hexadecimal

Page 13: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosConversão entre bases numéricas

Tipo de conversão ProcedimentoDecimal ���� Binário Divisões sucessivas por 2 até

se obter zero no quociente. Leitura dos dígitos binários de baixo para cima.

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

1 - 13Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

próprio bit.Hexadecimal ���� Binário Expandir cada dígito hexa em quatro

dígitos binários segundo seu valor.Binário ���� Hexadecimal Compactar cada quatro dígitos binários e m

um único dígito hexa segundo seu valor.Decimal ���� Hexadecimal Divisões sucessivas por 16 até se obter

zero no quociente; 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 14: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosRepresentação binária de números sinalizados

• Representação com sinal e magnitude– O bit mais significativo é o sinal do número ���� se for 1 o número é

negativo se for 0 o número é positivo

Exemplo 1: 01110001 2

valor não sinalizado = 0 X 2 7 + 1 X 26 + 1 X 25 + 1 X 24 + 0 X 23 + 0 X 22 +

1 - 14Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

valor não sinalizado = 0 X 2 7 + 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= +113 10

Page 15: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos Básicos

Exemplo 2: 10110001 2

valor não sinalizado = 1 X 2 7 + 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)

1 - 15Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

= 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 = - 49 10

Page 16: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosExemplo 3: 70FF16 = 01110000111111112

valor não sinalizado = 0 X 2 15 + 1 X 214 + . .. + 1 X 22 + 1 X 21 + 1 X 20

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

1 - 16Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Exemplo 4: C77716 = 11000111011101112

valor não sinalizado = 1 X 2 15 + 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 17: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

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

• Complemento de 1

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

Conceitos Básicos

1 - 17Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

representação

• Complemento de 2

- X = 2n – X n é o número de bits utilizadosrepresentação

Page 18: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

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

• Sinal e Magnitude Complemento de 1 Complemento de 2000 = +0 000 = +0 000 = +0001 = +1 001 = +1 001 = +1010 = +2 010 = +2 010 = +2011 = +3 011 = +3 011 = +3100 = -0 100 = -3 100 = -4

Conceitos Básicos

1 - 18Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

100 = -0 100 = -3 100 = -4101 = -1 101 = -2 101 = -3110 = -2 110 = -1 110 = -2111 = -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.

Page 19: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

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

0000 0000 0000 0000 0000 0000 0000 00002 = 0100000 0000 0000 0000 0000 0000 0000 00012 = + 1100000 0000 0000 0000 0000 0000 0000 00102 = + 210...0111 1111 1111 1111 1111 1111 1111 11102 = + 2,147,483,646100111 1111 1111 1111 1111 1111 1111 11112 = + 2,147,483,64710

maxint

Conceitos Básicos

1 - 19Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

0111 1111 1111 1111 1111 1111 1111 11112 = + 2,147,483,647101000 0000 0000 0000 0000 0000 0000 00002 = – 2,147,483,648101000 0000 0000 0000 0000 0000 0000 00012 = – 2,147,483,647101000 0000 0000 0000 0000 0000 0000 00102 = – 2,147,483,64610...1111 1111 1111 1111 1111 1111 1111 11012 = – 3101111 1111 1111 1111 1111 1111 1111 11102 = – 2101111 1111 1111 1111 1111 1111 1111 11112 = – 110

minint

Page 20: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

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)

Conceitos Básicos

1 - 20Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Partindo-se da representação do 5 10 = 001012 ����(invertendo os bits) =

11010 ���� (somando 1) = 11011 2 = - 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 -5 10 = 110112 ����(invertendo os bits) =

001002 ���� (somando 1) = 00101 2 = +5 em Complemento de 2

Page 21: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

• 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):

Conceitos Básicos

1 - 21Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Exemplo:

0010 ���� 0000 0010

1010 ���� 1111 1010

Page 22: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

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)

Conceitos Básicos

1 - 22Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• 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

0111 (=+7)

+ 1010 (=-6)

1| 0001 (=1)

Page 23: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOverflow

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

Exemplo:

• Quando na operação abaixo ocorre e quando não

1 - 23Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

ocorre overflow ???

0111 (7) ou (+7)

+ 0001 (1) ou (+1)

1000

Page 24: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

• Não existe overflow quando adicionamos um número po sitivo 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 negativ o

Detecção de Overflow

Conceitos Básicos

1 - 24Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

– Somando dois números positivos dá um número negativ o– Somando dois números negativos dá um número positiv o– Subtrai um número negativo de um positivo e dá nega tivo– Subtrai um número positivo de um negativo e dá posi tivo

Exercício• Considere as operaçôes A + B e A – B

– Pode ocorrer overflow se B = 0 ?– Pode ocorrer overflow se A = 0 ?

Page 25: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos Básicos

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

1 0 1 0X 1 0 1______1 0 1 0

1 - 25Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

1 0 1 00 0 0 0

1 0 1 0______________

1 1 0 0 1 0

Page 26: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos Básicos

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

1 1 0 0 1 0 1 0 1- 1 0 1 1 0 1 0

____

1 - 26Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

____0 0 1 0 1

- 1 0 1________

0 0 0 0

Page 27: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosRepresentação de Caracteres Alfanuméricos

• Tabela ASCII (American Standard Code Interchange Information)

Exemplo:

64 @ 96 ´

65 A 97 a

48 0

49 1

1 - 27Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

65 A 97 a

66 B 98 b

67 C 99 c

68 D 100 d

69 E 101 e

70 F 102 f

71 G 103 g

72 H 104 h

73 I 105 i

49 1

50 2

51 3

52 4

53 5

54 6

55 7

56 8

57 9

Page 28: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosLinguagem de programação

• 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)

1 - 28Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

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

Page 29: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosExecução de um programa

• Um programa escrito em linguagem de alto nível, par a ser executado ele deve:

– Ser traduzido para linguagem de máquina (compiladores, montadores, ligadores);

1 - 29Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

(compiladores, montadores, ligadores);

– Ter seus endereços realocados, conforme posição onde será carregado na memória (loaders);

– Ser alocado em um região da memória (loaders).

Page 30: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosProcesso de tradução de um programa em linguagem de alto nível

PROGRAMA LING. ALTO NÍVEL

COMPILADOR

PROGRAMA LING. INTERMEDIÁRIA

(LING. ASSEMBLY)

1 - 30Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

(LING. ASSEMBLY)

MONTADOR (ASSEMBLER)

PROGRAMA LING. OBJETO (BINÁRIO)

LIGADOR - LINKER

BIBLIOTECA DE FUNÇÕES DA LINGUAGEM

PROGRAMA LING. EXECUTÁVEL

(BINÁRIO)

Page 31: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganização Básica de um Computador Digital

Memória Principal

Bus de controle

Bus de endereço

Bus de dados

1 - 31Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Unidade deE/S

controleREM RDM

UNIDADEDE

CONTROLE

PC

RI

SP

ULA

. . .Para todos o elementos internos da

CPUCPU

RegistradoresPropósito

Geral

Page 32: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganizaçã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;

1 - 32Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

– 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.

Page 33: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganização Básica de um Computador Digital

• Unidade Central de Processamento – CPU

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

1 - 33Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• 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 (instr uções).

Page 34: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganização Básica de um Computador Digital

• 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 p ilha;

1 - 34Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

– 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)

Page 35: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Principais Componentes de um Sistema ComputacionalSumário

• Memórias

• CPUS

• Unidades de I/O (periféricos de entrada e saída)

1 - 35Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Page 36: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Memórias: Dispositivo capaz de armazenar informação para posterior recuperação

• OBS. Conceito bastante antigo• Saco com pedrinhas ou sementes• Marcas em tijolos de argila• Escrita em papiros/papel

1 - 36Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• Escrita em papiros/papel• Marcas com “tintas” em cavernas• Etc

• Anológicas/Digitais• Contador de pontos em bilhar• Disco de vinil (som)• K7• CD• HD

Page 37: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Memórias Digitais (bits) implementadas como circuit os eletrônicos integrados - “CI’s de memória”

• Operações suportadas por uma memória:

• Entrada de dados: escrita (gravação, apagamento, programação) - write

1 - 37Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• Saída de dados: leitura – read

• Memória simples• Flip-Flop

• Escrita de “1” - set• Escrita de “0” – reset• Leitura – verificar se o FF está set ou reset

Page 38: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Memórias (reais)

• Podem ser vistas como grandes vetores de bits

• Capacidade• N bits• N/8 Bytes

1 - 38Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• Abreviações normalmente utilizadas para expressar a capacidade de uma memória:

• K (kilo) = 2 10 = 1024 ~ 1000 = 102

• M (mega) = 220 = 1.048.578 ~ 106

• G (giga) = 2 30 ~ 109

• T (tera) = = 2 40 ~ 1012

Page 39: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• OBS.: • Memórias normalmente utilizam 2 N devido ao espaço de

endereçamento das CPU’s

• HD’s tendem a utilizarem 10 N

• Quando falarmos em capacidade de memória usaremos 2 N

1 - 39Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• Quando falarmos em capacidade de memória usaremos 2 N

• Palavras de Memória (words)

• Números de bits transferidos em paralelo, em uma op eração (leitura ou escrita)

• Expresso em bits ou Bytes -- largura da palavra (wor d size)

Page 40: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Organização de uma Memória

• Profundidade x Largura

• Ex.: 64Kx8-bits = 64 KBytes

• Obs.: Memórias com mesma capacidade podem ter orga nizações

1 - 40Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• Obs.: Memórias com mesma capacidade podem ter orga nizações diferentes

• Ex.: capacidade 512 K bits = 64 KBytes• 64K x 8- bits• 32K x 16-bits

Page 41: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Memória n x m (n palavras com m bits)

1 - 41Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Page 42: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Uma operação (leitura ou escrita) em uma memória af eta uma e somente uma palavra e todos os bits da palavra são lidos ou escritos em paralelo.

1 - 42Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• Obs.: • Em memórias com m >= 8, como leitura e escritas são

mutuamente exclusivas, frequentemente posuem soment e um conjunto de linhas de dados bi-direcional.

Page 43: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Forma de especificar a palavra que será lida/escrit a

• O método mais comum (e único a ser visto neste curs o) : Endereçamento explicito

• Associa-se a cada palavra um número inteiro >= 0 qu e a especifica univocamente : conhecido como ENDEREÇO da palavra

1 - 43Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• Normalmente, para usar toda a capacidade de express ão dos bits de endereço, usualmente o número de palavras de uma me mória é uma potência de 2, ié n = 2 K

• O endereço de memória é um inteiro binário com K bi ts.

• Obs.: Outras formas de endereçamento, utilizadas em aplicações especiais incluem: endereçamento implicito (pilha e fila) e endereçamento por conteúdo.

Page 44: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• AVR ATMega88

• Memória de Dados de 1Kx8bits (1K Bytes)• 10 bits de endereço de dados

• 512 Bytes de EEPROM

1 - 44Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• 8K Bytes In-System Self-Programmable Flash

Page 45: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Mapa de Memória

• Espaço de Endereçamento• Alocação dos Endereços

• Obs.:• Posição da Palavra de Memória

1 - 45Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• Posição da Palavra de Memória • Conteúdo da Palavra de Memória

• Se um sistema computacional utiliza endereços com K bits para designar as palavras de memória de dados, dizemos qu e o espaço de endereçamento de dados deste sistema é de 2 k palavras• Obs.: Nem sempre todo o espaço de endereçamento de memória

está alocado. Pode haver buracos• Permite expanção da memória sem modificação do sist ema

Page 46: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Nível de Endereçamento

• Para memórias com palavras maiores que 1 Byte (ex. 16 bits ou 32 bits ), é possível usar endereçamento com diferente s granularidades

• 1 endereço por byte

1 - 46Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• 1 endereço por byte• 1 endereço por palavra• 1 endereço por cada ½ palavra• Etc

Page 47: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Memórias com palavras de 16 bits e endereçamento a Byte

1 - 47Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Page 48: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Memória

• Memórias com palavras de 16 bits e endereçamento a Byte

• Acesso alinhado

• Só é permitido acesso a palavras cujo endereço é mú ltiplo do tamanho da palavra em bytes

1 - 48Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

tamanho da palavra em bytes• Ex. 0 (bytes 0 e 1); 2 (bytes 2 e 3); 4 (bytes 4 e 5); 16 (bytes 16 e

17)

• Acesso desalinhado • É permitido acesso a palavras a partir de qualquer endereço

• Ex.: 0 (bytes 0 e 1); 1 (bytes 1 e 2);

Page 49: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganização Básica de um Computador Digital

• Unidade de Memória – Hierarquia de Memória: sistema de memória com objet ivo de

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

Custo de armazenamento por bit maior

1 - 49Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

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 menorCapacidade de armazenamento maior

Page 50: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganização Básica de um Computador Digital

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

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

– SRAM – RAM estática: seu conteúdo só se altera quand o 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 ree screver o seu conteúdo (refresh de memória) pois há diminuiçã o de cargas

1 - 50Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

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ár io, 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 us uário,

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

Page 51: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganização Básica de um Computador Digital

• Memórias (continuação)– Magnéticas

• Discos – Hard Disk – HDs• Opticos – CD-ROM, DVD, etc.• Fitas – cartchos, rolos, etc.Exemplo: memórias secundárias

1 - 51Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Platter

Track

Platters

Sectors

Tracks

Disco Magnético ����

pratos, lados, trilhas e setores

Page 52: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganização Básica de um Computador Digital

• Unidade de Entrada e Saída: responsável por gerenci ar a ligação entre CPU-Memória-barramentos e os periféricos.

– Interfaces – circuitos simples que apenas compatibil izam a comunicação (protocolo). O controle da transferênci a é feita pela CPU. Exemplo: interface serial RS232, interfac e paralela,

1 - 52Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

pela CPU. Exemplo: interface serial RS232, interfac e paralela, interface USB;

– Canais de E/S – circuitos que controlam e compatibil izam a comunicação. A CPU apenas inicia a transferência. E xemplo –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.

Page 53: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganização Básica de um Computador Digital

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

controle;

1 - 53Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

controle;

• Observação:Internamente à CPU, existe um barramento interno de dados que liga os registradoes com a ULA e a UC, e um barrame nto interno de controle que liga a UC a todos os elementos da C PU.

Page 54: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganização Básica de um Computador Digital

• Formato das Instruções

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

1 - 54Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

• Conjunto de Instruções

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

Page 55: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosExecução de uma instrução pela CPU

• Ciclos de execução de uma instrução:• Leitura da instrução da memória principal – Fetch da Instrução

REM PCRead (sinal de controle)PC PC atualizadoRDM [REM] (instrução lida)

– Decodificação da instruçãoRI RDM (instrução)

1 - 55Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

RI RDM (instrução)É feita a decodificação pela Unidade de Controle

– Busca dos operandos da instrução na memória – se hou verREM End. 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 aces sando um conteúdo de memória, cujo endereço está dentro dos colchetes.

Page 56: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosExecução de uma instrução pela CPU

• Ciclos de execução de uma instrução:• Leitura da instrução da memória principal – Fetch da Instrução

REM PCRead (sinal de controle)PC PC atualizadoRDM [REM] (instrução lida)

– Decodificação da instruçãoRI RDM (instrução)

1 - 56Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

RI RDM (instrução)É feita a decodificação pela Unidade de Controle

– Busca dos operandos da instrução no banco de regist radoresRead-Banco-Reg (sinal de controle)ULA Operandos lidos

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

– Escrita no Banco de Registradores

• Obs – Quando usamos [..], significa que estamos aces sando um conteúdo de memória, cujo endereço está dentro dos colchetes.

Page 57: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosOrganização Básica de um Computador Digital

Memória Principal

Bus de controle

Bus de endereço

Bus de dados

1 - 57Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Unidade deE/S

controleREM RDM

UNIDADEDE

CONTROLE

PC

RI

SP

ULA

. . .Para todos o elementos internos da

CPUCPU

RegistradoresPropósito

Geral

Page 58: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosESTUDO DE CASO - CPU HIPOTÉTICA

• Formatos das instruções da CPU HIPOTÉTICA:

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

4 bits 2 bits 2 bits

1 - 58Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Exemplo: MOV R0,R1 ; R0 R1

Opcode reg1 reg2

00 – R001 – R110 – R211 – R3

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

Page 59: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos BásicosESTUDO DE CASO - CPU HIPOTÉTICA

• Formatos das instruções da CPU HIPOTÉTICA:

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

Opcode reg1 00

4 bits 2 bits 2 bits

00 – R001 – R110 – R2

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

Palavra 1

1 - 59Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

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

10 – R211 – R3

que a instrução faz e com que operandos ela trabalha

operando - númeroPalavra 28 bits

imediato ou

endereço

Page 60: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

Conceitos Básicos

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

MOV Reg1,Reg2 0000 Reg1 Reg2 MOV Reg,imed 1000 Reg imedMOV Reg,[end] 1001 Reg [end]MOV [end],Reg 1010 [end] Reg

Instruções Aritméticas e LógicasADD Reg1,Reg2 0001 Reg1 Reg1 + Reg2ADD Reg,imed 1011 Reg Reg + imedSUB Reg1,Reg2 0010 Reg1 Reg1 - Reg2

1 - 60Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

SUB Reg1,Reg2 0010 Reg1 Reg1 - Reg2SUB Reg,imed 1100 Reg Reg – imedAND Reg1,Reg2 0011 Reg1 Reg1 e Reg2AND Reg,imed 1101 Reg Reg e imedOR Reg1,Reg2 0100 Reg1 Reg1 ou Reg2

Instruções de Manipulação de PilhaPUSH Reg 0101 SP-- , [SP] Reg POP Reg 0110 Reg[SP], SP++

Instruções de Controle de Fluxo de ExecuçãoJMP end 1110 PC endCALL end 1111 SP-- , [SP] PC , PCendRET --- 0111 PC[SP] , SP++

Page 61: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Exercícios

• Mostrar o ciclo de execução de instruções para toda s as instruções do ISA das CPUs Hipotéticas 1 e 2.

1 - 61Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Page 62: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ESTUDO DE CASO 2 - CPU HIPOTÉTICA

Memória Principal

Bus de controle

Bus de endereço

Bus de dados

1 - 62Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Unidade deE/S

controle

UNIDADEDE

CONTROLE

PC

RI

SP

ULA

Y . . .Para todos o elementos internos da

CPUZ

CPU

R0

R1

R2

R3

Page 63: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

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

MOV Reg1,Reg2 0000 Reg1 Reg2 MOV Reg,imed 1000 Reg imedMOV Reg,[end] 1001 Reg [end]MOV [end],Reg 1010 [end] Reg

Instruções Aritméticas e LógicasADD Reg1,Reg2 0001 Reg1 Reg1 + Reg2ADD Reg,imed 1011 Reg Reg + imedSUB Reg1,Reg2 0010 Reg1 Reg1 - Reg2

1 - 63Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

SUB Reg1,Reg2 0010 Reg1 Reg1 - Reg2SUB Reg,imed 1100 Reg Reg – imedAND Reg1,Reg2 0011 Reg1 Reg1 e Reg2AND Reg,imed 1101 Reg Reg e imedOR Reg1,Reg2 0100 Reg1 Reg1 ou Reg2

Instruções de Manipulação de PilhaPUSH Reg 0101 SP-- , [SP] Reg POP Reg 0110 Reg[SP], SP++

Instruções de Controle de Fluxo de ExecuçãoJMP end 1110 PC endCALL end 1111 SP-- , [SP] PC , PCendRET --- 0111 PC[SP] , SP++

Page 64: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

CPU HIPOTÉTICA 3

Memória PrincipalBus Controle

Bus de Endereços

Bus de Dados

1 - 64Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Reg

. Ins

tr.

PC

U.C.

A ULA

B

Banco

de Registra

dores

. . .CPURx

Page 65: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ESTUDO DE CASO - CPU HIPOTÉTICA 3 – Formato de Instru ções– Formato tipo R – Registrador – Formato I – Imediat o

Opcode reg1 num

3 bits 2 bits 3bits

00 – R001 – R1

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

Opcode reg1 reg2

3 bits 2 bits 2 bits 1 v ago

00 – R001 – R1

Código que diz o que a instrução faz e com que operandos ela

1 - 65Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

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

01 – R110 R211 – R3

e com que operandos ela trabalha

01 – R110 – R211 – R3

que operandos ela trabalha

Opcode num

3 bits 4 bits 1bit função

Código que diz o que a instrução faz e com que operandos ela trabalha

Opcode num

3 bits 4 bits

Código que diz o que a instrução faz e com que operandos ela trabalha

Page 66: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Conjunto de Instruções – CPU Hipotética 3Mnemônico Operandos Opcode Significado

Instrução especialMV Rx,reg 000 Rx Reg

Instruções de load e storeLW Reg,num 001 Reg [Rx + num]SW Reg,num 010 [Rx + num] RegInstruções Aritméticas e Lógicas

1 - 66Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010

Instruções Aritméticas e LógicasADD Reg1,Reg2 011 Reg1 Reg1 + Reg2SUB Reg1,Reg2 100 Reg1 Reg1 - Reg2AND Reg1,Reg2 101 Reg1 Reg1 e Reg2

Instruções de Controle de Fluxo de ExecuçãoJMP num 110 PC numJAL num 111 0 Rx PC , PC numRET --- 111 1 PCRx

Page 67: mc404 01 2s10 [Modo de Compatibilidade]pannain/mc404/material... · Programa do Curso e Conceitos Básicos Sumário • Porque um Curso de Linguagem de Montagem • Conceitos Básicos

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Exercícios

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

1 - 67Organização Básica de Computadores e Linguagem de MontagemMC404 – 1S2010