MODOS DE ENDEREÇAMENTO



Documentos relacionados
Organização e Arquitetura de Computadores I

Arquitetura de Computadores. Linguagem de Máquina

Arquitetura de Computadores

Computadores de Programação (MAB353)

Organização e Arquitetura de Computadores I

MIPS. Prof. Carlos Bazilio

Conjunto de. Instrução MIPS. Parte II. Instruções MIPS. Instruções MIPS. Instruções MIPS :: Instruções lógicas. :: Instruções lógicas

Computadores de Programação (MAB353)

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Aula 14: Instruções e Seus Tipos

Organização e Arquitetura de Computadores I

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

Componentes do Computador e. aula 3. Profa. Débora Matos

Prova P4/PS Disciplina: Organização de Computadores-EC Professor: Ney Laert Vilar Calazans lui+ori syscall 1. .text 2. main: $s0, string 3.

Conjunto de Instruções e Arquitectura p.1

Arquitetura de Computadores I

Arquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios

Arquitetura de Computadores. Ivan Saraiva Silva

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

Anotações da 2a Edição

Conjunto de Instruções. Conjunto de Instruções

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Organização de Computadores 1

Introdução à Arquitetura de Computadores

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Sistemas Processadores e Periféricos Aula 5 - Revisão

Arquitetura de Computadores. Assembly Miscelâneas. Mário O. de Menezes.

SSC0611 Arquitetura de Computadores

Caminho dos Dados e Atrasos

O Processador: Caminho de Dados e Controle

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

RISC simples. Aula de Março de

Arquitetura de Computadores. Tipos de Instruções

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

SSC0114 Arquitetura de Computadores

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Sistemas de Computação. Instruções de Linguagem de Máquina

Primeiro Trabalho de POO Emulador para o Processador Winter

Arquitetura de Computadores I

Arquitetura de Computadores Moderna

Registradores de uma CPU. Registradores de uma CPU - Acumulador

Conjunto de Instruções

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Organização de Computadores Hardware

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA VII

AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS

Linguagem de Montagem 2. Operações e Operandos

ArchC. Wesley Nunes Gonçalves

Paralelismo a Nível de Instrução

1: 2: 2, [1] [2] 0x x001f8021 $16,$0,$31 13 [3] 0x x

4-1. Parte2: A Arquitetura do Conjunto de Instruções

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

Sistemas Processadores e Periféricos Aula 2 - Revisão

Computador: Hardware + Software

Organização de Computadores

Exercícios resolvidos (aula de 4 de Maio) Resolução:

Disciplina: Organização e Arquitetura de Computadores II Professores: Fabiano Hessel e Ney Calazans 22/abril/2009

Arquitectura de Computadores

Organização e Arquitetura de Computadores I. de Computadores

Programando o computador IAS

ULA Sinais de Controle enviados pela UC

Infraestrutura de Hardware. Instruindo um Computador Subrotinas, Tipos de Dados e Modos de Endereçamento

Arquitectura de Computadores ARQC MIPS. Exemplos. Serviços de Sistema

UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE

Sumário. Aula Anterior. Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits.

Infraestrutura de Hardware. Instruindo um Computador

MIPS ISA (Instruction Set Architecture)

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.

Arquitetura de Computadores. Ivan Saraiva Silva

28/9/2010. Unidade de Controle Funcionamento e Implementação

INF1004 e INF1005: Programação 1. Introdução à Programação

Geração de código intermediário. Novembro 2006

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções

66 [2] 0x x c

Usando o simulador MIPS

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

2 Formalidades referentes ao trabalho

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Disciplina: Organização de Computadores Professor: Ney Laert Vilar Calazans

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I Juliana F. Camapum Wanderley

BARRAMENTO DO SISTEMA

CAPÍTULO 6 ARITMÉTICA DIGITAL

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

ALP Algoritmos e Programação. . Linguagens para Computadores

Revisão dependências de dados

Figura 1 - O computador

Relembrando desempenho...

Visão Geral de Pipelining

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Relembrando desempenho...

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Faculdade de Computação

Introdução ao Processamento Paralelo

Transcrição:

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO MODOS DE ENDEREÇAMENTO MARINGÁ 2014

SUMÁRIO 6 MODOS DE ENDEREÇAMENTO...2 6.1 ENDEREÇAMENTO REGISTER-ONLY...2 6.2 ENDEREÇAMENTO IMEDIATO...2 6.3 ENDEREÇAMENTO BASE...2 6.4 REGISTRADORES PRESERVADOS...3 6.5 ENDEREÇAMENTO PSEUDO DIRETO...4 6.6 EXERCÍCIOS...5 6.7 REFERÊNCIA BIBLIOGRÁFICA...6

