SPIM Esercizi. Esercizio 1 – il comando ‘li’ Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.

Slides:



Advertisements
Presentazioni simili
in un programma Assembler
Advertisements

Analisi della complessità degli algoritmi
Procedure In assembler.
Array multidimensionali
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
IL Linguaggio per la programmazione del PLC
Un nuovo tipo di dati Gli array.
Ottimizzazione statica del codice per processori pipelined Canella Matteo & Miglioli Filippo.
Chiamate a Procedure. Per lesecuzione di una procedura, un programma deve eseguire i seguenti sei passi: mettere i parametri in un posto dove la procedura.
SPIM Esercizi. Esercizio 1 – il comando li Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.
SPIM Esercizi. Esercizio 7 – load/store Il codice deve: Inserire in memoria la word 0x a Leggere questo dato e inserirlo in s0 Sommarci 5 Salvare.
Il Linguaggio Macchina
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Funzioni.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Caratteristiche principali dell’architettura del processore MIPS
Caratteristiche principali dell’architettura del processore MIPS
Criticità sul controllo
Criticità sul controllo
Criticità sul controllo
Il Linguaggio Macchina
1 Generazione codice Daniela Briola Lorena Bellino.
Codifica di algoritmi linguaggio macchina vs programmazione strutturata Lab Programmazione - turno /2006.
memoria gestita staticamente:
1 laboratorio di calcolo II AA 2003/04 seconda settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
I vettore interruzioni
Istruzioni per la Manipolazione dei Bit
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
Architettura degli Elaboratori II (canale P-Z) Istruzioni di controllo Dott. Franco Liberati.
Introduzione al linguaggio assembly del microprocessore a parte
Architettura degli Elaboratori II (canale P-Z) Modi di Indirizzamento Dott. Franco Liberati.
Arch. Elab. - S. Orlando 1 Esercitazione su Instruction Level Parallelism Salvatore Orlando.
Introduzione a Javascript
Calcolatori Elettronici Il Processore
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Programmazione Assembly
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Corso di Laurea in Informatica Architettura degli elaboratori a.a ISA e Asm: esempi e suggerimenti.
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Esercitazione 3 Introduzione allo SPIM Pseudo-Istruzioni
L’esecuzione dei programmi
Esercitazione 4 Chiamate di procedure Claudia Raibulet
Esercizio 14 – chiamata di una procedura Il codice deve: Passare due parametri alla procedura ‘salva’ Questa procedura deve salvare i due parametri nel.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
INTRODUZIONE A MATLAB LEZIONE 2 Sara Poltronieri.
Fondamenti di Informatica1 Linguaggi Diversi tipi di linguaggi: –Imperativi –Funzionali –Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio.
Esercizi.
Convenzioni chiamate a procedure Riassunto Pratico.
Esempio scriviamo un programma in linguaggio macchina che: trasferisce il contenuto delle 2 parole della RAM di indirizzi 64 e 68 nei registri R 0 ed R.
Corso di Laurea in Informatica Architettura degli elaboratori a.a Programmazione Assembly: procedure (1) Supporto hardware alle procedure Passaggio.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 15 Maggio.
Come esegue le istruzioni il microprocessore Un’istruzione è sempre composta da più operazioni elementari.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata (3) Istruzioni J-type Istruzioni di salto Istruzioni.
Divisione tra un polinomio ed un binomio Regola di Ruffini
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Corso di Laurea in Informatica Architettura degli elaboratori a.a ISA e Asm: esempi e suggerimenti.
Transcript della presentazione:

SPIM Esercizi

Esercizio 1 – il comando ‘li’ Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.

Esercizio 2 – operatori aritmetici Il codice deve: mettere un valore immediato in s0 e uno in s1 sommare s0 e s1 e mettere il risultato in s2 sommare il valore di s3 ad un numero a vostra scelta e metterne il risultato in s4 sottrarre il valore di s3 ad s1 e mettere il risultato in s5 mettere in s6 il risultato della moltiplicazione di s0 per s1

