Linguaggio Assembly e linguaggio macchina

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

Download "Linguaggio Assembly e linguaggio macchina"

Транскрипт

1 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 L 11 1/38 Sommario! Il linguaggio assembly! Il linguaggio macchina! Insieme delle istruzioni! Formato delle istruzioni! Codifica delle istruzioni! Modalità di indirizzamento L 11 2/38

2 Linguaggio C: esempio main() { int i; int sum = 0; for (i = 0; i <= 100; i = i + 1) sum = sum + i*i; } printf( La somma da 0 a 100 è %d\n, sum); L 11 3/38 Linguaggio assembly: esempio.text.align 2.globl main main: subu $sp, $sp, 32 sw $ra, 20($sp) sw $a0, 32 ($sp) sw $0, 24($sp) sw $0, 28($sp) loop: lw $t6, 28($sp) lw $t8, 24($sp) mult $t4, $t6, $t6 addu $t9, $t8, $t4 addu $t9, $t8, $t7 sw $t9, 24($sp) addu $t7, $t6, 1 sw $t7, 28($sp) bne $t5, 100, loop L 11 4/38

3 Codifica binaria: esempio MIPS: istruzioni di 32 bit: 00: : : C: : : : L 11 5/38 Linguaggio Assembly! ASSEMBLY: rappresentazione simbolica del linguaggio macchina " Vero e proprio linguaggio di programmazione " Più comprensibile del linguaggio macchina in quanto utilizza simboli invece che sequenze di bit! Rispetto ai linguaggi ad alto livello " Linguaggio target nella compilazione di programmi in linguaggi ad alto livello (es: C, C++, Pascal, ) " Assembly fornisce limitate forme di controllo del flusso " non prevede articolate strutture dati! SVANTAGGI: " Mancanza di portabilità dei programmi " Maggiore lunghezza e difficoltà di comprensione! VANTAGGI: visibilità diretta dell hardware # Massimo sfruttamento delle potenzialità HW della macchina # Ottimizzazione delle prestazioni L 11 6/38

4 Assembly come linguaggio di programmazione LIMITI:! Le strutture di controllo hanno forme limitate! Pochi tipi di dati: interi, virgola mobile, caratteri! Gestione delle strutture dati e delle chiamate a procedura deve essere fatta in modo esplicito dal programmatore! In alcune applicazioni conviene un approccio ibrido: " le parti più critiche del programma sono scritte in Assembly (per massimizzare le prestazioni) " le altre sono scritte in un linguaggio ad alto livello (prestazioni dipendono dalle capacità di ottimizzazione del compilatore) " Esempio: sistemi embedded, applicazioni in tempo reale " COMPILATORI: sistemi automatici di traduzione da linguaggio ad alto livello ad assembly/codice binario L 11 7/38 Fase di compilazione da C ad assembly Programma in linguaggio ad alto livello (C) n_maschi = n_maschi + nuovomaschio n_femmine = n_femmine + nuovafemmina n_personepereta = n_persone[eta] Compilatore Programma in linguaggio assembly (MIPS) add $2, $2, $4 add $3, $3, $2 lw $15, 4($2) L 11 8/38

5 Compilazione: da C ad assembly MIPS! Si consideri il seguente segmento di programma C: " utilizza 5 variabili: f, g, h, i, j f = (g + h) (i + j)! Il compilatore associa ad un istruzione C complessa istruzioni assembly a tre operandi e introduce due variabili temporanee (t0 e t1) add t0, g, h add t1, i, j sub f, t0, t1 # var. temp. t0! g + h # var. temp. t1! i + j # f! t0 t1 L 11 9/38 Sommario! Il linguaggio assembly! Il linguaggio macchina! Insieme delle istruzioni! Formato delle istruzioni! Codifica delle istruzioni! Modalità di indirizzamento L 11 10/38

