Sei sulla pagina 1di 6

27/11/2016

Universit degli Studi dell'Insubria


Dipartimento di Scienze Teoriche e Applicate

Architettura degli Elaboratori

Programmazione in assembly MIPS

Marco Tarini
marco.tarini@uninsubria.it

Architetture -1- Programmazione ASM MIPS

Introduzione al simulatore SPIM

Architetture -2- Programmazione ASM MIPS

1
27/11/2016

Programmiamo nel linguaggio Assembly


del MIPS
Vogliamo scrivere un programma in Assembly,
che un assembler convertir in un programma nell IS MIPS
Come testarlo?
Se avessimo una macchina MIPS a portata di mano, potremmo usarla.
Di solito, non ce labbiamo.
Soluzione: emulazione
Costruiamo una interprete per lIS MIPS.
Un programma per MIPS che gira sulla nostra piattaforma
ed in grado di emulare tutte le istruzioni MIPS
(es Win64 o MacOS)
Questa strategia detta instruction level simulation,
(si simula istruzione per istruzione)
cio emulation
Risultato: abbiamo una macchina virtuale MIPS

Architetture -3- Programmazione ASM MIPS

Il simulatore SPIM

SPIM : simulatore MIPS


by James Larus
open source, gratuito
qtSPIM: versione con GUI (QT)
cross-platform (linux/win/mac)

Quick start:
Google for it
Scaricalo
(per la tua piattaforma)
Istallalo
Done

Architetture -5- Programmazione ASM MIPS

2
27/11/2016

SPIM

SPIM fa due cose:


E un Assembler MIPS:
traduce da Assembly (MIPS) a Linguaggio Macchina (MIPS)
E un Emulatore MIPS
Fornisce una macchina astratta MIPS
(anche se chiama se stesso simulatore,
sarebbe pi appropriato il termine emulatore)
La versione qtSPIM aggiunge una GUI (interfaccia grafica utente)
permette di visualizzare la memoria (dati e text),
Visualizzare i registrii registri
Caircare i file sogente ietc

Architetture -6- Programmazione ASM MIPS

QTspim

Architetture -7- Programmazione ASM MIPS

3
27/11/2016

Esercizio 1: Hello world!


.data # dichiarazione dati
str: .asciiz "Hello, world!"
.text
.globl main
main: # qui comincia il codice
li $v0, 4 # 4 il codice di print_string
la $a0, str # str indirizzo della stringa
syscall
exit:
li $v0, 10
syscall

Architetture -8- Programmazione ASM MIPS

Architetture -9- Programmazione ASM MIPS

4
27/11/2016

Funzioni del kernel del SO

Architetture - 10 - Programmazione ASM MIPS

I nostri primi programmi

Prenderli in rete, alla pagina del corso!

Architetture - 11 - Programmazione ASM MIPS

5
27/11/2016

Digressione: le gioie dellemulazione SW

Neanche lo
Software sospettiamo di non
(scritto per B) stare girando su una
vera macchina B

instruction set B (emulato)

emulatore SW
(macchina virtuale per B,
scritta su A)

instruction set A (HW)

hardware

Emulazione

Vantaggi:
consente di riutilizzare il software (cos come , senza adattamento,
o riscrittura) scritto per unaltra archiettura B,
senza avere lHW che la esegue
(programma = dati + istruzioni)
Chi scrive (o, ha scritto) il sofware per B non deve fare nulla di
diverseo dal solito

Svantaggi:
La performance viene molto abbattuta:
Se le prestazioni di A non sono molto superiori a quelle attese per B,
il programma emulato andr molto pi lento di quello originale che giri
su un HW che implementa lIS B

Architettura degli elaboratori - 13 - Il livello ISA

Potrebbero piacerti anche