Esercizio 3 – operatori logici Il codice deve: mettere un valore immediato in s0 e uno in s1 mettere il risultato dell'AND logico di s0 e s1 in s2 mettere il risultato dell'AND logico di s0 e un valore immediato (16 bit) in s3 mettere il risultato dell’OR logico di s0 e s1 in s4 mettere il risultato dell’OR logico di s0 e un valore immediato (16 bit) in s5

Esercizio 4 – Operazioni di comparazione Il codice deve: mettere un valore immediato in s0 e uno in s1 comparare s0 e s1 e mettere il risultato (1 se s0<s1) in s2 comparare s0 e un valore immediato e mettere il risultato (1 se s0<val.imm.) in s3 comparare s0 e s1 e mettere il risultato (1 se s0=s1) in s4 comparare s0 e s1 e mettere il risultato (1 se s0>s1) in s5

Esercizio 5 – branch & jump Il codice deve: mettere dei valori immediati in s0 e s1, saltare a 'maggiore‘ se s0>s1 saltare a 'minore‘ se s0<s1 saltare a 'uguale‘ se s0=s1 saltare incondizionatamente a 'fine' le porzioni di codice definite da queste ultime etichette devono: maggiore - mettere il valore immediato 1 in s2, saltare inc. a 'fine' minore - mettere il valore immediato 2 in s2, saltare inc. a 'fine' uguale - mettere il valore immediato 0 in s2, saltare inc. a 'fine' fine - eseguire un nop (deve essere l'ultima etichetta) provare a cambiare i valori di s0 e s1 per verificare la corretta esecuzione del programma

Esercizio 6 – la, lw e la gestione della memoria Il codice deve: allocare in memoria tre interi: i primi due direttamente nel codice (.word) definiti da altrettante etichette (es. parametro_0 ecc), il terzo utilizzando i menù di PCSPIM mettere in t0 il valore immediato 4 mettere in s0 il valore immediato 0x con il comando ‘la’: mettere in s1 l'indirizzo 0x mettere in s2 l'indirizzo ($s0) mettere in s3 l'indirizzo 4($s0) mettere in s4 l'indirizzo del parametro_1 mettere in s5 l'indirizzo del parametro_0 + 4 mettere in s6 l'indirizzo del parametro_0 + 4 ($t0) con il comando ‘lw’ eseguire le stesse operazioni di ‘la’ (ma al posto dell'indirizzo questa volta avremo il dato contenuto a quell'indirizzo) eseguire le istruzioni passo per passo per verificare la corretta esecuzione del programma

Esercizio 7 – store Il codice deve: Inserire in memoria la word 0x a Leggere questo dato e inserirlo in s0 Sommarci 5 Salvare il risultato in memoria all’indirizzo 0x

Esercizio 8 – L’istruzione mancante Dato il seguente codice, inserire l’istruzione mancante perché alla fine nel registro t0 ci sia il valore 0x1a:.globl __start # il punto di partenza del programma deve essere "globale".data # dichiarazione di inizio area dati utente, # per convenzione 0x word0x a.text __start: li $s0, 0x3 li $t0, 0x2 lw $s1, 0x ciclo: mul $s2, $s0, $t0 addi $t0, $s2,2 xxxxxxxxxxxxxxx

Esercizio 9 – Data movement Il codice deve: inserire nel registro $s0 un valore immediato spostare il contenuto di $s0 in $s1 inserire nel registro $s2 un valore immediato dividere $s1 per $s0 spostare il resto dell'operazione in $s3

Esercizio 10 – Il codice macchina Tradurre manualmente in codice macchina le seguenti istruzioni: add $s2,$s0,$s1 addi $s1,$s0,46 sw $s1, 0x

Esercizio 11 – Il codice macchina Dire cosa fanno le seguenti istruzioni: 0x b 0x1211ffff

Esercizio 12 – Allocazione in memoria Memorizzare una matrice 4x3 nel data segment Calcolare la somma di ogni colonna Salvare i risultati in un vettore nel data segment

Esercizio 13 – I cicli Il codice deve: Dichiarare un array di 20 numeri interi (word) nel data segment In un ciclo inizializzare i valori con i primi 20 numeri dispari (iniziando da 1)