6 Linguaggio macchina Linguaggio macchina: il linguaggio di programmazione direttamente comprensibile dalla macchina " Alfabeto binario (alfabeto posizionale) " Parole sono le istruzioni " Vocabolario è l insieme delle istruzioni (Instruction Set) L 11 11/38 Da assembly a linguaggio macchina! Compilazione effettuata dall ASSEMBLER Programma in linguaggio assembly (MIPS) add $2, $4, $2 add $3, $3, $2 lw $15, 4($2) Assembler Programma in linguaggio macchina L 11 12/38

7 Linguaggio macchina: architettura! Ogni architettura di processore ha il proprio linguaggio macchina " Architettura definita dall insieme delle istruzioni " Due processori con la stessa architettura hanno lo stesso linguaggio macchina anche se le implementazioni hardware possono essere diverse! ISA (Instruction Set Architecture) L insieme delle istruzioni-macchina eseguibili da una architettura di processore. L 11 13/38 Sommario! Il linguaggio assembly! Il linguaggio macchina! Insieme delle istruzioni (ISA)! Formato delle istruzioni! Codifica delle istruzioni! Modalità di indirizzamento L 11 14/38

8 Insieme delle istruzioni: ISA software instruction (ISA) hardware Quale è più facile modificare? L 11 15/38 L insieme delle istruzioni (ISA)! Le istruzioni del linguaggio macchina di ogni calcolatore possono essere classificate nelle seguenti! Quattro categorie: 1. Istruzioni aritmetico-logiche; 2. Istruzioni di trasferimento da/verso la memoria; 3. Istruzioni di salto condizionato e non condizionato per il controllo del flusso di programma; 4. Istruzioni di trasferimento in ingresso/uscita (I/O). L 11 16/38

9 Trasferimento da/verso memoria! ESECUZIONE istruzione LOAD/STORE: 1. Trasferire l istruzione dalla memoria alla CPU 2. Operandi e risultati delle istruzioni devono essere trasferiti tra memoria e CPU! Necessarie diverse modalità di trasferimento di dati/istruzioni tra memoria e registri della CPU: " load (caricamento) o fetch (prelievo) o read (lettura) " store (memorizzazione) o write (scrittura) L 11 17/38 Istruzioni aritmetiche! Ogni istruzione aritmetica ha un numero prefissato di operandi " generalmente tre! L ordine degli operandi è fisso: " Prima il risultato (registro destinazione) " Poi i due operandi (registri sorgente) " In alcuni casi il registro destinazione è implicito (es. moltiplicazione e divisione non floating point) L 11 18/38

10 Istruzioni di salto (condizionato e non)! ESECUZIONE Nel registro contatore di programma (PC Program Counter) viene caricato l indirizzo di salto " invece dell indirizzo seguente secondo l ordine sequenziale delle istruzioni.! Istruzioni di salto condizionato (branch): " il salto viene eseguito solo se una certa condizione risulta soddisfatta.! Istruzioni di salto incondizionato (jump): " il salto viene sempre eseguito. L 11 19/38 Sommario! Il linguaggio assembly! Il linguaggio macchina! Insieme delle istruzioni! Formato delle istruzioni! Codifica delle istruzioni! Modalità di indirizzamento L 11 20/38

11 MIPS: architettura RISC! Caratteristiche principali di ISA di tipo RISC: " Istruzioni dell ISA eseguite direttamente dall hardware " Massimizzazione della velocità di completamento delle istruzioni " Istruzioni facili da decodificare poche, poco varie, tutte di uguale lunghezza Accesso alla memoria solo con istruzioni dedicate di caricamento/memorizzazione (load/store) Gli operandi di un istruzione devono sempre risiedere nei registri del processore. L 11 21/38 I registri! Il compilatore associa le variabili di programma a registri! Un processore possiede un numero limitato di registri " MIPS: 32 registri di 32-bit (register file)! Per convenzione si usano nomi simbolici preceduti da $ per denotare i registri, ad esempio: $s0,$s1,...,$s7 $t0, $t1,... $t9 Per indicare variabili Indica variabili temporanee! I registri possono essere anche direttamente indicati mediante il loro numero (0,, 31) preceduto da $: ad es. $0, $1,,, $31 L 11 22/38

