Calcolatori Elettronici

Размер: px
Начинать показ со страницы:

Download "Calcolatori Elettronici"

Транскрипт

1 Calcolatori Elettronici Il linguaggio assemblativo MIPS (4) Le function (2) Gestione dei sottoprogrammi $a0 - $a3 - $v1 $ra : 4 registri argomento per il passaggio dei parametri : due registri per la restituzione dei valori : un registro di ritorno per tornare al punto di origine jal etichetta_function : istruzione che salta all etichetta specificata e salva in $ra l indirizzo di ritorno jr $ra : istruzione che permette il ritorno al punto di origine (salta all indirizzo contenuto in $ra) Calcolatori Elettronici - MIPS(5) - Slide 2 L. Tarantino - a.a. 2004/2005 1

2 Esempio main() $a0,$a1 int a,b,c,d; a = molt(b,c); int molt (int op1, int op2) int prod; prod = 0; while (op2!= 0) prod = prod + op1; op2 = op2-1; return prod; Ipotesi: op2 > 0 Var Registro a $s0 b $s1 c $s2 Nel programma chiamante: La function: add $a0,$s1,$zero add $a1,$s2,$zero jal molt add $s0,,$zero molt: add,$zero,$zero loop: beq $a1,$zero,exit add,,$a0 addi $a1,$a1,-1 j loop exit: jr $ra Calcolatori Elettronici - MIPS(5) - Slide 3 L. Tarantino - a.a. 2004/2005 I registri temporanei (1) int esempio (int g, int h, int f; f = (g + h) - (i + j); $t0,$t1 Si assume che i registri temporanei siano a disposizione del programma chiamato. E compito del chiamante salvarne i valori se vuole che siano preservati vedremo dove Calcolatori Elettronici - MIPS(5) - Slide 4 L. Tarantino - a.a. 2004/2005 2

3 I registri temporanei (2) int esempio (int g, int h, int f; f = (g + h) - (i + j); $t0,$t1 La function: esempio: add $t0,$a0,$a1 add $t1,$a2,$a3 sub,$t0,$t1 jr $ra Calcolatori Elettronici - MIPS(5) - Slide 5 L. Tarantino - a.a. 2004/2005 Il salvataggio dei registri temporanei Necessario quando il programma chiamante non vuole perdere il contenuto di qualche registro temporaneo E buona norma di programmazione ricordarsi di salvare tutti i registri che non si vogliono perdere e non solo quelli usati dal programma chiamato (potremmo non conoscerlo nei dettagli) Viene usata un area di memoria che può crescere su richiesta del programma (struttura dinamica) Al ritorno al programma chiamante bisogna ripristinare il valore dei registri recuperandoli da tale struttura dinamica Si può utilizzare il protocollo last-in-first-out (lifo), cioè una struttura a pila (stack) Calcolatori Elettronici - MIPS(5) - Slide 6 L. Tarantino - a.a. 2004/2005 3

4 Lo stack Il puntatore alla cima dello stack (stack pointer ) è in un registro: $sp Lo stack cresce da indirizzi di memoria alti verso indirizzi di memoria più bassi ($sp diminuisce), diminuisce da indirizzi bassi verso indirizzi più alti ($sp aumenta) Memoria $sp $sp Stack vuoto Lo stack cresce $sp Lo stack diminuisce Calcolatori Elettronici - MIPS(5) - Slide 7 L. Tarantino - a.a. 2004/2005 Esempio (1) - La function main() int a,b,c,d,e; a = esempio(b,c,d,e); int esempio (int g, int h, int f; f = (g + h) - (i + j); $t0,$t1 Var Registro a $s0 b $s1 c $s2 d $s3 e $s4 La function: esempio: add $t0,$a0,$a1 add $t1,$a2,$a3 sub,$t0,$t1 jr $ra Calcolatori Elettronici - MIPS(5) - Slide 8 L. Tarantino - a.a. 2004/2005 4

5 Esempio (2) - Nel programma chiamante main() int a,b,c,d,e; a = esempio(b,c,d,e); Supponiamo di non voler perdere $t0 Var Registro a $s0 b $s1 c $s2 d $s3 e $s4 addi $sp,$sp,-4 # aggiornamento di $sp per far spazio # a un elemento (4 byte) sw $t0,0($sp) # salvataggio di $t0 nello stack add $a0,$s1,$zero # passaggio primo parametro # gli altri sono analoghi jal esempio # salto al sottoprogramma add $s0,,$zero # recupero il valore restituito in lw $t0,0($sp) # recupero il valore di $t0 dallo stack addi $sp,$sp,4 # aggiornamento di $sp per eliminare # un elemento (4 byte) Calcolatori Elettronici - MIPS(5) - Slide 9 L. Tarantino - a.a. 2004/2005 Esempio (3) - Nel programma chiamante Supponiamo di non voler perdere $t0 e $t1 addi $sp,$sp,-8 # aggiornamento di $sp per far spazio # a due elementi (8 byte) sw $t0,4($sp) # salvataggio di $t0 nello stack sw $t1,0($sp) # salvataggio di $t1 nello stack add $a0,$s1,$zero # passaggio primo parametro # gli altri sono analoghi jal esempio # salto al sottoprogramma add $s0,,$zero # recupero il valore restituito in lw $t1,0($sp) # recupero il valore di $t1 dallo stack lw $t0,4($sp) # recupero il valore di $t0 dallo stack addi $sp,$sp,8 # aggiornamento di $sp per eliminare # due elementi (8 byte) Notare l ordine: l ultimo a entrare è il primo a uscire Calcolatori Elettronici - MIPS(5) - Slide 10 L. Tarantino - a.a. 2004/2005 5

6 Generalizzando elementi del codice da specificare Nel programma chiamante (gestione della chiamata) addi $sp,$sp,-4*n # aggiornamento di $sp per far spazio # a n elementi (4*n byte) sw $t0, 4*(n-1)($sp) #... # salvataggi registri nello stack sw $t1,0($sp) # add $a0,$s_,$zero # passaggi parametri... # gli altri sono analoghi jal etichetta # salto al sottoprogramma add $s_,,$zero # recupero valore restituito in lw $t0, 0($sp) #... # ripristino registri dallo stack lw $t0, 4*(n-1)($sp) # addi $sp,$sp, 4*n # aggiornamento di $sp per eliminare # n elementi (4*n byte) Calcolatori Elettronici - MIPS(5) - Slide 11 L. Tarantino - a.a. 2004/2005 Esercizio (1) Compilare la seguente chiamata a function ipotizzando di non voler perdere il valore dei registri $t0, $t1 e $t3 Si noti che non è necessario conoscere il corpo della function Var Registro a $s0 b $s1 c $s2 main() int a,b,c,d,e; a = esempio(b,c); $a0,$a1 Calcolatori Elettronici - MIPS(5) - Slide 12 L. Tarantino - a.a. 2004/2005 6

7 I registri salvati ($s_ ) int esempio (int g, int h, int f; int k; k = g + h f = k - (i + j); $t1 $s0 secondo la convenzione che le variabili vadano nei registri $sx Si assume che i registri salvati rimangano inalterati (cioè al ritorno al programma chiamante il valore è lo stesso che avevano prima della chiamata) E compito del chiamato salvarne i valori se vuole che siano preservati nello stack! Calcolatori Elettronici - MIPS(5) - Slide 14 L. Tarantino - a.a. 2004/2005 Il salvataggio dei registri salvati Necessario quando il programma chiamato vuole usare qualche registro salvato (non bisogna perderne il contenuto) Occorre salvare tutti i registri che vengono usati Anche in questo caso viene usato lo stack Prima di ritornare al programma chiamante bisogna ripristinare il valore dei registri recuperandoli dallo stack Calcolatori Elettronici - MIPS(5) - Slide 15 L. Tarantino - a.a. 2004/2005 7

8 Esempio La function: int esempio (int g, int h, int f; int k; $s0 k = (g + h) f = k - (i + j); $t1 esempio: addi $sp,$sp,-4 # aggiornamento di $sp per far spazio # a un elemento (4 byte) sw $s0,0($sp) # salvataggio di $s0 nello stack add $s0,$a0,$a1 # k = g + h add $t1,$a2,$a3 # $t1 = i + j sub,$s0,$t1 # f = k - (i + j) lw $s0,0($sp) # recupero il valore di $s0 dallo stack addi $sp,$sp,4 # aggiornamento di $sp per eliminare # un elemento (4 byte) jr $ra # ritorno al programma chiamante Calcolatori Elettronici - MIPS(5) - Slide 16 L. Tarantino - a.a. 2004/2005 Generalizzando Nel programma chiamato addi $sp,$sp,-4*n elementi del codice da specificare # aggiornamento di $sp per far spazio # a n elementi (4*n byte) sw $s0, 4*(n-1)($sp) #... # salvataggi registri nello stack sw $s1,0($sp) #... #... # corpo della subroutine... # lw $s1, 0($sp) #... # ripristino registri dallo stack lw $s0, 4*(n-1)($sp) # addi $sp,$sp, 4*n # aggiornamento di $sp per eliminare # n elementi (4*n byte) Calcolatori Elettronici - MIPS(5) - Slide 17 L. Tarantino - a.a. 2004/2005 8

9 Esercizio (1) Compilare la seguente function: int esercizio (int g, int h, int f; int k1; int k2; $s0,$s1 k1 = g + h; k2 = i - j; f = k1 - k2; Calcolatori Elettronici - MIPS(5) - Slide 18 L. Tarantino - a.a. 2004/2005 Identificatori numerici dei registri $zero 0 costante zero 1 da definire - $v1 2-3 restituzione dei valori $a0 - $a3 4-7 parametri $t0 - $t variabili temporanee $s0 - $s variabili salvate $t8 - $t altre variabili temporanee da definire $sp 29 stack pointer 30 da definire $ra 31 indirizzo di ritorno Calcolatori Elettronici - MIPS(5) - Slide 20 L. Tarantino - a.a. 2004/2005 9

10 Esercizio (1) Determinare i registri ($s_,$t_,$a_,$v_) necessari alla compilazione delle seguenti linee di codice e determinare i necessari salvataggi sullo stack k = A[i] - (g + k); g = molt(k,5): B[i] = g + 10; Calcolatori Elettronici - MIPS(5) - Slide 21 L. Tarantino - a.a. 2004/

Istruzioni di trasferimento dati

Istruzioni di trasferimento dati Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:

Подробнее

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET: Università degli Studi di Milano Corso Architettura degli elaboratori e delle reti Prof. Cristina Silvano A.A. 2004/2005 Esame scritto del 15 luglio 2005 Cognome: Matricola: Nome: Istruzioni Scrivere solo

Подробнее

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Подробнее

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Подробнее

Esercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 5 Linguaggio Assembly

Esercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 5 Linguaggio Assembly Esercitazione di Calcolatori Elettronici Ing. Battista Biggio Corso di Laurea in Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Richiami: v[i] e &v[i] v[i] è il valore dell elemento i nel vettore

Подробнее

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri. Sottoprogrammi: richiami

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri. Sottoprogrammi: richiami Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Подробнее

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri

Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Corso di Calcolatori Elettronici I Subroutine in linguaggio macchina: collegamento e passaggio dei parametri Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Подробнее

Spazio di indirizzamento virtuale

Spazio di indirizzamento virtuale Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 016-01 Spazio di indirizzamento virtuale Pietro Di Lena - [email protected] // The function name says it all int stack_overflow (){

Подробнее

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Подробнее

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if

Подробнее

Il linguaggio Assembly

Il linguaggio Assembly Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly

Подробнее

ARM: stack e subroutine

ARM: stack e subroutine ARM: stack e subroutine 05.d Le istruzioni di accesso allo stack L istruzione di chiamata a subroutine Gestione degli stack frame Istruzione di store multiplo (STM Le istruzioni LDR e STR operano su parole

Подробнее

Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri

Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri

Подробнее

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione

Подробнее

Istruzioni assembler Istruzione N Registri

Istruzioni assembler Istruzione N Registri Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e

Подробнее

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori

Подробнее

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware.

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 2. Spiegare i diversi tipi di indirizzamento usati dalle istruzioni del set

Подробнее

Passaggio di Parametri per Valore o Indirizzo

Passaggio di Parametri per Valore o Indirizzo Passaggio di Parametri per Valore o Indirizzo Come in C, l assembler permette di passare un dato per valore (copia) o per indirizzo, nel secondo caso rendendo modificabile il dato stesso da dentro una

Подробнее

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull

Подробнее

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Il linguaggio assemblativo MIPS (1) Istruzioni di ALU: operazioni ed operandi Trasferimenti tra memoria e CPU Vettori (1) Le costanti Livelli di astrazione s o f t w a r e H W Linguaggio

Подробнее

Sottoprogrammi in linguaggio assembly del Motorola 68000

Sottoprogrammi in linguaggio assembly del Motorola 68000 Sottoprogrammi in linguaggio assembly del Motorola 68000 Daniele Paolo Scarpazza [email protected] Politecnico di Milano Ultimo aggiornamento: 10 Maggio 2005 Bibliografia Sezioni 4.9, 5.6

Подробнее

Lecture 2: Prime Istruzioni

Lecture 2: Prime Istruzioni [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 2: Prime Istruzioni

Подробнее

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS ESERCIZI Massimiliano Giacomin ESERCIZIO Utilizzando la green card, tradurre in linguaggio macchina le due istruzioni in assembly

Подробнее

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div

Подробнее

Linguaggio Assembler MIPS

Linguaggio Assembler MIPS Linguaggio Assembler MIPS Corso di Calcolatori Elettronici Corso di Calcolatori Elettronici A A.A. 2000/2001 Dr. Daniela Fogli Notazione Operazioni aritmetiche: Somma add a, b, c fa la somma di b e c e

Подробнее

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F. Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/32 Linguaggio

Подробнее

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Подробнее

Istruzioni MIPS per floating point

Istruzioni MIPS per floating point Istruzioni MIPS per floating point Architetture dei Calcolatori (lettere A-I) Coprocessore per floating point L architettura MIPS ha un coprocessore (indicato con il numero 1) che opera sui numeri in virgola

Подробнее

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Подробнее

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Подробнее

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Подробнее

Assembly III SPIM: un ambiente di simulazione MIPS

Assembly III SPIM: un ambiente di simulazione MIPS Architettura degli Elaboratori e delle Reti Lezione 13 Assembly III SPIM: un ambiente di simulazione MIPS Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi

Подробнее

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler Indice Linguaggio ad alto livello, linguagio assembler e linguaggio macchina Il linguaggio assembler MIPS: istruzioni aritmetiche, di trasferimento dati e di salto Conversione linguaggio assembler in linguaggio

Подробнее

Processore Danilo Dessì. Architettura degli Elaboratori.

Processore Danilo Dessì. Architettura degli Elaboratori. Processore 8088 Architettura degli Elaboratori Danilo Dessì [email protected] Subroutine Anche nel linguaggio assemblativo è possibile suddividere un programma in subroutine Per invocare una subroutine

Подробнее

L ambiente di simulazione SPIM

L ambiente di simulazione SPIM Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/20

Подробнее

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

Подробнее

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Подробнее

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME MATRICOLA COGNOME NOME 1) [28/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla tabella sottostante), rispettando le convenzioni

Подробнее

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Подробнее

I processi: concetti di base, context switch e scheduling

I processi: concetti di base, context switch e scheduling Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi I processi: concetti di base, context switch e scheduling Processo: definizione Processo (o Job): Entità attiva

Подробнее

L'architettura del processore MIPS

L'architettura del processore MIPS L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento

Подробнее

Il linguaggio macchina

Il linguaggio macchina Il linguaggio macchina Istruzioni macchina (PH 2.4) Indirizzamento (PH 2.9) Costanti a 32-bit (PH 2.9) 1 Linguaggio macchina Le istruzioni in linguaggio assembly devono essere tradotte in linguaggio macchina

Подробнее

ISA (Instruction Set Architecture) della CPU MIPS

ISA (Instruction Set Architecture) della CPU MIPS Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina

Подробнее

Assembly MIPS: gestione degli array strutture di controllo. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano

Assembly MIPS: gestione degli array strutture di controllo. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano Architettura degli Elaboratori Assembly MIPS: gestione degli array strutture di controllo A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1 Istruzione MIPS: lw (load

Подробнее

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 ISA e LINGUAGGIO ASSEMBLY MIPS Massimiliano Giacomin 1 Architettura MIPS Architettura RISC e load-store sviluppata da John Hennessy nel 1981 Usata da NEC, Nintendo,

Подробнее

MIPS Instruction Set 1

MIPS Instruction Set 1 Laboratorio di Architettura 8 aprile 2011 1 SPIM 2 Architettura Mips 3 Esercitazione SPIM emulatore software architettura MIPS R2000/R3000 debugger + servizi base di sistema operativo realizzazione/verifica

Подробнее

Architettura dei Calcolatori elettronici

Architettura dei Calcolatori elettronici Architettura dei Calcolatori elettronici CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Dal punto di vista architetturale un calcolatore

Подробнее

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Подробнее

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA Lezione n.11 n.11 Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di base relativi

Подробнее

Gestione Degli INTERRUPT

Gestione Degli INTERRUPT Gestione Degli INTERRUPT Il PIC 16F876 possiede vari tipi di Interrupt. Si parla di 14 differenti sorgenti di interrupt, ma molto facilmente nella programmazione se ne terranno in considerazione ben pochi:

Подробнее

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly Introduzione al linguaggio macchina Indice Che cos è l assembly Elementi del linguaggio Memoria di programma Registri interni e di I/O Registri particolari Rappresentazione dell

Подробнее

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale

Подробнее

Laboratorio di Architettura lezione 5. Massimo Marchiori W3C/MIT/UNIVE

Laboratorio di Architettura lezione 5. Massimo Marchiori W3C/MIT/UNIVE Laboratorio di Architettura lezione 5 Massimo Marchiori W3C/MIT/UNIVE Da Alto a Basso livello: compilazione Come si passa da un linguaggio di alto livello a uno di basso livello? Cioe a dire, come lavora

Подробнее

Parametri Formali di una Funzione e Record di Attivazione

Parametri Formali di una Funzione e Record di Attivazione Parametri Formali di una Funzione e Attivazione Un record di attivazione rappresenta il mondo di una funzione, e contiene tutto ciò che ne caratterizza l esistenza, tra cui ad esempio: le variabili locali

Подробнее

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Подробнее

Laboratorio di Architettura degli Elaboratori

Laboratorio di Architettura degli Elaboratori Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni

Подробнее

Il simulatore SPIM SPIM

Il simulatore SPIM SPIM Il simulatore SPIM Architetture dei Calcolatori (lettere A-I) SPIM SPIM: un simulatore per eseguire programmi assembler scritti per processori MIPS32 Download e materiale relativo alla pagina Web http://www.cs.wisc.edu/~larus/spim.html

Подробнее