[http://www.di.univaq.it/muccini/labarch]



Documenti analoghi
Laboratorio di Architettura degli Elaboratori

Architetture dei Calcolatori (Lettere. Installazione di SPIM. Interfaccia Grafica

Il simulatore SPIM SPIM

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive

Calcolatori Elettronici

Lezione laboratorio SPIM

L ambiente di simulazione SPIM

Corso di Informatica

La macchina programmata Instruction Set Architecture (1)

Le costanti Le modalità di indirizzamento L assembly del MIPS

Corsi Speciali Abilitanti Indirizzo 2: Fisico-Matematico Modulo Didattico: Elementi di Informatica Classi: 48/A TEST D INGRESSO

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

ARCHITETTURA DEGLI ELABORATORI II - LABORATORIO

Architettura degli Elaboratori e delle Reti

Il Sistema Operativo (1)

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

MANUALE PORTALE UTENTE IMPRENDITORE

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

Il Processore: i registri

Il computer: primi elementi

Sistemi operativi. Esempi di sistemi operativi

Ing. Paolo Domenici PREFAZIONE

Architettura del calcolatore

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

MIPS Instruction Set 2

ToolChain: Come Generare Applicazioni in Linguaggio Macchina

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

L ambiente di simulazione SPIM

Il Software. Il software del PC. Il BIOS

Introduzione al sistema operativo Il file system: file, directory,...

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Calcolatori Elettronici Parte X: l'assemblatore as88

Microsoft Office XP. dott. ing. Angelo Carpenzano. La suite Microsoft Office XP

LIBRO DI TESTO: Il nuovo Dal bit al web AUTORI: Barbero-Vaschetto CASA EDITRICE: LINX

Word per iniziare: aprire il programma

Il web server Apache Lezione n. 3. Introduzione

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

PROGRAMMA SVOLTO A.S. 2013/2014 CLASSI 1^ D 1^E AFM DISCIPLINA INFORMATICA

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Installazione e caratteristiche generali 1

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Corso Eclipse. Prerequisiti. 1 Introduzione

Documentazione illustrativa

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

CdL in Medicina Veterinaria - STPA AA

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per "Tecnico Ortopedico" 03

OBIETTIVI SPECIFICI DI APPRENDIMENTO

GUARINI PATRIMONIO CULTURALE VERSIONE MSDE/SQL SERVER MANUALE DI INSTALLAZIONE GUARINI PATRIMONIO CULTURALE VERSIONE MSDE/SQL SERVER

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

PIANO DI LAVORO DEI DOCENTI

CALCOLATORI ELETTRONICI II

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

ISIS C.Facchinetti Sede: via Azimonti, Castellanza Modulo Gestione Qualità UNI EN ISO 9001 : 2008

Software di base. Corso di Fondamenti di Informatica

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Calcolatori Elettronici A a.a. 2008/2009

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Architettura dei computer

Compilatore risorse display grafico LCD serie IEC-line

Programmazione dello Z80

Esercitazione 1 primi passi e uso dei file

ArubaKey. Installazione

ISTITUTO ISTRUZIONE SUPERIORE "L. EINAUDI" - ALBA (CN) ANNO SCOLASTICO 2014/2015

Nozioni di Informatica di base. dott. Andrea Mazzini

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

INFORMATICA 1 L. Mezzalira

Corso di Base di informatica

Programma svolto di Informatica Anno scolastico 2014/2015

Progetto PON C1-FSE : APPRENDERE DIGITANDO SECONDARIA VERIFICA INTERMEDIA CORSISTA NOME E COGNOME:

1. INTRODUZIONE ALL INFORMATICA. LA RAPPRESENTAZIONE DELLE INFORMAZIONI

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, = 1, 431 0, = 0, 862 0, = 1, 792 0, = 1, 448 0, = 0, 896

Dispensa di database Access

Informatica. Teoria. L architettura dei PC Storia dell informatica Periferiche Reti - Software. Marco Brama

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

ISTITUTO ISTRUZIONE SUPERIORE "L. EINAUDI" ALBA ANNO SCOLASTICO 2015/2016

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Token USB. Installazione Versione 1.1

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

4. Un ambiente di sviluppo per Java

Office 2007 Lezione 02. Le operazioni più

Laboratorio di Architettura degli Elaboratori - A.A. 2012/13

PORTALE PASSPARTÙ Manuale dell utente VERSIONE 2.0. Copyright 2015 QUI! Group Spa

Cosa è un foglio elettronico

IIS D ORIA - PROGRAMMAZIONE per UFC INDICE DELLE UFC

C. P. U. MEMORIA CENTRALE

Progetto SOLE Sanità OnLinE

Il microprocessore 8086

Architettura degli Elaboratori II - Laboratorio

ISTRUZIONI XCODE. Autore: Luca Florio (luca.florio<at>polimi.it)

PROGRAMMAZIONE COORDINATA TEMPORALMENTE

Tale attività non è descritta in questa dispensa

La quantità. Rappresentazione dei numeri I numeri rappresentano quantità. Il sistema Binario. Binario

Transcript:

[http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 3: Introduzione a SPIM -L interfaccia grafica di SPIM -La struttura di un programma SPIM -Gestione dell input in SPIM Software Engineering and Architecture Group Henry Muccini Il simulatore SPIM Permette di eseguire programmi assembler scritti per il processore MIPS. Può essere scaricato dal sito www.cs.wisc.edu/~larus/spim.html 2/16 1

Download SPIM Linux Platform Unix or Linux system Mac OS X Microsoft Windows (Windows NT, 2000, XP) (spim 7.0 and later versions no longer run on Windows 95/98. Use version 6.5 or earlier.) Program spim xspim spim xspim spim PCSpim Form Source code Binary RPM for Fedora Executa ble Source code File http://www.cs.wisc.edu/~larus/s PIM/spim.tar.Z or http://www.cs.wisc.edu/~larus/s PIM/spim.tar.gz http://www.cs.wisc.edu/cbi/down loads/ http://www.cs.wisc.edu/~larus/s PIM/pcspim.zip http://www.cs.wisc.edu/~larus/s PIM/pcspim_src.zip 3/16 Lezione Sommario della lezione: 1) L interfaccia grafica di SPIM 2) La struttura di un programma SPIM 3) Gestione dell input in SPIM 4/16 2

1) L interfaccia grafica di SPIM Il simulatore SPIM si presenta organizzato in due finestre visuali, una chiamata console che funge da terminale per le operazioni di input /output e l altra che modella il processore MIPS che si presenta organizzata in quattro pannelli, che sono: 3.1 Il display dei registri 3.2 Il segmento di testo 3.3 Il segmento di dati e dello stack 3.4 Il pannello dei messaggi 5/16 6/16 3

3.1 Il display dei registri Mostra lo stato di tutti i registri della CPU e della FPU del MIPS. Il contenuto dei registri è codificato in esadecimale ed è aggiornato ogni volta che il programma interrompe la sua esecuzione, ovvero quando il programma termina; produce un errore; raggiunge un breakpoint definito dall utente. 7/16 Registri e SPIM MAR Memoria MBR Bus R1R2 Rn MEMORIA ALU CPU 8/16 4

3.2 Il segmento di testo Mostra la porzione di memoria in cui è memorizzato il programma da eseguire (a partire dalla locazione 0x0040000). Tale programma è costituito dal codice utente più una parte di codice di sistema che si occupa della gestione della riga di comando e della terminazione (trap handler). Una generica riga di questo segmento ha il seguente formato: Numero di riga del programma contenente l istruzione [0x00400004] 0x8fa40000 lw $4,0($29); 89: lw $a0,0($sp) Indirizzo dell istruzione Codifica dell istruzione in linguaggio macchina Descrizione mnemonica dell istruzione Codifica dell istruzione in linguaggio assembler 9/16 Esempi di numerazioni 10/16 5

Aiuto Progetto 1 : Conversione di numeri esadecimali in binario Esadecimale in binario. Inoltre, si converta byte a byte nel corrispondente carattere, utilizzando la notazione ASCII. Ad esempio, 31 in 0x00000031, 0011 0001 -> in decimale sta per 49 -> che nella tabella ASCII sta per il carattere 1. 11/16 3.3 Segmento di dati e stack Mostra lo stato della memoria riservata ai dati statici (segmento di dato) e dinamici (stack) del programma. Per facilitarne la lettura, ogni riga di tali segmenti mostra il contenuto (in esadecimale) di 4 locazioni di memoria consecutive (1 locazione ~1 word ~ 4 byte ~ 1 registro) Queste locazioni sono ordinate in maniera crescente da sinistra verso destra. Ogni locazione, essendo questa una word e poiché il MIPS indirizza il singolo byte, rappresenta a sua volta 4 locazioni consecutive che sono invece ordinate da destra verso sinistra. 12/16 6

Memoria e SPIM MAR Memoria MBR Bus R1R2 Rn MEMORIA ALU CPU 13/16 Organizzazione della memoria Global pointer Dati statici Static Data Text Codice del programma ( text ) 14/16 7

Esempio: Determinare l indirizzo dei byte di memoria evidenziati in rosso nella figura sottostante. a) [0x10000000] 0x00000000 0x00000000 0x00000000 0x00000000 b) [0x10000010] 0x00000000 0x00000000 0x00000000 0x00000000 Risposta: a) 0x10000005; b) non si tratta di un indirizzo di memoria valido. 15/16 2) Struttura di un programma SPIM.data.text.globl main main: Facoltativo Apri Lezione3.palindroma.asm 16/16 8