12 MIPS: Convenzioni d uso dei registri Nome Numero Utilizzo $zero 0 costante zero $at 1 riservato per l assemblatore $v0-$v1 2-3 valori di ritorno di una procedura $a0-$a3 4-7 argomenti di una procedura $t0-$t registri temporanei (non salvati) $s0-$s registri salvati $t8-$t registri temporanei (non salvati) $k0-$k gestione delle eccezioni $gp 28 puntatore alla global area (dati) $sp 29 stack pointer $s8 30 registro salvato (fp) $ra 31 indirizzo di ritorno L 11 23/38 Registri speciali MIPS! Registri special purpose, per l esecuzione di operazioni particolari:! MIPS: 32 registri per le operazioni floating point (in virgola mobile) $f0,, $f31 " Per le operazioni in doppia precisione si usano registri contigui: $f0, $f2, $f4, L 11 24/38

13 Compilazione C! Assembly usando i registri! Si consideri il seguente segmento di programma C che utilizza 5 variabili: f = (g + h) (i + j)! Il compilatore associa alle variabili presenti nel programma i registri presenti nella CPU. " Ad es: variabili f, g, h, i e j associate ai registri $s0, $s1, $s2, $s3, $s4! Il compilatore introduce due variabili temporanee (t0 e t1) che associa a due registri temporanei $t0 e $t1: add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1 # var. temp. t0! g + h # var. temp. t1! i + j # f! t0 t1 L 11 25/38 Formato di un istruzione Ciclo di esecuzione di un istruzione Fase di fetch Decodifica Esecuzione Lettura / scrittura Formato e codifica di un istruzione " Tipo e dimensione istruzione " Posizione degli operandi e risultato " Tipo e dimensione dei dati " Operazioni consentite Write back L 11 26/38

14 Formato delle istruzioni MIPS! Tutte le istruzioni MIPS hanno la stessa dimensione: 32 bit " I 32 bit hanno un significato diverso a seconda del formato (o tipo) di istruzione " il tipo di istruzione è riconosciuto in base al valore di alcuni dei bit più significativi (6 bit: codice operativo - OPCODE)! Le istruzioni MIPS sono di 3 tipi! 3 formati " Tipo R (register) Istruzioni aritmetico-logiche " Tipo I (immediate) Istruzioni di accesso alla memoria o contenenti delle costanti " Tipo J (jump) Istruzioni di salto L 11 27/38 I tipi di istruzione MIPS! Tipi di istruzioni " Istruzioni aritmetico-logiche " Istruzioni di trasferimento dati " Istruzioni di salto L 11 28/38

15 Istruzioni aritmetico-logiche! MIPS: un istruzione aritmetico-logica possiede tre operandi: " due registri contenenti i valori da elaborare (registri sorgente) " il registro contenente il risultato (registro destinazione)! L ordine degli operandi è fisso " Prima il registro contenente il risultato, poi i due operandi! Struttura istruzione assembly: codice operativo e tre campi relativi ai tre operandi: OPCODE DEST, SORG1, SORG2 32 bit L 11 29/38 Istruzione add! add : somma add rd, rs, rt " somma il contenuto di due registri sorgente rs e rt " e mette la somma nel registro destinazione: rd add rd, rs, rt # rd " rs + rt Opcode (6 bit) L 11 30/38

16 Istruzione sub sub: Sottrazione sub rd rs rt! sottrae il contenuto di due registri sorgente rs e rt! e mette la differenza nel registro destinazione rd sub rd, rs, rt # rd " rs - rt Opcode (6 bit) L 11 31/38 Istruzioni aritmetico-logiche! Operazioni con un numero di operandi maggiore di tre devono essere scomposte in operazioni più semplici " Ad esempio, per eseguire la somma delle variabili b,c,d,e nella variabile a servono tre istruzioni: Codice C: A = B + C + D + E Assembly MIPS: add $t0, $s1, $s2 add $t0, $t0, $s3 add $s0, $t0, $s4 L 11 32/38

