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



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

Computadores de Programação (MAB353)

Arquitetura de Computadores

Arquitetura de Computadores. Linguagem de Máquina

Aula 14: Instruções e Seus Tipos

MODOS DE ENDEREÇAMENTO

Organização e Arquitetura de Computadores I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

MIPS. Prof. Carlos Bazilio

Organização e Arquitetura de Computadores I

Infraestrutura de Hardware. Instruindo um Computador

MIPS ISA (Instruction Set Architecture)

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

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

Organização e Arquitetura de Computadores I

Arquitetura de Computadores. Tipos de Instruções

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

Operadores lógicos (bit a bit)

Conjunto de Instruções. Prof. Leonardo Barreto Campos 1

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

Anotações da 2a Edição

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

Programação ao nível da máquina. Operações lógicas e aritméticas

Arquitetura de Computadores I

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

Organização e Arquitetura de Computadores I

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

2 Formalidades referentes ao trabalho

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

Arquitectura de Computadores

Infra-estrutura de Hardware

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

Arquitetura de Computadores. Ivan Saraiva Silva

RISC simples. Aula de Março de

Organização de Computadores 1

ArchC. Wesley Nunes Gonçalves

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

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

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

Objetivos Gerais. Arquitetura de Computadores. Arquiteturas estudadas. O Computador Neander

Conjunto de Instruções e Arquitectura p.1

Nível Máquina Formatos de Instruções

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Laboratório de Sistemas Processadores e Periféricos Lista de comandos de Assembly

PCS-2302 / PCS-2024 Lab. de Fundamentos de Eng. de Computação

Neander - características

ULA Sinais de Controle enviados pela UC

Computadores de Programação (MAB353)

Revisão dependências de dados

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

Arquitetura e Organização de Computadores

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

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

Arquitetura de Von Neumann. Computador ISA

Escreva um programa em código assembly correspondente ao seguinte programa C.

Caminho dos Dados e Atrasos

Organização de Computadores

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

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

Programação Básica em STEP 7 Operações Binárias. SITRAIN Training for Automation and Drives. Página 6-1

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

Arquitetura e Organização de Computadores

Computador: Hardware + Software

Relembrando desempenho...

Conjunto de Instruções

A Figura 1 mostra uma organização do NEANDER com uma UAL de 6 funções. Figura 1: Organização para o NEANDER.

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

SSC0611 Arquitetura de Computadores

Relembrando desempenho...

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

Microcontroladores e Interfaces

ção de Computadores II

ARQUITECTURA DE COMPUTADORES

Conjunto de Instruções MIPS Parte IV

Guia Rápido MIPS. Tipos de Dados e Formatações

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

Representando Instruções no Computador

BARRAMENTO DO SISTEMA

Organização de Computadores Hardware

Estrutura de um Computador

CAPÍTULO 6 ARITMÉTICA DIGITAL

ARQUITETURA DE COMPUTADORES

ção de Computadores I

Especificação do Projeto de Processador RISC

Arquitectura de Computadores II. Máquinas Virtuais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

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

Conjunto de Instruções MIPS Parte III

Arquitetura de Computadores. Prof. João Bosco Jr.

Figura 8 Diagrama de Compilação

SSC0114 Arquitetura de Computadores

O Processador: Caminho de Dados e Controle

Unidade 10: A Unidade Lógica Aritmética e as Instruções em Linguagem de Máquina Prof. Daniel Caetano

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

Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Testes Baseados na Implementação. (fluxo de controle) Baseado em notas de aula da profa. Eliane Martins

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

Linguagem de Montagem Funcionamento de CPU e Assembly Rudimentar

Transcrição:

Faculdade de Ciências Aplicadas e Sociais de Petrolina FACAPE Conjunto de Pae II Transferência de Dados Lógicas Controle Supoe a procedimentos Prof. Sérgio Adaptado dos slides de Sistemas Processadores do Prof. Frank Torres - UFMG Organização de Computadores 1 Organização de Computadores 2 Operação lógica deslocamento à esquea deslocamento à direita E bit a bit OU bit a bit NOU bit a bit MIPS sll srl and, andi or, ori nor Significado shift left logical shift right logical and or notor Operações de deslocamento (shift). Deslocam todos os bits de uma palavra para esquea ou direita, preenchendo os bits vazios com zero (não cíclico). São instruções do tipo R (registrador). A quantidade de bits a serem deslocados é especificada pelo campo (shift amount). Organização de Computadores 3 Organização de Computadores 4

