32
Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Te´oricas Vers˜ ao 4.0 - Portuguˆ es Aula N o 03: ıtulo: Operandos Sum´ ario: Pilha. Instru¸ oes de acesso ` a mem´ oria. Codifica¸ ao das in- stru¸c˜ oes. 2014/2015 [email protected]

Arquitectura de Computadores (ACom) · Na aula anterior... Tipos de computadores Arquitectura ba sica de um computador N veis de abstracca ~o Co digo ma quina vs linguagem Assembly

Embed Size (px)

Citation preview

Arquitectura de Computadores(ACom)

MEAer

Acetatos das Aulas Teoricas

Versao 4.0 - Portugues

Aula No 03:

Tıtulo: Operandos

Sumario: Pilha. Instrucoes de acesso a memoria. Codificacao das in-strucoes.

2014/2015

[email protected]

Operandos

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 1 / 30

Arquitectura de Computadores(ACom)

Aula Anterior

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 2 / 30

Na aula anterior...

� Tipos de computadores� Arquitectura basica de um computador� Nıveis de abstraccao� Codigo maquina vs linguagem Assembly� Instrucoes Assembly

Road Map

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 3 / 30

Planeamento

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 4 / 30

� PlaneamentoSemana Teórica 1 Teórica 2 Problemas (P) / Laboratório (L)

16-fev a 20-fevCARNAVAL Apresentação da cadeira; Introdução P0: Revisões SD

23-fev a 27-fevL1: Modos de endereçamento

02-mar a 06-marOperações lógicas e aritméticas ISA do P3 P1: Assembly do P3

09-mar a 13-marL2: Instruções Aritméticas e Salto

16-mar a 20-marTécnicas de programação em Assembly Geração do código objecto. L3: Rotinas; Passagem parâmetros

23-mar a 27-marEstrutura de um processador Unidade de processamento

30-mar a 03-abrUnidade de controlo PÁSCOA PÁSCOA

06-abr a 10-abrPÁSCOA L4: IO; Interrupções

13-abr a 17-abrOrganização interna do P3: circuito de controlo Organização interna do P3: microprogramação P3: Micro-programação

20-abr a 24-abrL5: Micro-programação

27-abr a 01-maiDependências dados e de controlo; Conflitos L6: Arduino

04-mai a 08-maiSistema de memória Memórias cache: políticas de substituição L7: Pipelines

11-mai a 15-maiMemórias cache: políticas de escrita P4: Pipeline; Caches

18-mai a 22-maiMemória virtual: TLB L8: Caches

25-mai a 29-maiModos de transferência de dados DMA e Processadores IO P5: Mem. Virtual; Comunicação; IO.

Instruções Assembly; Operandos e modos de endereçamento; Processador P3

Operandos; Pilha; Instruções de acesso à memória; Codificação das instruções.

Periféricos do P3; Interrupções e contagemdotempo no P3

Tradução de linguagemde alto nível paraAssembly

P2: Interrupções; Codificação de Instruções

Controlo microprogramado; Organização interna do P3: circuito de dados

Família Intel x86; Arquitecturas de processadores em pipeline

Arquitecturas de processadores em pipeline; Dependências

Tópicos avançados de arquitectura de computadores

Memória virtual: definições, tabela de páginas hierárquica

Espaços de endereçamento: memória e entradas/saídas

Sumario

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 5 / 30

Hoje:

� Pilha� Instrucoes de acesso a memoria� Codificacao das instrucoes

Bibliografia:

• Seccoes 10.3 e 10.4

Pilha

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 6 / 30

Pilha

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 7 / 30

� Pilha (Stack): conjunto contıguo de posicoes de memoria cujoacesso e gerido por um registo especial: SP (Stack-Pointer).

◮ Apenas e possıvel aceder ao topo deste conjunto de posicoes:

• Colocar um valor (Push);• Retirar um valor (Pop);

� O registo SP aponta para o topo da pilha.

Pilha

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 8 / 30

� O registo SP aponta para o topo da pilha.

◮ Quando um novo valor e guardado na pilha (Push), ovalor do registo SP e incrementado;

◮ Quando um valor e retirado da pilha (Pop), o valor doregisto SP e decrementado.

FF00h

FF01h

FF02h

FF03h

PUSH R1 POP R3

00AAh

00BBh

00CCh

0055h

00CCh

00BBh

00AAh

FF02h FF03h FF02h

00AAh

00BBh

00CCh

SP SP SP

Pilha

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 9 / 30

� Para que serve a pilha?

◮ Espaco de armazenamento temporario;◮ Passagem de parametros para sub-rotinas (veremos depois).

Pilha

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 9 / 30

� Para que serve a pilha?

◮ Espaco de armazenamento temporario;◮ Passagem de parametros para sub-rotinas (veremos depois).

� Restricoes:

◮ Deve utilizar uma zona de memoria que nao sejautilizada por mais nenhum programa/sub-rotina;Como? → Definicao conveniente do valor inicial doregisto SP (definindo assim a base da pilha).

FF00h

FF01h

FF02h

FF03h

PUSH R1 POP R3

00AAh

00BBh

00CCh

0055h

00CCh

00BBh

00AAh

FF02h FF03h FF02h

00AAh

00BBh

00CCh

SP SP SP

Implementacao da Pilha

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 10 / 30

� Existem varias formas de implementar a pilha, dependendoda arquitectura do processador adoptada;

Implementacao da Pilha

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 10 / 30

� Existem varias formas de implementar a pilha, dependendoda arquitectura do processador adoptada;

� Direccao de crescimento da pilha:

◮ PUSH: incrementa o SP◮ POP: decrementa o SP

ou ...◮ PUSH: decrementa o SP [P3]◮ POP: incrementa o SP [P3]

Implementacao da Pilha

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 10 / 30

� Existem varias formas de implementar a pilha, dependendoda arquitectura do processador adoptada;

� Direccao de crescimento da pilha:

◮ PUSH: incrementa o SP◮ POP: decrementa o SP

ou ...◮ PUSH: decrementa o SP [P3]◮ POP: incrementa o SP [P3]

� Actualizacao do registo SP:

◮ Antes da execucao do PUSH◮ Aponta para a ultima posicao do stack

ou ...◮ Apos a execucao do PUSH [P3]◮ Aponta para a proxima posicao livre [P3]

Instrucoes de Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 11 / 30

Tipos de Instrucoes Assembly (revisoes)

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 12 / 30

� Transferencia de Dados

◮ Transferem informacao de um local (registo, posicao dememoria ou porto de entrada/saıda) para outro, sem alterar ainformacao original.

• Exemplo: MOV R1,M[0040h]

� Manipulacao de Dados

◮ Aplicam um operador aritmetico ou logico ao(s) operando(s),especificado(s) pela sua localizacao, e guardam o resultado damesma.

• Exemplos: ADD R1,M[00B0h] ; SHL R3,2

� Controlo

◮ Permitem alterar a sequencia normal de instrucoes e definirqual a proxima instrucao a ser executada.

• Exemplo: JMP 00CCh

Campos de uma Instrucao Assembly (revisoes)

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 13 / 30

� Codigo de Operacao (Opcode):

◮ Especifica a instrucao a executar;

� Localizacao dos Operandos:

◮ Indicacao sobre onde (registo ou memoria) ir buscar osdados de entrada e guardar o resultado(modo de enderecamento);

� Especificacao dos Operandos:

◮ Indice do registo a usar ou endereco de memoria aaceder.

Localizacao dos Operandos (revisoes)

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 14 / 30

� Localizacao dos Operandos:

◮ Registos internos do processador:

• PC - Program Counter• SP - Stack Pointer• R0-R7 - Registos de uso geral (Rx)

◮ Constante (W), especificada na propria instrucao.◮ Posicao de memoria (M[W]).◮ Porto de entrada/saıda.

Definida pelo modo de enderecamento.

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, Idade R1 = ?

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, Idade R1 = 00A1h

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, Idade R1 = 00A1h

MOV R2, M[Idade] R2 = ?

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, Idade R1 = 00A1h

MOV R2, M[Idade] R2 = 23h

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, Nome R1 = ?

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, Nome R1 = 00A2h

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, Nome R1 = 00A2h

MOV R2, M[Nome] R2 = ?

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, Nome R1 = 00A2h

MOV R2, M[Nome] R2 = 41h = ’A’

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, R0

MOV R2, M[R1+Nome] R2 = ?

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, R0

MOV R2, M[R1+Nome] R2 = 41h = ’A’

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, R0

MOV R2, M[R1+Nome] R2 = 41h = ’A’

INC R1

MOV R2, M[R1+Nome] R2 = ?

Acesso a Memoria

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 15 / 30

� Exemplo:

Idade WORD 23h

Nome STR ’Antonio’

Numero WORD 321h

· · · 00AAh

Numero 0321h 00A9h

o 00A8h

i 00A7h

n 00A6h

o 00A5h

t 00A4h

n 00A3h

Nome A 00A2h

Idade 0023h 00A1h

· · · 00A0h

� Qual o resultado das seguintes instrucoes?

MOV R1, R0

MOV R2, M[R1+Nome] R2 = 41h = ’A’

INC R1

MOV R2, M[R1+Nome] R2 = 6Eh = ’n’

Modos de Enderecamento

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 16 / 30

Modo de enderecamento Operacao

Por registo op ← Rx

Indirecto por registo op ← M[Rx]

Imediato op ← W

Directo op ← M[W]

Indexado op ← M[Rx+W]

Relativo op ← M[PC+W]

Baseado op ← M[SP+W]

Indirecto op ← M[M[W]]

Duplamente indirecto por registo op ← M[M[Rx]]

Implıcito

ATENCAO: No P3, apenas um dos operandos pode estarlocalizado em memoria.

Codificacao das Instrucoes

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 17 / 30

Especificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 18 / 30

� Uma instrucao e definida por:

◮ Tipo de operacao (opcode);◮ Operandos;◮ Localizacao do resultado.

Especificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 18 / 30

� Uma instrucao e definida por:

◮ Tipo de operacao (opcode);◮ Operandos;◮ Localizacao do resultado.

� Pergunta: Quantos bits sao necessarios para codificar umainstrucao?

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 19 / 30

� Exemplo de um processador:

◮ 8 registos de 16 bits: R0 a R7◮ Memoria com 216 palavras de 16 bits◮ Portos de entrada/saıda mapeados em memoria

(memory-mapped IO)◮ 40 instrucoes

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 19 / 30

� Exemplo de um processador:

◮ 8 registos de 16 bits: R0 a R7◮ Memoria com 216 palavras de 16 bits◮ Portos de entrada/saıda mapeados em memoria

(memory-mapped IO)◮ 40 instrucoes

� Pergunta: Quantos bits sao necessarios para codificar umainstrucao?

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 19 / 30

� Exemplo de um processador:

◮ 8 registos de 16 bits: R0 a R7◮ Memoria com 216 palavras de 16 bits◮ Portos de entrada/saıda mapeados em memoria

(memory-mapped IO)◮ 40 instrucoes

� Pergunta: Quantos bits sao necessarios para codificar umainstrucao?

◮ Codigo da operacao: ⌈log2 40⌉ = 6 bits

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 19 / 30

� Exemplo de um processador:

◮ 8 registos de 16 bits: R0 a R7◮ Memoria com 216 palavras de 16 bits◮ Portos de entrada/saıda mapeados em memoria

(memory-mapped IO)◮ 40 instrucoes

� Pergunta: Quantos bits sao necessarios para codificar umainstrucao?

◮ Modo de enderecamento: 2 bits(os primeiros 4 modos da tabela...)

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 19 / 30

� Exemplo de um processador:

◮ 8 registos de 16 bits: R0 a R7◮ Memoria com 216 palavras de 16 bits◮ Portos de entrada/saıda mapeados em memoria

(memory-mapped IO)◮ 40 instrucoes

� Pergunta: Quantos bits sao necessarios para codificar umainstrucao?

◮ Identificacao do registo: log2 8 = 3 bits

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 19 / 30

� Exemplo de um processador:

◮ 8 registos de 16 bits: R0 a R7◮ Memoria com 216 palavras de 16 bits◮ Portos de entrada/saıda mapeados em memoria

(memory-mapped IO)◮ 40 instrucoes

� Pergunta: Quantos bits sao necessarios para codificar umainstrucao?

◮ Endereco: log2 216 = 16 bits

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 20 / 30

� Pergunta: Quantos bits sao necessarios para codificar umainstrucao?

◮ Codigo da operacao: ⌈log2 40⌉ = 6 bits◮ Modo de enderecamento: 2 bits◮ Identificacao do registo: log2 8 = 3 bits◮ Endereco: log2 2

16 = 16 bits

◮ TOTAL = 69 bits ≈ 5 palavras de 16 bits

Resultado Operando 1 Operando 2Codigo Modo Reg Ender Modo Reg Ender Modo Reg Ender

6 2 3 16 2 3 16 2 3 16

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 21 / 30

� Exemplo:

ADD R1, M[N1], M[N2]

ADD R1, R1, M[N3]

NEG M[N4], R1

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 21 / 30

� Exemplo:

ADD R1, M[N1], M[N2]

ADD R1, R1, M[N3]

NEG M[N4], R1

TOTAL: 15 palavras para codificar 3 instrucoes!

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 21 / 30

� Exemplo:

ADD R1, M[N1], M[N2]

ADD R1, R1, M[N3]

NEG M[N4], R1

TOTAL: 15 palavras para codificar 3 instrucoes!

� Problemas:

◮ Programas (ling. maquina) ocupam mais memoria;◮ Programas mais lentos.

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 21 / 30

� Exemplo:

ADD R1, M[N1], M[N2]

ADD R1, R1, M[N3]

NEG M[N4], R1

TOTAL: 15 palavras para codificar 3 instrucoes!

� Problemas:

◮ Programas (ling. maquina) ocupam mais memoria;◮ Programas mais lentos.

� Compensa a flexibilidade?

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 22 / 30

� Alternativa?

◮ Restringir o no de operandos e os modos deenderecamento;

◮ Permitir a existencia de instrucoes com modos deenderecamento mais limitados.

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 22 / 30

� Alternativa?

◮ Restringir o no de operandos e os modos deenderecamento;

◮ Permitir a existencia de instrucoes com modos deenderecamento mais limitados.

� Solucao mais comum:

◮ Obrigar a que o resultado da operacao seja guardado namesma localizacao do primeiro operando [P3]

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 22 / 30

� Alternativa?

◮ Restringir o no de operandos e os modos deenderecamento;

◮ Permitir a existencia de instrucoes com modos deenderecamento mais limitados.

� Solucao mais comum:

◮ Obrigar a que o resultado da operacao seja guardado namesma localizacao do primeiro operando [P3]

◮ Obrigar a que pelo menos um dos operandos esteja emregisto [P3]

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 22 / 30

� Alternativa?

◮ Restringir o no de operandos e os modos deenderecamento;

◮ Permitir a existencia de instrucoes com modos deenderecamento mais limitados.

� Solucao mais comum:

◮ Obrigar a que o resultado da operacao seja guardado namesma localizacao do primeiro operando [P3]

◮ Obrigar a que pelo menos um dos operandos esteja emregisto [P3]

Codigo Direccao Modo Reg Reg Ender

6 1 2 3 3 16

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 23 / 30

Codigo Direccao Modo Reg Reg Ender

6 1 2 3 3 16

� Bit de direccao: indica se o modo de enderecamentosem restricoes e aplicado ao primeiro ou ao segundooperandoExemplos:

◮ ADD R2, M[R1+N1] Direccao=0◮ ADD M[R1+N1], R2 Direccao=1

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 23 / 30

Codigo Direccao Modo Reg Reg Ender

6 1 2 3 3 16

� Bit de direccao: indica se o modo de enderecamentosem restricoes e aplicado ao primeiro ou ao segundooperandoExemplos:

◮ ADD R2, M[R1+N1] Direccao=0◮ ADD M[R1+N1], R2 Direccao=1

� Cada instrucao ocupa 2 palavras de 16 bits

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 23 / 30

Codigo Direccao Modo Reg Reg Ender

6 1 2 3 3 16

� Bit de direccao: indica se o modo de enderecamentosem restricoes e aplicado ao primeiro ou ao segundooperandoExemplos:

◮ ADD R2, M[R1+N1] Direccao=0◮ ADD M[R1+N1], R2 Direccao=1

� Cada instrucao ocupa 2 palavras de 16 bits� Nao e possıvel representar uma instrucao do tipo:

◮ ADD R1, M[N1], M[N2]

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 24 / 30

� Exemplo:

MOV R1, M[N1]

ADD R1, M[N2]

ADD R1, M[N3]

NEG R1

MOV M[N4], R1

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 24 / 30

� Exemplo:

MOV R1, M[N1]

ADD R1, M[N2]

ADD R1, M[N3]

NEG R1

MOV M[N4], R1

Apenas 10 palavras de 16 bits para codificar 5 instrucoes

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 24 / 30

� Exemplo:

MOV R1, M[N1]

ADD R1, M[N2]

ADD R1, M[N3]

NEG R1

MOV M[N4], R1

Apenas 10 palavras de 16 bits para codificar 5 instrucoes

� Na pratica... usam-se mais do que um formato para codificarinstrucoes: [P3]

◮ 1 palavra, quando todos os operandos estao em registos◮ 2 palavras, quando e necessario especificar uma

constante (ex: modos de enderecamento imediato ouindexado).

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 25 / 30

� Exemplo:

MOV R1, M[N1]

ADD R1, M[N2]

ADD R1, M[N3]

NEG R1

MOV M[N4], R1

Agora: 9 palavras de 16 bits para codificar 5 instrucoes

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 26 / 30

� Processadores do tipo Load/Store

◮ Todas as operacoes logicas e aritmeticas sao realizadas entreregistos;

◮ Excepcao - duas unicas instrucoes que acedem a memoria:

• Load

• Store

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 26 / 30

� Processadores do tipo Load/Store

◮ Todas as operacoes logicas e aritmeticas sao realizadas entreregistos;

◮ Excepcao - duas unicas instrucoes que acedem a memoria:

• Load

• Store

Exemplos de codificacao:

◮ Operacao aritmetica (ex: ADD R1, R2, R3):

Codigo Reg Reg Reg

6 3 3 3

◮ Operacao de acesso a memoria (ex: LOAD R1, M[Lista]):

Codigo Reg Ender

6 3 16

Codificacao de uma Instrucao

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 27 / 30

� Processadores do tipo Load/Store

◮ Vantagens:

• Mais eficientes;

◮ Desvantagens:

• Torna-se necessario carregar todos os operandos emregistos antes da realizacao da operacao.

LOAD R1, M[N1]

LOAD R2, M[N2]

LOAD R3, M[N3]

ADD R4, R1, R2

ADD R4, R4, R3

NEG R4, R4

STORE M[N4], R4

11 palavras para codificar 7 instrucoes

Proxima Aula

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 28 / 30

Proxima Aula

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 29 / 30

� Codigos de representacao� Representacao de valores inteiros� Representacao de valores fraccionarios

◮ Vırgula fixa◮ Vırgula flutuante

� Instrucoes logicas e aritmeticas do P3

Nota de Agradecimento

Pilha

Instrucoes de Acessoa Memoria

Codificacao dasInstrucoes

Proxima Aula

Prof. Nuno Roma ACom 2014/15 (MEAer) - DEEC-IST 30 / 30

Agradecimento

Algumas paginas desta apresentacao foram extraidas de:

[1] Jose Carlos Monteiro, “Arquitectura de Computadores”, InstitutoSuperior Tecnico (IST), Universidade Tecnica de Lisboa, Portugal,2010.