17 add: varianti addi $s1, $s2, 100 #add immediate " Somma una costante: il valore del secondo operando (ultimi 16 bit) è presente nell istruzione come costante e sommata considerando il segno addu $s0, $s1, $s2 #add unsigned " La somma viene eseguita tra numeri senza segno addiu $s0, $s1, 100 #add immediate unsigned " Somma una costante L 11 33/38 Moltiplicazione! Due istruzioni: mult rs rt multu rs rt # unsigned! Il registro destinazione è implicito. " Il risultato della moltiplicazione viene posto sempre in due registri dedicati (special purpose): hi (high-order word) lo (low-order word) " La moltiplicazione di due numeri di 32 bit dà come risultato un numero rappresentabile in 64 bit L 11 34/38

18 Moltiplicazione! Il risultato della moltiplicazione si preleva dal registro hi e dal registro lo utilizzando le due istruzioni: mfhi rd mflo rd # move from hi: rd $ hi # move from lo: rd $ lo L 11 35/38 Divisione! Due istruzioni: div rs rt divu rs rt # divide rs per rt # unsigned! Come nella moltiplicazione, anche nella divisione il registro destinazione è implicito. " Quoziente della divisione nel registro lo " Resto è posto nel registro hi L 11 36/38

19 Pseudoistruzioni! Per semplificare la programmazione, MIPS fornisce un insieme di pseudoistruzioni! Modo compatto ed intuitivo di specificare un insieme di istruzioni assembly elementari " Non hanno un corrispondente 1 a 1 con le istruzioni dell ISA. " Traduzione della pseudoistruzione nelle istruzioni equivalenti viene attuata automaticamente dall assembler L 11 37/38 Esempio move $t0, $t1 add $t0, $zero, $t1 mul $s0, $t1, $t2 mult $t1, $t2 mflo $s0 div $s0, $t1, $t2 div $t1, $t2 mflo $s0 # t0 $ t1 # s0 $ t1*t2 # s0 $ t1/t2 L 11 38/38

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

Подробнее

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

Подробнее

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

Подробнее

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Подробнее

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):

Подробнее

Lezione4: MIPS e Istruzioni (1 Parte)

Lezione4: MIPS e Istruzioni (1 Parte) Architettura degli Elaboratori Lezione4: MIPS e Istruzioni (1 Parte) Michele Nappi [email protected] http://www.biplab.unisa.it/ Alcune slide di questa lezione sono prodotte dal Prof. Luigi Palopoli AGENDA

Подробнее

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

Подробнее

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H Architettura dei calcolatori e sistemi operativi Il processore Capitolo 4 P&H 4. 11. 2015 Sommario Instruction Set di riferimento per il processore Esecuzione delle istruzioni Struttura del processore

Подробнее

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Salvatore Orlando Arch. Elab. - S. Orlando 1 Livelli di astrazione Scendendo di livello, diventiamo più concreti e scopriamo

Подробнее

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da

Подробнее

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini [email protected] Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità

Подробнее

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

Подробнее

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

Подробнее

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente

Подробнее

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A. < < } } Lezione 5 e 6 Accesso a memoria A questo livello di astrazione, la memoria viene vista come un array di byte Per ogni richiesta di un dato ad un certo indirizzo, la CPU ottiene un numero di byte

Подробнее

Il processore: unità di controllo

Il processore: unità di controllo Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Подробнее

Modi di indirizzamento

Modi di indirizzamento Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 2 Indirizzamento immediato L operando

Подробнее

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Подробнее

Architettura di una CPU

Architettura di una CPU Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1

Подробнее

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Istruzioni del processore Abbiamo visto in precedenza alcuni esempi di istruzioni

Подробнее

I Linguaggi di Programmazione

I Linguaggi di Programmazione I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Подробнее

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly PH 2.3 (continua) 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Istruzioni logiche 2 1 La memoria del MIPS I contenuti delle locazioni di memoria

Подробнее

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Подробнее

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

Подробнее

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

Подробнее

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani ([email protected])

Подробнее

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Подробнее

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Подробнее

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

Подробнее

Linguaggi, compilatori e interpreti