HM1 3) Gestione dell input in SPIM (1/4) Scegliendo il seguente percorso dalla barra degli strumenti: Simulator Set Value èpossibile inserire direttamente qualsiasi valore nelle seguenti destinazioni: Registro Locazione di memoria 17/16 Gestione dell input in SPIM (2/4) E inoltre possibile usare il segmento.data per inserire valori in memoria (a partire dalla locazione 0x10010000) secondo il seguente schema:.data label Facoltativo.tipo valore.data X:.word 5 dove label èun eventuale nome che si vuole associare alla locazione di memoria che si sta inizializzando mentre valore ne definisce il contenuto; tipo, infine, è la dimensione con cui si vuole rappresentare valore (es. word, half, byte). 18/16 9

Diapositiva 17 HM1 Per usare il Set Values con un "Address", bisogna scrivere l'indirizzo ed il valore nella forma 0xaaaaaaaa. Per usare il SetVAlues con un "Registro", bisogna invece scrivere il nome del registro nella forma R18 mentre il suo valore come 0xaaaaaaaa. Henry Muccini; 13/01/2006

Esempio: Caricare i valori numerici 14 e 5 rispettivamente nei registri $s0 e $s1..data X:.word 14 Y:.word 5.text.globl main main: lw $s0,x lw $s1,y Apri Lezione3.palindroma.asm 19/16 Gestione dell input in SPIM (3/4) SPIM fornisce anche una modalità di inserimento dati interattiva usando alcune chiamate di sistema e la finestra console come terminale. Per invocare una chiamata di sistema è sufficiente utilizzare il comando syscall. Prima di utilizzare tale comando, però, è necessario specificare tutti i parametri richiesti dalla particolare chiamata di sistema che si vuole utilizzare. 20/16 10