shift left logical(sll) shift left logical(sll) sll $t2, $s, 4 # $t2 $s << 4 sll $t2, $s, 4 # $t2 $s << 4 Conteúdo: $s 11 1 1111 111 11 1111 1111 sll 16 $s 1 $t2 4 sll $t2 1 1111 111 11 1111 1111 1 11 1 Organização de Computadores 5 Organização de Computadores 6 shift right logical(srl) shift right logical(srl) srl $t2, $s, # $t2 $s >> srl $t2, $s, # $t2 $s >> Conteúdo: $s 11 1 1111 111 11 1111 1111 srl 16 $s 1 $t2 2 srl $t2 11 1 1111 111 11 1 11 1 1 Organização de Computadores 7 Organização de Computadores

shift right arithmetic(sra) Desloca bits àdireita, preservando o sinal (compl. a 2). Deslocamento de n bits corresponde àdivisão por 2 n. Dica: para divisões com valores de tipo integer. :: Revisão Complemento de 2 1 = +4 Complemento de 1: 111 Soma 1: +1 11 = -4 Conteúdo: sra $t2, $s, 4 # $t2 $s >> 4 $s 111 1 1111 111 11 1111 1111 $t2 1111 111 1 1111 111 11 1111 Organização de Computadores Organização de Computadores 1 shift right arithmetic(sra) sra $t2, $s, 4 # $t2 $s >> 4 AND bit a bit (and) and $t,, $t2 # $t & $t2 sra 16 $s 1 $t2 4 3 sra Conteúdo: 1111 11 1111 $t2 11 1111 111 1 11 1 11 $t 11 11 111 Organização de Computadores 11 Organização de Computadores 12

AND bit a bit (and) and $t,, $t2 # $t & $t2 OR bit a bit (or) or $t,, $t2 # $t $t2 and 1 $t2 $t (24) h and Conteúdo: 1111 11 1111 11 11 1 11 $t2 11 111 $t 1111 11 1111 Organização de Computadores 13 Organização de Computadores 14 OR bit a bit (or) or $t,, $t2 # $t $t2 or 11 1 $t2 11 $t 1 (25) h or 111 NOR bit a bit (nor) A eração NOT (negação) tem apenas um erando. Para acompanhar o formato de dois erandos, a instrução NOR foi projetada no lugar do NOT. Se um erando for zero, NOR éequivalente ao NOT: A NOR = NOT (A OR ) = NOT (A) Organização de Computadores 15 Organização de Computadores 16

NOR bit a bit (nor) XOR bit a bit (xor) nor $t,, $zero # $t ~ xor $t,, $t2 # $t $t2 nor $zero $t (27) h nor xor 1 $t2 $t (26) h xor 11 1 1111 11 11 1 111 Organização de Computadores 17 Organização de Computadores 1 AND imediato (andi) andi $t,, 4 # $t & 4 OR imediato (ori) ori $t,, 4 # $t 4 (C) h andi $t immediate 4 constante (D) h ori $t immediate 4 constante 11 11 1 11 111 11 1 11 Organização de Computadores 1 Organização de Computadores 2

:: Resumo Categoria Nome or Exemplo or $,$,$1 Operação $ = $ or$1 Comentários Transferência de Dados and xor nor and $,$,$1 xor $,$,$1 nor $,$,$1 $ = $ and$1 $ = $ xor$1 $ = $ nor$1 Lógicas Controle lógicas andi ori andi $,$,5 ori $,$,4 $ = $ and5 $ = $ or4 Imediato em 16 bits Imediato em 16 bits Supoe a procedimentos sll sll $,$,1 $ = $ << 1 Deslocamento 32 srl srl $,$,5 $ = $ >> 5 Deslocamento 32 sra sra $,$,5 $ = $ >> 5 Desl. 32, preserva sinal Operações Lógicas do MIPS Organização de Computadores 21 Organização de Computadores 22 Organização de Computadores 23 Organização de Computadores 24

Organização de Computadores 25 Organização de Computadores 26 Organização de Computadores 27 Organização de Computadores 2

:: Instruções de controle Instruções para tomada de decisão. Alteram o fluxo de controle do programa. Alteram a próxima instrução a ser executada. Instruções de controle. Salto condicional. Salto incondicional. :: Instruções de controle para salto condicional: Branch on equal (beq) Branch on not equal (bne) Set on less than (slt) Set on less than immediate (slti) para salto incondicional: jump(j) Organização de Computadores 2 Organização de Computadores 3 :: Instruções de controle Branch on not equal (bne) Desvia o programa para <label1> se $t!= bne $t,, label1 #if ($t!= ) goto label1 Branchonequal(beq) Desvia o programa para <label2> se $t == :: Instruções de controle :: Ex 1 Exemplo: bne $, $, sai add $1, $, $ sai: n beq $t,, label2 #if ($t == ) goto label2 Organização de Computadores 31 Organização de Computadores 32