Linguaggi, compilatori e interpreti Linguaggi, compilatori e interpreti 1 Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 001000100011

Подробнее

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini [http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a. 2006-2007 Docente: H. Muccini Lecture 12: - Numeri con segno -Somma e sottrazione

Подробнее

Progetto CPU (ciclo singolo) Salvatore Orlando

Progetto CPU (ciclo singolo) Salvatore Orlando Progetto CPU (ciclo singolo) Salvatore Orlando Arch. Elab. - S. Orlando 1 Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Semplificato in modo

Подробнее

Corso di Laurea in Informatica

Corso 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

Подробнее

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Подробнее

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 Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin ORGANIZZAZIONE DEL CALCOLATORE:

Подробнее

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

Подробнее

Lezione 17: Indirizzamento della memoria LC-3

Lezione 17: Indirizzamento della memoria LC-3 Lezione 17: Indirizzamento della memoria LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 22 Maggio 2013 Riassunto sull architettura LC-3 1. Organizzazione della memoria: La memoria è composta

Подробнее

Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0

Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0 Fondamenti Teorici Antonio Pescapè e Marcello Esposito Parte Seconda v2.0 Agenda Modello di Von Neumann Algoritmo del Processore Linguaggio Macchina e Linguaggio Assembler Hardware e Software Compilatori

Подробнее

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento Architettura degli Elaboratori, a.a. 2005-06 Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento Esercizio 1 (svolto) a) Compilare in assembler Risc (Cap. V) un programma

Подробнее

Implementazione semplificata

Implementazione semplificata Il processore 168 Implementazione semplificata Copre un sottoinsieme limitato di istruzioni rappresentative dell'isa MIPS aritmetiche/logiche: add, sub, and, or, slt accesso alla memoria: lw, sw trasferimento

Подробнее

Le costanti Le modalità di indirizzamento L assembly del MIPS

Le costanti Le modalità di indirizzamento L assembly del MIPS Le costanti Le modalità di indirizzamento L assembly del MIPS Prof. Alberto Borghese Dipartimento di Scienze dell Informazione [email protected] Università degli Studi di Milano 1/45 Sommario Le costanti

Подробнее

Il Software programmabili programma algoritmo

Il Software programmabili programma algoritmo Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia

Подробнее

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

Подробнее

Lezione 12: L architettura LC-3

Lezione 12: L architettura LC-3 Lezione 12: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 24 Maggio 2012 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Подробнее

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU: Struttura e Funzione del Processore Capitolo 12 Struttura CPU Compiti CPU: Prelevare istruzioni Interpretare istruzioni Prelevare dati Elaborare dati Scrivere (memorizzare) dati 1 CPU con bus di sistema

Подробнее

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Подробнее

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

Подробнее

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Подробнее

Assembler MIPS R2000/3000

Assembler MIPS R2000/3000 TITLE Assembler MIPS R2000/3000 Alberto Montresor Programma delle lezioni! Introduzione ai concetti di assembler, compilatore, linker, programma eseguibile! Introduzione all assembly Sintassi del linguaggio

Подробнее

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici ISA di riferimento: MIPS Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello funzionale Livello logico Livello circuitale Livello del layout istruzioni macchina, ISA Reti logiche:

Подробнее

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché

Подробнее

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann Elementi di Informatica e Programmazione Architettura del calcolatore (prima parte) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Problema:

Подробнее

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Il Modello di von Neumann (2) Prevede 3 entità logiche: Introduzione all Architettura degli Elaboratori Sommario Macchina di von Neumann Esecuzione dei programmi Rappresentazione dei dati Dati numerici Dati alfabetici 1 2 Il Modello di von Neumann (1) L architettura

Подробнее

L architettura di riferimento

L architettura di riferimento Architetture degli elaboratori e delle reti Lezione 10 L architettura di riferimento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 10 1/27

Подробнее

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Подробнее

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER 1 STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER Un computer e una macchina che riceve in ingresso delle informazioni, le elabora secondo un determinato procedimento e produce dei risultati che vengono

Подробнее