Alcune chiamate di sistema Chiamata di sistema Print_string Read_int Codice 4 5 Parametri $a0 contiene l indirizzo della stringa da stampare $v0 conterrà il risultato della lettura da tastiera Prima di utilizzare una qualsiasi chiamata di sistema ènecessario porre nel registro $v0 il relativo codice. 21/16 Esempio: Lettura di un intero da tastiera..data Stringa:.asciiz Inserisci un numero:.text.globl main main: li $v0,4 # codice per la chiamata di sistema Print_string la $a0,stringa # codice syscall li $v0,5 # codice per la chiamata di sistema Read_int syscall 22/16 11

File: Lezione3.syscall.asm 23/16 Gestione dell input in SPIM (4/4) SPIM fornisce due ulteriori modalità di inserimento dati che sono: Utilizzo della riga di comando Input formattato in memoria Vedremo tali input nelle prossime lezioni Ora vediamo un esempio di Programma in SPIM 24/16 12

Esempio: Lezione3.palindroma.asm 25/16 Per approfondimenti - Alcuni documenti su SPIM - Alcuni manuali sul MIPS - Alcuni esempi svolti in SPIM - http://www.di.univaq.it/muccini/labarch/ Materiale.htm 26/16 13

MARS MARS MIPS Assembler and Runtime Simulator MARS 3.5 14 Aug 2008 http://courses.missouristate.edu/kenvollmar/ MARS/ 27/16 28/16 14