Organização de Computadores 33 Organização de Computadores 34 Organização de Computadores 35 Organização de Computadores 36

:: Instruções de controle :: Formato Branch on not equal (bne) bne $t,, label 5 bne $t immediate xxx nº de wos saltadas 11 1 11 xxx (16 bits) Organização de Computadores 37 Organização de Computadores 3 :: Instruções de controle :: Formato :: Instruções de controle :: Formato Branch on equal (beq) beq $t,, label 4 beq $t immediate xxx nº de wos saltadas As instruções de desvio condicional armazenam, no campo immediate, a quantidade de palavras (wos) que devem ser saltadas para chegar à instrução marcada pelo label(rótulo). Um número positivo indica que o salto deve ser no sentido para frente (atéo fim do código). 1 1 11 xxx (16 bits) Um número negativo indica que o salto deve ser no sentido para trás (atéo início do código). Organização de Computadores 3 Organização de Computadores 4

:: Instruções de controle Set on less than (slt) Compara dois registradores. slt $s1, $s2, $s3 #if ($s2 < $s3) $s1 = 1 #else $s1 = Set on less than immediate (slti) Compara um registrador e uma constante. slti $s1, $s2, 1 #if ($s2 < 1) $s1 = 1 #else $s1 = Organização de Computadores 41 :: Instruções de controle Instruções do tipo Set onlessthan combinadas com instruções do tipo Branch permitem criar todas as condições relativas: igual diferente maior maior ou igual menor menor ou igual Organização de Computadores 42 :: Instruções de controle Jump(j) Desvio incondicional para um endereço de memória apontado por um label. j label Instruções do tipo branchindicam desvio da sequênciado programa mediante análise de uma condição. Instruções do tipo jumpindicam desvio incondicional da sequência do programa. :: Instruções de controle :: Ex 2 Exemplo bne $, $, else add $1, $, $ j sai else: sub $1, $, $ sai: n Organização de Computadores 43 Organização de Computadores 44

Organização de Computadores 45 Organização de Computadores 46 Organização de Computadores 47 Organização de Computadores 4

Organização de Computadores 4 Organização de Computadores 5 :: Instruções de controle :: Formato Set on less than (slt) slt $t,, $t2 #if ( < $t2) $t = 1 #else $t = slt 1 $t2 $t (2A) h slt 11 11 1 111 Organização de Computadores 51 Organização de Computadores 52

:: Instruções de controle :: Formato Set on less than immediate (slti) :: Instruções de controle :: Formato Jump (j) slti $t,, 1 #if ( < 1) $t = 1 #else $t = j label # PC endereço[label] (A) h slti $t immediate 1 valor target (2) h xxx j endereço da instrução 11 11 1 111 1 xxx (26 bits) Organização de Computadores 53 Organização de Computadores 54 :: Instruções de controle :: Formato Ao contrário das instruções de desvio condicional (beqe bne), o campo targetda instrução jump armazena o endereço da memória correspondente à instrução marcada pelo label. Como o endereço de memória éum múltiplo de 4 bytes (1 b ), seus dois últimos bits não são representados na instrução jump. O novo endereço consiste dos 4 bits mais significativos do PC atual e dos 26 (+2) bits da instrução. Organização de Computadores 55 :: Instruções de controle :: Resumo Categoria Supoe a decisão Nome bne beq j slt slti Exemplo bne $,$,rotulo beq $,$,rotulo j rotulo slt $1,$,$ slti $1,$,1 Operação se $ $ então PC endereço[rotulo] se $ = $ então PC endereço[rotulo] PC endereço[rotulo] se $ <$ então $1 1 senão $1 se $ <1 então $1 1 senão $1 Organização de Computadores 56

Questões Questões Como fazer? while lo Código assembly // $s3 = i, $s5 = k, $s6 = base ofsave[] Como fazer? for lo Código assembly // $s1 = j, $s2 = k while(save[i]!= k) { i += 1; } Lo: sll, $s3, 2 #t1 = 4*i add,, $s6 #t1 = end. de save[i] lw$t, () # t = valor de save[i] beq$t, $s5, Exit # ifsave[i] = k vai p. Exit addi$s3, $s3, 1 # i = i + 1 j Lo Exit: n for (j < k) { j += 1; } Lo: slt,$s1,$s2 # t1 = 1 if j < k, else t1 = beq, $, Exit # if j>= k then Exit addi$s1,$s1, 1 # j = j + 1 j Lo Exit: n Organização de Computadores 57 Organização de Computadores 5