Corso di. Stack: Procedure e variabili locali. Architetture degli Elaboratori. Uno stack anche per i calcoli. Lo stack di esecuzione
|
|
- Bruno Pieri
- 4 anni fa
- Visualizzazioni
Transcript
1 Corso di Architettura degli Elaboratori Il livello della microarchitettura: l'isa IJVM Stack: Procedure e variabili locali ambiente di esecuzione procedura A variabili locali di A variabili locali di B ambiente di esecuzione procedura B chiamata da A proc. B var di B proc. B var di B proc. A var di A variabili locali di B ambiente di esecuzione procedura B chiamata ricorsivamente Procedure (metodi) e variabili locali Chiamata di una procedura come apertura di un nuovo ambiente Chiamate ricorsive Le variabile locali esistono fintanto che la procedure è in esecuzione Usare uno stack di ambienti! i 2 Lo stack di esecuzione record di attivazione Uno stack anche per i calcoli Non vengono assegnati indirizzi assoluti alle variabili locali ma solo relativi (offset) alla base del record di attivazione Un registro () punterà sempre alla base del record di attivazione della procedura (metodo) in esecuzione Un registro () punterà sempre al top dello stack La struttura a stack, come visto con la RPN, può essere utilizzata in modo proficuo anche per tenere gli operandi durante il calcolo di una espressione aritmetica (operand stack) Lo stack di esecuzione e gli operand stack possono coesistere Macchina a zero indirizzi 3 4
2 IJVM: organizzazione della memoria ISA di IJVM (I) CPP PC Constant pool: caricato quando un programma viene portato in memoria, read-only, contiene costanti, stringhe, puntatori ad altre aree, registro CPP Stack di esecuzione: registro Operand stack: registro Area dei metodi (codice): registro PC CPP,, sono puntatori a parole (di 4 bytes), PC a byte Insieme di 20 istruzioni Ciascuna costituita da un codice operazione (opcode) ed eventualmente un operando (memory offset oppure costante) Tipi di istruzioni: Push di una parola da varie sorgenti sullo stack (LDC_W, ILOAD, BIPUSH) Pop di una parola dallo stack ed eventuale suo caricamento nello local variable frame (POP, ISTORE) Operazioni aritmetiche e logiche (IADD,,IAND, IOR) Istruzioni di branching condizionale e non (IFEQ,IFLT,IF_ICMPEQ, GOTO) 5 6 ISA di IJVM (II) ISA di IJVM (III) Tipi di istruzioni: Scambio delle due parole in cima allo stack (SWAP) Duplicazione della parola in cima allo stack (DUP) Conversione di formato istruzione di prefix (WIDE) Chiamata di un metodo (INVOKEVIRTUAL) Ritorno da un metodo (IRETURN) NOP Aggiunta di una costante ad una variabile locale (INCC) BIPUSH byte INVOKEVIRTUA DUP IOR L disp GOTO offset IRETURN IADD ISTORE varnum IAND IFEQ offset LDC_W index IINC IF_ICMPEQ IFLT offset varnum offset const POP NOP SWAP ILOAD varnum WIDE 7 8
3 Da codice Java a IJVM: esempio i = j + k; if (i == 3) k = 0; else j = j - ; ILOAD j 2 ILOAD k 3 IADD 4 ISTORE i 5 ILOAD i 6 BIPUSH 3 7 IF_ICMPEQ L 8 ILOAD j BIPUSH 0 ISTORE j 2 GOTO L2 3 L: BIPUSH 0 4 ISTORE k 5 L2: Nota le istruzioni sono in notazione polacca inversa Per l'esecuzione di sfrutta l'operand stack ISA IJVM vs ISA JVM javac Prova.java javap -c Prova class Prova { public static void main(string args[]) { int i=0, j=0,k=0; i = j + k; if (i == 3) k = 0; else j = j - ; } } Compiled from Prova.java class Prova extends java.lang.object { Prova(); public static void main(java.lang.string[]); } Method Prova() 0 aload_0 invokespecial # <Method java.lang.object()> 4 return Method void main(java.lang.string[]) 0 iconst_0 istore_ 2 iconst_0 3 istore_2 4 iconst_0 5 istore_3 6 iload_2 7 iload_3 8 iadd istore_ 0 iload_ iconst_3 2 if_icmpne 20 5 iconst_0 6 istore_3 7 goto iload_2 2 iconst_ 22 isub 23 istore_2 24 return ILOAD j 2 ILOAD k 3 IADD 4 ISTORE i 5 ILOAD i 6 BIPUSH 3 7 IFICMPEQ L 8 ILOAD j BIPUSH 0 ISTORE j 2 GOTO L2 3 L: BIPUSH 0 4 ISTORE k 5 L2: 0 ISA IJVM: INVOKEVIRTUAL Serve a chiamare un altro metodo (e aprire un nuovo ambiente) L'istruzione alloca lo spazio per il riferimento all'oggetto su cui è invocato il metodo (OBJREF), per i parametri e le variabili locali (PARAMETER,2,3), per l'indirizzo di ritorno del chiamante (Previous PC) e per il puntatore al local frame del chiamante (Previous ) Imposta in nuovo valore di PC al codice del metodo Prima Dopo 2 BIPUSH - BIPUSH -0 BIPUSH La sequenza di istruzioni IJVM chiama un metodo cpm(p, p2) caratterizzato da due parametri che confronta gli stessi e restituisce: - se p < p2; 0 se p = p2; se p > p2. Il metodo viene chiamato sui parametri: p= - e p2= -0 quindi ci aspettiamo che ritorni il valore Situazione stack prima della chiamata: Il main è la procedura corrente
4 BIPUSH - BIPUSH -0 BIPUSH Viene caricato il parametro implicito del metodo dal constant pool: objref punta all'oggetto su cui è invocato il metodo, questo viene fatto solo per coerenza con JVM ma non serve in questa implementazione di IJVM BIPUSH - BIPUSH -0 BIPUSH Viene caricato il primo parametro: p= - objref - objref 3 4 BIPUSH - BIPUSH -0 BIPUSH Viene caricato il secondo parametro: p2= objref BIPUSH - BIPUSH -0 BIPUSH Viene invocato il metodo cmp(-, -0) -0 - objref 5 6
5 .method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Viene preparata l'esecuzione del metodo, allocato lo spazio per i parametri locali (), salvato l'indirizzo dell'istruzione successiva alla chiamata del metodo (ind. di ritorno) e il valore del registro (base pointer del chiamante), sovrascritto objref con un puntatore all indirizzo di ritorno -0 -.method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Caricamento del valore del primo parametro p= method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Caricamento del valore del secondo parametro p2= method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Calcolo della differenza tra i due valori sul top dello stack -0-20
6 .method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Memorizzazione del valore contenuto nel top dello stack nella variabile locale : -0 -.method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Caricamento del valore di sullo stack ind ritorno : method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Test se il top dello stack è negativo: se così si salta a lt altrimenti si continua in sequenza : -0 -.method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Caricamento del valore di sullo stack :
7 .method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Test se il top dello stack è uguale a zero: se così si salta a eq altrimenti si continua in sequenza : -0 -.method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - In questo caso il top dello stack è positivo: si continua in sequenza. Memorizzazione della costante nel top dello stack. : method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Istruzine di salto incondizionato: Sul top dello stack è contenuto il valore di ritorno del metodo ind.ritorno : -0 - ISA IJVM: IRETURN Serve per uscire da un metodo restituendo il controllo al chiamante Disalloca lo spazio dello stack riservato durante la INVOKEVIRTUAL Riporta ai valori del chiamante i registri e PC Push del valore di ritorno sul top dello stack 27 28
8 IRETURN: dettaglio IRETURN: dettaglio.method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Ritorno al chiamante (main) : -0 -.method cmp(p,p2) ILOAD p ISTORE ILOAD ILOAD gt: BIPUSH lt: BIPUSH - Ripristino dei valori dei registri e, il top dello stack contiene il valore di ritorno, ripristino del valore di PC e ritorno all'istruzione successiva della chiamata del metodo stesso : IRETURN: dettaglio IRETURN: dettaglio BIPUSH - BIPUSH -0 BIPUSH Memorizzazione della costante nel top dello stack. BIPUSH - BIPUSH -0 BIPUSH Test di uguaglianza dei due valori sul top dello stack: se sono uguali salto a EQ 3 32
Procedure e variabili locali. Corso di Architettura degli Elaboratori. Uno stack anche per i calcoli. Lo stack di esecuzione
Corso di Architettura degli Elaboratori Il livello della microarchitettura: l'isa IJVM Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 85 I-04 Torino baldoni@di.unito.it http://www.di.unito.it/
DettagliIJVM 2/2. Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006
Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006 IJVM 2/2 Prof. Mario Cannataro Università degli Studi Magna Graecia di Catanzaro 17.05.2006 1 Indice Riepilogo
DettagliIJVM. Danilo Dessì. Architettura degli Elaboratori.
IJVM Architettura degli Elaboratori Danilo Dessì danilo_dessi@unica.it Instruction set Istruzioni di salto BRANCH Istruzione GOTO label IFEQ label IFLT label IF_ICMPEQ label Significato Salta in modo incondizionato
DettagliCORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM
UNIVERSITÀ DEGLI STUDI DI CAGLIARI Facoltà di Scienze Corso di Laurea in Informatica CORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM Danilo Dessì danilo_dessi@unica.it Instruction set Istruzioni
DettagliContenuto della lezione
Contenuto della lezione Come scrivere un programma IJVM Costanti Metodo MAIN Metodi Variabili locali Etichette Commenti I/O Alcuni esempi Costanti globali Sono dichiarate in una sezione all inizio del
DettagliContenuto della lezione
Contenuto della lezione Come scrivere un programma IJVM Costanti Metodo MAIN Metodi Variabili locali Etichette Commenti I/O Alcuni esempi Problema numero 6 Supporre di avere sullo stack una sequenza di
DettagliAssembler MIPS R2000/3000 Progetto
TITLE Assembler MIPS R2000/3000 Progetto Riccardo Solmi 1 Introduzione Scopo del progetto Utilizzare l assembly MIPS per realizzare un programma complesso Prendere confidenza con l architettura degli elaboratori
Dettagli06 Livello di micro architettura
Livello di micro architettura Pagina 2 Introduzione il livello di micro architettura implementa le funzioni del livello sovrastante (ISA) come livello ISA di riferimento si sceglie una parte della JVM
DettagliMAL. Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006
Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006 MAL Prof. Mario Cannataro Università degli Studi Magna Graecia di Catanzaro 24.05.2006 1 Sommario 1. Introduzione
DettagliIJVM. Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006
Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006 IJVM Prof. Mario Cannataro Università degli Studi Magna Graecia di Catanzaro 03.05.2006 1 Indice Data
DettagliMicroarchitettura. Giacomo Fiumara Anno Accademico / 101
Microarchitettura Giacomo Fiumara gumara@unime.it Anno Accademico 2014-2015 1 / 101 Introduzione 2 / 101 Introduzione Il livello di micro-architettura implementa le funzioni del livello sovrastante ISA
DettagliCorso di Laurea in Informatica Architetture degli Elaboratori
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 7 luglio 2005 Esercizio 1 (punti 2) Considerare la rappresentazione dei numeri relativi su 10 bit in complemento a
DettagliCorso di Laurea in Informatica Architetture degli Elaboratori
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Esonero del 7 luglio 2005 Esercizio 1 (punti 4) Le seguenti microistruzioni implementano l istruzione IJVM IINC varnum const che
DettagliLa microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1
La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.
DettagliIl livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU.
Il livello della microarchitettura descrive il funzionamento interno di una CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) vengono interpretate ed eseguite dall hardware (livello
DettagliCorso di Laurea in Informatica Architetture degli Elaboratori
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 3 aprile 2006 Esercizio 1 (punti 3) Considerare una codifica su 8 bit in complemento a due e rappresentare i seguenti
DettagliCorso di Laurea in Informatica
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 18 gennaio 2007 Si ricorda che non è possibile usare appunti, calcolatrici, e nessun altro materiale cartaceo o elettronico.
DettagliCorso di Laurea in Informatica
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 13 dicembre 2006 Si ricorda che non è possibile usare appunti, calcolatrici, e nessun altro materiale cartaceo o elettronico.
DettagliPolitecnico di Milano Dipartimento di Elettronica e Informazione. Cognome Nome
Politecnico di Milano Dipartimento di Elettronica e Informazione prof. Cesare Alippi prof.ssa Anna Antola prof. Luciano Baresi prof. Luca Breveglieri prof. Luigi Lavazza prof. Giuseppe Pelagatti prof.ssa
DettagliIl linguaggio assembly
Il linguaggio assembly Chiamata a procedura PH cap. 2.7 e app. A.6 1 Chiamata a procedura in C int prod (int x, int y) { int out; out = x * y; return out; } f = f + 1; if (f == g) res = prod(f,g); else
DettagliMAL (Micro Assembly Language) Corso di Architettura degli Elaboratori. Un esempio. Cycle 1: Via!
Corso d Archtettura degl Elaborator Il lvello della mcroarchtettura: l mcroprogramma per l Mc-1 che mplementa IJVM (un esempo) Dpartmento d Informatca Unverstà degl Stud d Torno C.so Svzzera, 185 I-10149
DettagliLe procedure. L insieme delle istruzioni (4) Prima della chiamata di una procedura. Le procedure (2) Architetture dei Calcolatori (lettere A-I)
Le procedure L insieme delle istruzioni (4) Architetture dei Calcolatori (lettere A-I) In ogni linguaggio di programmazione si struttura il proprio codice usando procedure (funzioni, metodi, ) L utilizzo
DettagliCORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM
UNIVERSITÀ DEGLI STUDI DI CAGLIARI Facoltà di Scienze Corso di Laurea in Informatica CORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM Danilo Dessì danilo_dessi@unica.it Sezioni di un programma IJVM
DettagliCorso di Laurea in Informatica Architetture degli Elaboratori
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 6 dicembre 2005 Esercizio 1 (punti -1, 2) Considerare una codifica su 8 bit in complemento a due e rappresentare i
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:
DettagliInteger Java Virtual Machine (IJVM)
Integer Java Virtual Machine (IJVM) Calcolatori Elettronici II Prof. Antonino Mazzeo mazzeo@unina.it Ing. Luigi Romano Ing. Alessandro Cilardo Ing. Luigi Coppolino lrom@unina.it acilardo@unina.it lcoppoli@unina.it
DettagliConvenzioni di chiamata a procedure
Università degli Studi di Milano Laboratorio di Architettura degli Elaboratori II Corso di Laurea in Informatica, A.A. 2016-2017 Convenzioni di chiamata a procedure Nicola Basilico Dipartimento di Informatica
DettagliConvenzioni per la chiamata a procedure
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Convenzioni per la chiamata a procedure Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico
DettagliAssembly IV Le procedure
rchitettura degli Elaboratori e delle Reti Lezione 14 ssembly IV Le procedure Proff.. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano (Patterson-Hennessy:
DettagliCorso di Laurea in Informatica Architetture degli Elaboratori
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 12 settembre 2005 Esercizio 1 (punti -1, 4) Considerare la rappresentazione in complemento a due del numero decimale
Dettagli15 April LABORATORIO 04 PROCEDURE STACK. CHIAMATA A PROCEDURE I. Frosio
15 April 2011 05 LABORATORIO 04 PROCEDURE STACK CHIAMATA A PROCEDURE I. Frosio 1 SOMMARIO Procedure Stack Chiamata a procedure 2 PERCHÈ LE PROCEDURE? 15 April 2011 Main Proc3 Proc2 Proc1 Programmazione
DettagliAssembly (3): le procedure
Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 13 1/23 Chiamata
DettagliCorso di Laurea in Informatica Architetture degli Elaboratori
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 20 dicembre 2005 Esercizio 1 (punti 2) Considerare una codifica su 8 bit in complemento a due e rappresentare i seguenti
DettagliCorso di Laurea in Informatica
Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 13 Dicembre 2004 Esercizio 1 (punti -1, 3) Si consideri l architettura nota come macchina di von Neumann (a) Come le
DettagliProgrammazione Assembly. RISC e CISC Esecuzione sequenziale Esecuzione condizionata Cicli Subroutine
Programmazione Assembly RISC e CISC Esecuzione sequenziale Esecuzione condizionata Cicli Subroutine RISC e CISC Possiamo classificare le architetture di microprocessore in due classi principali RISC CISC
DettagliInteger Java VM: IJVM
Integer Java VM: IJVM Calcolatori Elettronici C.Brandolese Politecnico di Milano Sommario Introduzione Architettura Data Path Stack Modello di Memoria Instruction Set Microarchitettura Il livello microistruzione
DettagliInformatica 2 Prova di lunedì 28 Giugno 2004
Politecnico di Milano Dipartimento di Elettronica e Informazione prof. Cesare Alippi prof.ssa Anna Antola prof. Luciano Baresi prof. Luca Breveglieri Informatica 2 Prova di lunedì 28 Giugno 2004 Matricola
DettagliGli indirizzi occupano spazio! Gli indirizzi occupano spazio! Corso di Architettura degli Elaboratori. Indirizzamento immediato
Corso di Architettura degli Elaboratori Il livelo ISA: modalità di indirizzamento Matteo Baldoni Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it
DettagliInvocazione di funzioni. Passaggio parametri Creazione record di attivazione (anche chiamato stack frame o area di attivazione)
Invocazione di funzioni Passaggio parametri Creazione record di attivazione (anche chiamato stack frame o area di attivazione) Passaggio parametri F(a,b,c) { } Z = g(x, y, z) Record di attivazione o registri
DettagliIstruzioni di controllo del flusso
Istruzioni di controllo del flusso Il flusso di esecuzione è normalmente sequenziale Le istruzioni di controllo cambiano la prossima istruzione da eseguire Istruzioni di salto condizionato branch if equal
DettagliGestione della memoria in Java. Emilio Di Giacomo e Walter Didimo
Gestione della memoria in Java Emilio Di Giacomo e Walter Didimo Gestione della memoria In questa lezione descriveremo un modello runtime (cioè a tempo di esecuzione) di gestione della memoria in Java
DettagliArchitettura dei calcolatori e sistemi operativi. Sottoprogrammi e MIPS. Espressioni algebriche. Capitolo 2 P&H
Architettura dei calcolatori e sistemi operativi Sottoprogrammi e MIPS Espressioni algebriche Capitolo 2 P&H Sottoprogrammi Modello di chiamata Area di attivazione Calcolare un espressione algebrica 2
DettagliArchitetture dei Calcolatori
Architetture dei Calcolatori Lezione 8 -- 01/12/2011 Procedure Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Create da: F. Lo Presti Modificate da: E.Casalicchio Le procedure q In ogni linguaggio
Dettagli7 - 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
DettagliIstruzioni 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:
DettagliIl livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU.
Il livello della microarchitettura descrive il funzionamento interno di una CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) vengono interpretate ed eseguite dall hardware (livello
Dettagli! Intro metodi/sottoprogrammi. ! Definizione (intestazione e corpo) e uso. ! Parametri formali e attuali, associazione
Dove siamo I metodi - II Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 10! Mattoni, Programmazione
DettagliFetch Decode Execute Program Counter controllare esegue prossima
Stored Program Istruzioni sono stringhe di bit Programmi: sequenze di istruzioni Programmi (come i dati) memorizzati in memoria La CPU legge le istruzioni dalla memoria (come i dati) Ciclo macchina (ciclo
DettagliProgrammazione C. Funzioni e procedure: Activation record. passaggio per indirizzo
Programmazione C Funzioni e procedure: passaggio per indirizzo Activation record 2. PASSAGGIO PER INDIRIZZO Dire alla funzione l indirizzo di memoria cui accedere Se occorre passare un array ad una funzione,
DettagliLivello microarchitettura. Corso di. Architetture degli Elaboratori. Central Processing Unit (richiamo) Esempio: una microarchitettura per IJVM
Corso di Architettura degli Elaboratori Livello microarchitettura Il livello della microarchitettura: data path e formato delle microistruzioni Studio del Livello 1: ha il compito di interpretare il livello
DettagliCalcolatori Elettronici Lezione A4 Programmazione a Moduli
Calcolatori Elettronici Lezione A4 Programmazione a Moduli Ing. Gestionale e delle Telecomunicazioni A.A. 2007/08 Gabriele Cecchetti Sommario Programmazione a moduli Programmi con linguaggi misti Tempo
DettagliLa Ricorsione. Prima Parte. Giselda De Vita
La Ricorsione Prima Parte Giselda De Vita Una favola Mia nonna mi raccontava la favola di un re cattivissimo che ogni notte uccideva una sua serva. Una notte una serva furba, prima di essere uccisa, chiese
DettagliAssembly MIPS: le procedure
Architettura degli Elaboratori e delle Reti Assembly MIPS: le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1/40 Chiamata a procedura: esempio
DettagliComunicazioni di servizio. I metodi - II. Dove siamo. Struttura programma Java. Visibilità (scope) Oggi. Stefano Mizzaro 1
Comunicazioni di servizio I metodi - II Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 10 Domani
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliFondamenti di Informatica T. Linguaggio C: Stack e Ricorsione
Linguaggio C: Stack e Ricorsione FUNZIONI: IL MODELLO A RUN-TIME Ogni volta che viene invocata una funzione: si crea di una nuova attivazione (istanza) del servitore viene allocata la memoria per i parametri
DettagliIl 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
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliPOINTERS. Una variabile pointer è una variabile che ha come valore un indirizzo di memoria.
POINTERS Una variabile pointer è una variabile che ha come valore un indirizzo di memoria. Es. Sia y una variabile intera di valore e sia yptr una variabile pointer avente come valore l indirizzo di y.
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliIl 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
DettagliDal linguaggio macchina al linguaggio C
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Università degli Studi di Udine Dal linguaggio macchina al linguaggio C Programma sorgente, compilatore, file oggetto, file eseguibile programma sorgente
DettagliLa Ricorsione. Carla Binucci e Walter Didimo
La Ricorsione Carla Binucci e Walter Didimo Definizione induttiva di funzioni Una funzione definita in modo induttivo è una funzione definita in termini di sé stessa ad esempio la funzione f(n) = n! (fattoriale
DettagliARM: 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
DettagliArchitettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H
Architettura dei calcolatori e sistemi operativi Architettura MIPS e set istruzioni Capitolo 2 P&H Instruction Set Architecture ISA Linguaggio assemblatore e linguaggio macchina ISA processore MIPS Modello
DettagliProgettare l'isa. Progettare l'isa. Corso di Architettura degli Elaboratori. Interpretazione
Corso di Architettura degli Elaboratori Il livelo ISA: ISA IJVM, tipi di dati e formato delle istruzioni Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 I-10149 Torino baldoni@di.unito.it
DettagliJAVA. import java.util.*; #include <stdio.h> public static class test { int variable; private int variable; int main (int argc, char *argv[]) {
JAVA C import javautil*; public static class test { private int variable; public void main (String[] args) { variable = 0; Systemoutprintln( Variable is: + variable); #include int variable; int
DettagliCapitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61
Capitolo 5 Array e collezioni c 2005 Pearson Education Italia Capitolo 5-1 / 61 Sommario: Array e collezioni 1 Array Array di oggetti Lunghezza di un array Accesso agli elementi di un array Array e cicli
DettagliLa Gestione della Memoria. Carla Binucci e Walter Didimo
La Gestione della Memoria Carla Binucci e Walter Didimo Esecuzione di programmi Java L esecuzione di un programma Java richiede: la compilazione del codice Java in bytecode Java (un linguaggio macchina
DettagliSottoprogrammi in linguaggio assembly del Motorola 68000
Sottoprogrammi in linguaggio assembly del Motorola 68000 Daniele Paolo Scarpazza daniele.scarpazza@elet.polimi.it Politecnico di Milano Ultimo aggiornamento: 10 Maggio 2005 Bibliografia Sezioni 4.9, 5.6
DettagliAssembly V: Procedure annidate e recursive
Architettura degli Elaboratori e delle Reti Lezione 15 Assembly V: Procedure annidate e recursive Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
Dettagli3) Descrivere l architettura di un elaboratore tramite astrazione a livelli
Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l
DettagliProgrammazione II. Lezione 7. Daniele Sgandurra 9/11/2010.
Programmazione II Lezione 7 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 9/11/2010 1/24 Programmazione II Lezione 7 9/11/2010 Sommario 1 Gestione della Memoria 2/24 Programmazione II Lezione 7 9/11/2010
DettagliFondamenti di Informatica T. Linguaggio C: Stack e Ricorsione
Linguaggio C: Stack e Ricorsione FUNZIONI: IL MODELLO A RUN-TIME Ogni volta che viene invocata una funzione: si crea di una nuova attivazione (istanza) del servitore viene allocata la memoria per i parametri
DettagliCorso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010
Corso di Laurea in Informatica Applicata Prima Prova di Verifica Intermedia di Programmazione II 1 Dicembre 2010 Istruzioni: scrivere le risposte alle domande negli spazi presenti nel testo e riconsegnare
DettagliFUNZIONI: IL MODELLO A RUN-TIME!
FUNZIONI: IL MODELLO A RUN-TIME! Ogni volta che viene invocata una funzione si crea di una nuova attivazione (istanza) del servitore viene allocata la memoria per i parametri e per le variabili locali
DettagliInterazione con il DOS e il BIOS
Interazione con il DOS e il BIOS ARGOMENTI PRESENTATI IN QUESTI LUCIDI Routine di BIOS e DOS Due modalità diverse di restituire il controllo al DOS L interazione con le routine del DOS: l interrupt 21H
DettagliSommario. Tipo stringa: string. Tipo stringa: stile C. Tipo stringa Tipo booleano
Tipo stringa Tipo booleano Sommario Ricorsione: Definizione Chiamata di funzione Ricorsione in coda Ricorsione non in coda Ricorsionei eccessiva Esempio di ricorsione: ricerca binaria Tipo stringa Il C++
DettagliSubroutine 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
DettagliLe procedure. Architetture dei Calcolatori (Lettere. Le procedure (3) Le procedure (2)
Le procedure Architetture dei Calcolatori (Lettere A-I) Procedure Prof. Francesco Lo Presti In ogni linguaggio di programmazione si struttura il proprio codice usando procedure (funzioni, metodi, ) L utilizzo
DettagliSubroutine 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
DettagliEsonero di Informatica I. Ingegneria Medica
Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l
Dettagli20. Gestione della memoria. Andrea Marongiu Paolo Valente
20. Gestione della memoria Andrea Marongiu (andrea.marongiu@unimore.it) Paolo Valente Classi di memorizzazione Stiamo per vedere la classificazione di un oggetto in funzione del suo tempo di vita In particolare,
DettagliFRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc
44 FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc MODELLO VERILOG DEL PROCESSORE 45 MODELLO VERILOG DEL SISTEMA COMPLETO
DettagliLa struttura delle istruzioni elementari: il linguaggio Macchina. Sommario
La struttura delle istruzioni elementari: il linguaggio Macchina Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul
DettagliIngegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo
Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo In C++ è possibile distinguere due aree distinte di memoria: memoria stack e memoria heap E
DettagliCast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
DettagliFondamenti di Informatica B
Fondamenti di Informatica B Lezione n. 11 Alberto Broggi Gianni Conte A.A. 2005-2006 Fondamenti di Informatica B Lezione n.11n ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO
DettagliFUNZIONI: IL MODELLO A RUN-TIME
FUNZIONI: IL MODELLO A RUN-TIME Ogni volta che viene invocata una funzione si crea di una nuova attivazione (istanza) del servitore viene allocata la memoria per i parametri e per le variabili locali si
DettagliIntroduzione al C. Lez. 2. Funzioni e Puntatori
Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se è solo
DettagliUna microarchitettura per IJVM. Corso di Architettura degli Elaboratori. Architetture degli Elaboratori. Central Processing Unit (richiamo)
Corso di Architettura degli Elaboratori Il livello della microarchitettura: data path e formato delle microistruzioni Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 I-10149
DettagliAllocazione dinamica della memoria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Tipi di memoria dati Nella macchina astratta C esistono tre tipi di memoria per allocare
DettagliFONDAMENTI DI INFORMATICA Lezione n. 11
FONDAMENTI DI INFORMATICA Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di
DettagliLinguaggio 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
DettagliLa ricorsione. Ver Claudio Fornaro - Corso di programmazione in C
La ricorsione Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione in C 2 Divide et impera Metodo di approccio ai problemi che consiste nel dividere il problema dato in problemi più semplici I risultati
DettagliPROGRAMMAZIONE 2 3b.Primi passi in Java. Why Java?
AA 2015-2016 PROGRAMMAZIONE 2 3b.Primi passi in Java Why Java? Java offre tan8ssime cose u8li o Usato a livello industriale o Librerie vas8ssime o Complicato ma necessariamente complicato ObieFvo di Programmazione
Dettagli