Conjunto de instruções

Slides:



Advertisements
Apresentações semelhantes
1998 Morgan Kaufmann Publishers Mario Côrtes - MO401 - IC/Unicamp- 2004s2 Ch5A-1 Chapter Five The Processor: Datapath and Control.
Advertisements

Conjunto de Instruções MIPS
Organização e Arquitetura de Computadores I Linguagem de Máquina
WebDesign Redes de Computadores Aula 05
O Conjunto de Instruções
Introdução da Disciplina
Exemplo de arquitetura registrador-registrador- MIPS
Aula-02 Arquitetura do conjunto de instruções – ISA (Instruction Set Architecture)
Arquitetura de Computadores I
Autor: Fernando de Mesentier Silva
Nível Máquina Formatos de Instruções
Arquitecturas RISC Arquitectura e Conjunto de Instruções
Arquitecturas RISC Programação em assembly
Instruções: A Linguagem de Máquina – Aula 01
Funcionamento básico de um computador
Do alto-nível ao assembly
Aula 3©Universidade do Algarve 1 Do alto-nível ao assembly Compiladores, Aula Nº 3 João M. P. Cardoso.
Classes de Arquiteturas Tipos de operação Codificação das operações
A Linguagem de Máquina – Desvios e Laços
A Linguagem de Máquina – Funções e recursividade Prof. André Luis M. Silva orgearq wordpress.com.
Arquitetura de Computadores 2009 Infra-estrutura Hardware
Instruções Condicionais e de Acesso a Memória Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala GSI013 –
A linguagem de Máquina – Instruções Básicas
Organização de Computadores Implementação da UCP Construção do caminho de dados Controle Implementação monociclo.
Capítulo 10 Conjuntos de instruções: Características e funções William Stallings Arquitetura e Organização de Computadores 8 a Edição © 2010 Pearson Prentice.
MAB 124 Sistemas de Numeração PRC Sistemas de Numeração.
Programação em Assembly Introdução e Revisão Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Compiladores - Introdução. O que é um Compilador? “Um compilador é um programa que lê um programa escrito em uma linguagem (linguagem fonte) e a traduz.
Programação em Assembly Conceitos Iniciais Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
MIPS Monociclo (MIPS_V0) Estrutura e Implementação em VHDL Fernando Moraes 03/maio/2011 Revisada por Ney Calazans em agosto/2016.
Nível da Lógica Digital
Arquitetura do SET de instruções Instruction SET CISC vs RISC
Introdução à Computação para Engenharia MAC2166
Ciclos de operação em processador
PSI3441 – Arquitetura de Sistemas Embarcados
NEANDERWin - Simulador
Arquitetura e Assembly*
Aspectos de Interrupção
ELD - Eletrônica Digital
PSI3441 – Arquitetura de Sistemas Embarcados
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES
Computador MIPS Organização básica e conjunto de instruções.
Caminho de Dados (aula passada)
Instruções de Acesso à Memória e de Desvio Condicional
Programação em C Aula 2.
Programação - algoritmia
Processamento Vectorial: Single Instruction Multiple Data
Arquitetura e Assembly*
LINGUAGENS DE PROGRAMAÇÃO
Instruções.
Arquitetura e organização de computadores
Arquitetura e Assembly*
PROGRAMAÇÃO I UNIDADE 3.
Níveis de Abstrações TANENBAUM:
Representação da Informação
Prof. Alberto F. De Souza LCAD/DI/UFES
Sistemas Operacionais I
Introdução à Computação
ELEMENTOS DE ORGANIZAÇÃO DE COMPUTADORES :
Arquitetura de Computadores
Professora Roberta Bonamichi Guidi Garcia
Instruções de Acesso à Memória e de Desvio Condicional
Linguagem de Programação I
PSI3441 – Arquitetura de Sistemas Embarcados
Organização de um Computador
Programação em assembly
RISC vs. CISC Introdução
Arquitectura de Computadores
Chapter 3 Instructions: Language of the Machine
Transcrição da apresentação:

Conjunto de instruções assembly Código-máquina assembler add $s0, $s1, $s2 11001001001 mnemónicas pseudo-instruções labels binário instruções nativas suportado pelo data path ISA – interface entre o processador e os programas de mais alto nível MIPS – caso de estudo 24-04-2019 Arquitectura de Computadores

Instruções lógico-aritméticas add , addi – adição sub – subtracção mult – multiplicação div – divisão and , andi – conjunção or , ori – disjunção sll , srl – shifts lógicos sra – shift aritmético Localização dos operandos memória ou registos? variáveis locais / variáveis estruturadas limitação no número e tamanho dos registos MIPS 32 registos com 32 bits cada operandos sempre em registos (velocidade) uso genérico ($s0..$s7 ; $t0..$t9) Ix86 1 operando pode estar na memória 24-04-2019 Arquitectura de Computadores

Instruções lógico-aritméticas Número de operandos 0 – stack (topo = topo <op> topo+1) 1 – acumulador (acc = acc <op> reg) 2 – (reg1 = reg1 <op> reg2) 3 – (reg1 = reg2 <op> reg3) Ix86 1 ou 2 operandos MIPS 3 operandos a regularidade leva à simplicidade Exemplos add $s0, $t0, $t1 # $s0 = $t0 + $t1 sub $t9, $t9, $s1 # $t9 = $t9 - $s1 addi $s0, $s0, -15 # $s0 = $s0 + (-15) and $s5, $s5, $0 # $s5 = $s5 & $0 24-04-2019 Arquitectura de Computadores

Instruções de transferência de dados Objectivo – transferir informação entre a memória e os registos p a l v r 1000 1001 1002 1003 Memória endereçável byte a byte load: lw $s0, 10($s1) – $s0 = [$s1 + 10] (32 bits) lh $t0, -5($s0) – $t0 = [$s0 – 5] (16 bits) lb $s0, 1000($s7) – $s0 = [$s7 + 1000] (8 bits) store: sw $s0, 10($s1) – [$s1 + 10] = $s0 (32 bits) sh $t0, -5($s0) – [$s0 – 5] = $t0 (16 bits) sb $0, 1000($s7) – [$s7 + 1000] = $0 (8 bits) Arquitectura load/store – o acesso à memória é feito apenas através destas instruções 24-04-2019 Arquitectura de Computadores

Instruções para tomada de decisões “... a utilidade de um computador reside na possibilidade de poder optar por uma de duas sequências de instruções, baseado no resultado de alguma computação anterior...” Saltos incondicionais Exemplo j Exit ... Exit: j <label> jr <reg> Saltos condicionais beq <reg1>, <reg2>, label bne <reg1>, <reg2>, label bgez <reg1>, label bgtz <reg1>, label blez <reg1>, label bltz <reg1>, label 24-04-2019 Arquitectura de Computadores

Instruções para tomada de decisões Instruções de comparação slt <reg1>, <reg2>, <reg3> <reg1> = 1 se <reg2> < <reg3> slti <reg1>, <reg2>, <imm> Exemplo if (a < b) a = a + 1; else a = a – 1; Se a é o registo $s0 e b o registo $s1 então slt $t0, $s0, $s1 beq $t0, $zero, else addi $s0, $s0, 1 j fim else: addi $s0, $s0, -1 fim: 24-04-2019 Arquitectura de Computadores