6 MODOS DE ENDEREÇAMENTO O microprocessador MIPS utiliza cinco modos de endereçamento: register-only, imediato, base, relativo ao PC, e pseudo-direto. Os três primeiros modos ( endereçamento register-only, imediato e base) definem os modos de leitura e escrita dos operandos. Os dois últimos (endereçamento relativo ao PC e pseudo-direto) definem modos de escrita do contador de programa, PC. 6.1 ENDEREÇAMENTO REGISTER-ONLY Endereçamento somente registradores usa registradores para todos os operandos de origem e destino. Todas as instruções do tipo R usam endereçamento registar-only. 6.2 ENDEREÇAMENTO IMEDIATO Endereçamento imediato usa o imediato 16-bit acompanhado de registradores e operandos. Algumas instruções tipo I, tais como adicionar imediata (addi) e load upper immediate (lui), usam endereçamento imediato. 6.3 ENDEREÇAMENTO BASE Instruções de acesso à memória, como load word (lw) e store word (sw), usam endereçamento base. O endereço efetivo do operando memória é encontrado adicionando o endereço de base no registrador rs para o deslocamento de 16 bits estendido encontrado no campo imediato. 2

6.4 REGISTRADORES PRESERVADOS As instruções de desvio condicional usam o endereçamento relativo ao PC para especificar o novo valor do PC, se o desvio condicional é executado. O deslocamento indicado no campo imediato é adicionado ao PC para obter o novo PC; portanto, o endereço de destino do desvio é dito ser relativa ao atual PC. O código de exemplo no quadro 1 mostra parte da função fatorial. A Figura 1 mostra o código de máquina para a instrução beq. O endereço de destino de desvio (EDD) o endereço da próxima instrução a ser executada se o desvio for executado. A instrução beq na Figura 1 tem um EDD de 0xB4, o endereço de instrução do rótulo else. Quadro 1: Calcular o endereço de destino do desvio Código assembly 0xA4 0xA8 0xAC 0xB0 0xB4 0xB8 beq $t0, $0, else addi $v0, $0, 1 addi $sp, $sp, 8 jr $ra else: addi $a0, $a0, -1 jal fatorial Figura 1: Código de máquina para a instrução beq. O campo imediato de 16 bits dá o número de instruções entre o EDD e a instrução após a instrução de desvio (a instrução no PC + 4). Neste caso, o valor do campo de imediato beq é 3 porque o EDD (0xB4) é terceira instrução após PC + 4 (0xA8). O processador calcula o EDD da instrução pelo imediato de 16 bits, multiplica-o por 4 (para converter palavras de bytes), e adiciona-o ao PC + 4. 3

6.5 ENDEREÇAMENTO PSEUDO DIRETO No endereçamento direto, um endereço é especificado na instrução. As instruções de salto, j e jal, idealmente usariam endereçamento direto para especificar um endereço alvo para salto de 32 bits para indicar o endereço de instrução a ser executada em seguida. A codificação de instruções tipo J não tem bits suficientes para especificar um endereço para salto de 32 bits completo. Seis bits da instrução são utilizados para o código de operação (opcode), de modo que apenas 26 bits são deixados para codificar o endereço para salto. Os dois bits menos significativos, JTA 1:0, deve ser sempre 0, porque as instruções são palavra alinhada. Os próximos 26 bits, JTA 27:2, são formados a partir do campo de endereço da instrução. Os quatro bits mais significativos, JTA31:. 28, são obtidos a partir dos quatro bits mais significativos do PC + 4 Este modo de endereçamento é denominado pseudo direto. O exemplo no quadro 2 ilustra uma instrução jal usando endereçamento pseudo direto. O endereçamento alvo para salto da instrução jal é 0x004000A0. Quadro 2 Calcular o endereço alvo para salto Código Assembly 0x0040005C... 0x004000a0 jal soma soma: add $v0, $a0, $a1 A Figura 2 mostra o código de máquina para a instrução jal do quadro 2. Os quatro primeiros bits e os dois últimos bits do endereço de salto são 4

descartados. Os restantes bits são armazenados no campo do endereço de 26 bits (addr). O processador calcula o endereço de salto da instrução tipo J, acrescentando dois zeros e antecedendo os quatro bits mais significativos do PC + 4 para o campo de endereço de 26 bits (addr). Os quatro bits mais significativos são formados a partir de PC + 4, a faixa de salto é limitada. Todas as instruções tipo J, j e jal, usam endereçamento pseudo direto. A instrução de salto registo, jr, não é uma instrução tipo J. É uma instrução do tipo R, que salta para o valor de 32 bits, mantida em registrador rs. 6.6 EXERCÍCIOS 1. Calcule o campo imediato e mostre o código de máquina para a instrução de desvio não igual (bne)no programa seguinte. # código assembly MIPS 0x40 Loop: add $t1, $a0, $s0 0x44 lb $t1, 0 ($t1) 0x48 add $t2, $a1, $s0 0x4C sb $t1, 0 ($t2) 0x50 addi $s0, $s0, 1 0x54 bne $t1, $0, Loop 0x58 lw $s0, 0 ($sp) 2. Converta as seguintes instruções de montagem beq, j, e jal em código de máquina. Os endereços das instruções são dados à esquerda de cada instrução. a) b) 5

c) d) e) 3. Considere o seguinte trecho de linguagem assembly MIPS. Os números à esquerda de cada instrução indicam o endereço da instrução. a) Traduza a sequência de instruções em código de máquina. Escreva as instruções de código de máquina em hexadecimal. b) Liste o modo de endereçamento usado em cada linha de código. 6.7 REFERÊNCIA BIBLIOGRÁFICA HARRIS, David Money & HARRIS, Sarah L. Digital Design and Computer Architecture, 2ª ed., Elsevier: 2013. 6