LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER"

Transcript

1 LE STRUTTURE IN PROGRAMMAZIONE ASSEMBLER CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II

2 Istruzioni di selezione Linguaggio ad alto livello Assembler MC 68000:. if (espressione) istruzione; istruzione_successiva. istruzione può essere un compound statement. B(NOT condizione) labela istruzione.... labela istruzione_successiva

3 Istruzioni di selezione in assembler Esempio: if (D0 == 5) { D1++; D2=D1; } D2 = D0; Codifica in C CMPI.L #5,D0 ;confr. D0 con 5 BNE SKIP ;salta se D0 5 ADDQ.L #1,D1 ;esegui se D0=5 MOVE.L D1,D2 SKIP MOVE.L D0,D2 Codifica in assembler

4 Istruzioni di selezione in assembler Linguaggio ad alto livello:. if (espressione) istruzione1 else istruzione2 istruzione_successiva Assembler MC 68000: B(NOT condiz.) labela istruzione1 BRA labelb labela istruzione2 labelb istruzione_successiva

5 Istruzioni di selezione in assembler if (D0 < 5) {D0++; } else {D0=0; } D1=D0 Codifica in C CMPI.L #5,D0 *confr. D0 con 5 BHS ELSE *salta se D0 5 ADDQ.L #1,D0 *esegui se D0<5 BRA CONTN *evita ramo ELSE ELSE CLR.L D0 *esegui se D0 5 CONTN MOVE.L D0,D1 *continua Codifica in assembler

6 Strutture iterative in assembler Linguaggio ad alto livello: do istruzione; while (condizione ==TRUE); istruzione_successiva; Assembler MC 68000: labela istruzione Bcc labela istruzione_successiva

7 Strutture iterative in assembler Esempio: calcola 3^N (N>0) senza effettuare il controllo sull'overflow D0=1; D1=1; do { D0=D0*3; D1++; } while (D1<=N); MOVE.B #N,D2 ;D2 = esponente N MOVE.B #1,D1 ;D1 conta le iterazioni MOVE.W #1,D0 ;D0 inizializzato a 1 LOOP MULU.W #3,D0 ;D0 contiene i prodotti parziali ADDQ.B #1,D1 ;il contatore viene incrementato CMP.B D2,D1 ;e confrontato con N BLE LOOP ;itera il ciclo se D1 N MOVE.L D0,VAR ;memorizza il risultato

8 Strutture iterative in assembler Linguaggio ad alto livello: while (condizione == TRUE) istruzione; istruzione_successiva; Assembler MC 68000: labela labelb BRA labelb istruzione Bcc labela istruzione_successiva

9 Strutture iterative in assembler Esempio: calcola 3^N (N 0) senza effettuare il controllo sull'overflow LOOP TEST D0 = 1; D1 = 1; while (D1 <= N) { D0 = D0*3; D1++} MOVE.B #N,D2 ; MOVE.B #1,D1 ; inizializzazioni MOVE.W #1,D0 ; BRA TEST ;va ad effettuare prima il test MULU.W #3,D0 ADDQ.B #1,D1 CMP.B D2,D1 ;se N=0 non viene effettuato BLE LOOP ;alcun ciclo, e D0 contiene 1

10 DBcc Test condition, decrement, and branch DBcc Dn,<label> Dn: registro dati impiegato come contatore di iterazioni a decrescere. label: associata alla prima istruzione del ciclo. DBcc supporta le stesse condizioni logiche cc di Bcc. Sono inoltre possibili i casi DBF (cc = false) DBT (cc = true) Alcuni assemblatori usano DBRA come sinonimo di DBF.

11 DBcc Dn,<label> Semantica cc==true? NO Dn Dn-1 YES IF(condition false) THEN [Dn] [Dn] 1 {decrement loop counter} IF [Dn] = -1 THEN [PC] [PC]+2{goto next instruction} ELSE [PC] [PC] + d {take branch} ELSE [PC] [PC] + 2 {goto next instruction} NO Dn==-1? Branch to label YES Execute next instruction

12 Decrement and branch always: DBRA DBRA equivale a DBF: caso particolare di DBcc con cc=false Esempio: equivale a: MOVE.L #N,D1 MOVE.L #N,D1 SUBQ.L #1,D1 SUBQ.L #1,D1 MOVEA.L #NUM,A2 MOVEA.L #NUM,A2 CLR.L D0 CLR.L D0 LOOP ADD.W (A2)+,D0 LOOP ADD.W (A2)+,D0 DBRA D1,LOOP SUBQ #1,D1 MOVE.L D0,SOMMA BGE LOOP MOVE.L D0,SOMMA

13 Esercizio Assegnati due byte allocati agli indirizzi di memoria A e B, nella locazione di memoria RES viene memorizzato il numero di bit omologhi uguali di A e B. Il programma usa l'istruzione aritmetica EOR. A B D RES

14 *Area Istruzioni ORG $8000 START MOVE.B A,D0 * Sposta il primo valore in D0 MOVE.B B,D1 * Sposta il secondo valore in D1 EOR.B D0,D1 * OR esclusivo bit a bit tra D0 e D1 e risultato in D1 MOVE. B#7,D2 * Inizializza il registro contatore D2 a 7 CLR.L D3 * Azzera D3 destinato a contenere il risultato LOOP BTST D2,D1 * Controlla il D2-esimo bit di D1 BNE DEC * Se è 1 salta a DEC ADDQ #1,D3 * incrementa D3 perché i bit omologhi erano uguali DEC DBRA D2,LOOP * Decrementa D2 e ripete il ciclo se D2 >= 0 MOVE.B D3,RES * Sposta il risultato in memoria STOP #$2000 * Mette il processore in attesa di interruzioni * Area Dati ORG $8800 A DC.B % * primo byte B DC.B % * secondo byte RES DS.B 1 * area di storage del risultato END START

Strutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register

Strutture di controllo del flusso di esecuzione in assembler. MC68000: Status Register Corso di Calcolatori Elettronici I A.A. 2010-2011 Strutture di controllo del flusso di esecuzione in assembler Lezione 25 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di

Dettagli

Alcuni programmi assembly MC68000

Alcuni programmi assembly MC68000 Corso di Calcolatori Elettronici I Alcuni programmi assembly MC68000 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Dettagli

Processore M68000: ulteriori istruzioni

Processore M68000: ulteriori istruzioni Corso di Calcolatori Elettronici I Processore M68000: ulteriori istruzioni ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Shift LSL, LSR shift logico a sinistra/destra Esempio: LSL.W #2,D2

Dettagli

Introduzione alla programmazione assembly

Introduzione alla programmazione assembly Corso di Calcolatori Elettronici I A.A. 2010-2011 Introduzione alla programmazione assembly Lezione 21 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Organizzazione Motorola 68000 Holds

Dettagli

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

Dettagli

ORG $8800 N DC 9,11,1,4,5,7,2

ORG $8800 N DC 9,11,1,4,5,7,2 ESEMPI DI ASSEMBLY M68000 Esercizio 1 Scrivere un programma non segmentato in linguaggio macchina (simbolico), con sintassi nativa M6800, che rispetti la seguente specifica. Dati 7 numeri di tipo Word,

Dettagli

Pseudo-operatori. Lo pseudo-operatore ORG

Pseudo-operatori. Lo pseudo-operatore ORG Pseudo-operatori Viene usato per inizializzare il Program Location Counter (PLC) Sintassi: ORG $HEXADDR Lo pseudo-operatore END Viene usato per terminare il processo di assemblaggio e saltare all entry

Dettagli

La programmazione Assembly

La programmazione Assembly La programmazione Assembly Corso di Calcolatori Elettronici I Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Sommario ¾ Programmazione del processore MC68000 Modello

Dettagli

Introduzione al linguaggio assembly MC68000

Introduzione al linguaggio assembly MC68000 Corso di Calcolatori Elettronici I Introduzione al linguaggio assembly MC68000 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

L'INDIRIZZAMENTO NEL PROCESSORE MC PARTE 1 -

L'INDIRIZZAMENTO NEL PROCESSORE MC PARTE 1 - L'INDIRIZZAMENTO NEL PROCESSORE MC 68000 - PARTE 1 - CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Modi di indirizzamento Tecniche di indirizzamento:

Dettagli

MC68000: programmazione assembly

MC68000: programmazione assembly Corso di Calcolatori Elettronici I MC68000: programmazione assembly Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Dettagli

MECCANISMI PER IL PASSAGGIO DEI PARAMETRI

MECCANISMI PER IL PASSAGGIO DEI PARAMETRI MECCANISMI PER IL PASSAGGIO DEI PARAMETRI CALCOLATORI ELETTRONICI I CdL Ingegneria Elettronica (A-I) DIS - Università degli Studi di Napoli Federico II Parametri in registri Realizzare un programma che

Dettagli

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 15

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 15 LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 15 Prof. Rosario Cerbone rosario.cerbone@libero.it http://digilander.libero.it/rosario.cerbone a.a. 2005-2006 L'INDIRIZZAMENTO NEL PROCESSORE MC 68000

Dettagli

ASSEMBLER 68K parte 2

ASSEMBLER 68K parte 2 ASSEMBLER 68K parte 2 CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Classi di istruzioni Un calcolatore deve avere istruzioni in grado

Dettagli

Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso

Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso Istruzioni di Controllo del Flusso Istruz. di Controllo di Flusso Salto Non Condizionato Salto Condizionato JMP jump BRA branch non condizionato BEQ branch if Equal BNE branch if Not Equal BCS branch if

Dettagli

Modi di indirizzamento parte 1. Modello di programmazione del processore MC68000

Modi di indirizzamento parte 1. Modello di programmazione del processore MC68000 Corso di Calcolatori Elettronici I A.A. 2010-2011 Modi di indirizzamento parte 1 Lezione 21 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea in

Dettagli

Modi di indirizzamento

Modi di indirizzamento Corso di Calcolatori Elettronici I Modi di indirizzamento ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Modi di indirizzamento Indicano come la CPU accede agli operandi usati dalle proprie

Dettagli

Modi di indirizzamento del processore MC68000 (parte prima)

Modi di indirizzamento del processore MC68000 (parte prima) Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 (parte prima) Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Modello di programmazione

Dettagli

Modi di indirizzamento del processore MC68000 (parte prima)

Modi di indirizzamento del processore MC68000 (parte prima) Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 (parte prima) Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea

Dettagli

AMBIENTE DI SIMULAZIONE ASIM

AMBIENTE DI SIMULAZIONE ASIM LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 10 Prof. Rosario Cerbone rosario.cerbone@uniparthenope.it http://digilander.libero.it/rosario.cerbone a.a. 2008-2009 AMBIENTE DI SIMULAZIONE ASIM Digitazione

Dettagli

Tecniche di traduzione da C ad assembly 68000. Note generali

Tecniche di traduzione da C ad assembly 68000. Note generali Tecniche di traduzione da C ad assembly 68000 Note generali Schema di compilazione da C ad assembly 68K Ispirato a GCC Fa uso di: banco di registri classi d istruzioni modi d indirizzamento e organizzazione

Dettagli

Architettura degli elaboratori

Architettura degli elaboratori Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Programmazione in assembly MIPS Marco Tarini Dipartimento di Scienze Teoriche e Applicate

Dettagli

Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti

Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti Il Linguaggio Assembly: Controllo del flusso: istruzioni e costrutti Prof. Alberto Borghese Ing. Iuri Frosio Dipartimento di Scienze dell Informazione borghese,frosio@dsi.unimi.it Università degli Studi

Dettagli

Assemblaggio per il processore Motorola 68000

Assemblaggio per il processore Motorola 68000 Assemblaggio per il processore Motorola 68000 Daniele Paolo Scarpazza daniele.scarpazza@elet.polimi.it Politecnico di Milano Ultimo aggiornamento: 16 Maggio 2005 Assemblaggio A prima vista sembra un problema

Dettagli

Modi di indirizzamento del processore MC68000 parte 1

Modi di indirizzamento del processore MC68000 parte 1 Corso di Calcolatori Elettronici I Modi di indirizzamento del processore MC68000 parte 1 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

Dettagli

Fondamenti di programmazione in linguaggio assembly del Motorola 68000

Fondamenti di programmazione in linguaggio assembly del Motorola 68000 Fondamenti di programmazione in linguaggio assembly del Motorola 68000 Daniele Paolo Scarpazza daniele.scarpazza@elet.polimi.it Politecnico di Milano Ultimo aggiornamento: 10 Maggio 2005 Bibliografia Libro

Dettagli

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 16. Passaggio di Parametri mediante Aree Dati

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 16. Passaggio di Parametri mediante Aree Dati LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 16 Prof. Rosario Cerbone rosario.cerbone@uniparthenope.it http://digilander.libero.it/rosario.cerbone a.a. 2007-2008 Passaggio di Parametri mediante

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly Strutture di controllo P.H. cap. 2.6 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Le strutture di controllo Istruzioni di salto if then do...

Dettagli

Il processore Motorola (MC68000)

Il processore Motorola (MC68000) Il processore Motorola 68000 (MC68000) Il processore Motorola 68000 è stato un processore innovativo, che ha visto la luce all inizio degli anni 80, ed il cui successo ha posto le basi per lo sviluppo

Dettagli

Nuovo Corso di Calcolatori Elettronici I. Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

Nuovo Corso di Calcolatori Elettronici I. Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Nuovo Corso di Calcolatori Elettronici I Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Libro di testo:» B. Fadini, C. Savy: Fondamenti di Informatica II, Liguori

Dettagli

Modi di indirizzamento del processore MC68000 (parte prima)

Modi di indirizzamento del processore MC68000 (parte prima) Corso di Calcolatori Elettronici I A.A. 2011-2012 Modi di indirizzamento del processore MC68000 (parte prima) Lezione 21 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria

Dettagli

Introduzione al linguaggio assembly del processore Motorola 68000

Introduzione al linguaggio assembly del processore Motorola 68000 Corso di Calcolatori Elettronici I Introduzione al linguaggio assembly del processore Motorola 68000 ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica 68000: Modello di programmazione 31

Dettagli

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto Un quadro della situazione Lezione 15 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri

Dettagli

Corso di Calcolatori Elettronici I A.A Indirizzamento Lezione 27-28

Corso di Calcolatori Elettronici I A.A Indirizzamento Lezione 27-28 Corso di Calcolatori Elettronici I A.A. 2010-2011 Indirizzamento Lezione 27-28 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Modello di programmazione del processore MC68000 31 16

Dettagli

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Codifica dei numeri Rappresentazioni in base 2, 8, 10 e 16 Rappresentazioni M+S, C1 e C2 Algoritmi di conversione di base Algoritmi di somma, moltiplicazione e divisione

Dettagli

Architettura di un calcolatore: introduzione

Architettura di un calcolatore: introduzione Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare

Dettagli

ASSEMBLER 68K parte 1

ASSEMBLER 68K parte 1 ASSEMBLER 68K parte 1 CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Supporti didattici Fadini Savy, Fond. Inf. 2 parte. III, cap.

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2010-2011 Architettura di un calcolatore: introduzione Lezione 18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

Lezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly

Lezione 12. Assembly II. Set di Istruzioni MIPS Strutture di controllo in Assembly Architettura degli Elaboratori e delle Reti Lezione 12 Assembly II Set di Istruzioni MIPS Strutture di controllo in Assembly Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università

Dettagli

Architettura degli Elaboratori 10 Dicembre b) Si converta in base 2, base 8 e base 16 il seguente numero intero (decimale):

Architettura degli Elaboratori 10 Dicembre b) Si converta in base 2, base 8 e base 16 il seguente numero intero (decimale): Architettura degli Elaboratori 10 Dicembre 20 Esercizio 1. (INF e TWM) a) Si converta in base 10 il seguente numero binario: 10 = 149 (10) b) Si converta in base 2, base 8 e base 16 il seguente numero

Dettagli

Fetch Decode Execute Program Counter controllare esegue prossima

Fetch 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

Dettagli

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly Strutture di controllo P.H. cap. 2.6 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Le strutture di controllo Istruzioni di salto if then do...

Dettagli

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

Dettagli

Corso di Calcolatori Elettronici I A.A

Corso di Calcolatori Elettronici I A.A Corso di Calcolatori Elettronici I A.A. 2010-2011 Subroutines Lezioni 29-31 Procedure Ø Definizione:» Procedura o subroutine - Particolare sequenza di istruzioni su dati di volta in volta differenti Ø

Dettagli

Lezione 17 Il Set di Istruzioni (3)

Lezione 17 Il Set di Istruzioni (3) Lezione 17 Il Set di Istruzioni (3) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Un richiamo su: Operazioni aritmetiche (add

Dettagli

Le strutture di controllo in C++

Le strutture di controllo in C++ Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

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

Dettagli

#define N = 5. / funzione funz / int funz (int a, int b) { return (a + r) b; } / fine funzione / programma in linguaggio C

#define N = 5. / funzione funz / int funz (int a, int b) { return (a + r) b; } / fine funzione / programma in linguaggio C esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) 68000 il programma (main e funzione funz) riportato

Dettagli

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:

Dettagli

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

Dettagli

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

Modifiche di orario. Lezione 19 Il Set di Istruzioni (6) Dove siamo nel corso. Un quadro della situazione

Modifiche di orario. Lezione 19 Il Set di Istruzioni (6) Dove siamo nel corso. Un quadro della situazione Modifiche di orario Lezione 19 Il Set di Istruzioni (6) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Al posto della lezione di domani giovedì 22/5 (12-1)

Dettagli

Calcolatore: sottosistemi

Calcolatore: sottosistemi Calcolatore: sottosistemi Processore o CPU (Central Processing Unit) Memoria centrale Sottosistema di input/output (I/O) CPU I/O Memoria Calcolatore: organizzazione a bus Il processore o CPU Unità di controllo

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

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

Dettagli

programma in linguaggio C esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina

programma in linguaggio C esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina esercizio n. 5 linguaggio macchina prima parte codifica in linguaggio macchina Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) 68000 il programma (main e funzione funz) riportato

Dettagli

Architettura del processore MC 68000

Architettura del processore MC 68000 Architettura del processore MC 68000 Registri generali D0-D7, A0-A7 PC 16 x 32 ALU 32 32 TEMP 32 EAR IR Control unit 16 SR 8 8 CCR Interfaccia memoria ed I/O Bus di memoria e di I/O Modello di programmazione

Dettagli

Istruzioni di controllo

Istruzioni di controllo Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende

Dettagli

Architettura degli Elaboratori

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

Dettagli

Gestione dell I/O. Nuovo Corso di Calcolatori Elettronici I. Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

Gestione dell I/O. Nuovo Corso di Calcolatori Elettronici I. Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Gestione dell I/O Nuovo Corso di Calcolatori Elettronici I Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Roadmap Ø Modello architetturale» Struttura a bus singolo

Dettagli

Esercizi. Assembly. Alessandro A. Nacci ACSO 2014/2014

Esercizi. Assembly. Alessandro A. Nacci ACSO 2014/2014 Esercizi Assembly Alessandro A. Nacci alessandro.nacci@polimi.it ACSO 2014/2014 1 Esercizio 1 Si deve tradurre in linguaggio macchina simbolico (linguaggio assemblatore) 68000 il programma C (programma

Dettagli

Corso di Calcolatori Elettronici I A.A Sottoprogrammi. ing. Alessandro Cilardo

Corso di Calcolatori Elettronici I A.A Sottoprogrammi. ing. Alessandro Cilardo Corso di Calcolatori Elettronici I A.A. 2012-2013 Sottoprogrammi ing. Alessandro Cilardo Accademia Aeronautica di Pozzuoli Corso Pegaso V GArn Elettronici Sottoprogrammi E utile e spesso necessario scomporre

Dettagli

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

Dettagli

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

Dettagli

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010

STRUTTURE DI CONTROLLO IN C. Docente: Giorgio Giacinto AA 2009/2010 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Il BUS del calcolatore

Il BUS del calcolatore LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 14 Prof. Rosario Cerbone rosario.cerbone@uniparthenope.it http://digilander.libero.it/rosario.cerbone a.a. 2008-2009 Il BUS del calcolatore Il calcolatore

Dettagli

Il linguaggio Java Istruzioni di Controllo

Il linguaggio Java Istruzioni di Controllo Il linguaggio Java Istruzioni di Controllo Istruzioni per il controllo di flusso Istruzioni di selezione if switch Istruzioni di iterazione while do-while for Istruzioni di salto break continue return

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2012-2013 Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e

Dettagli

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio

Dettagli

Dal linguaggio macchina al linguaggio C

Dal 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

Dettagli

Traduzione da C a Catena di compilazione

Traduzione da C a Catena di compilazione Traduzione da C a 68000 Vittorio Zaccaria Dicembre 2009 Catena di compilazione utilizzo di linguaggi intermedi di(ir) Analisi sintattica e trattamento degli errori Generazione del codice macchina linguaggio

Dettagli

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

Dettagli

Ricevimento inviate una e mail a con oggetto [Tutorato Arch] o [Tutorato Prog1]

Ricevimento inviate una e mail a con oggetto [Tutorato Arch] o [Tutorato Prog1] Presentazione LE ISTRUZIONI: IL LINGUAGGIO DEI CALCOLATORI Sarro Federica, Phd Student Facoltà di Scienze MM FF NN Università degli Studi di Salerno fsarro@unisa.itit http://www.dmi.unisa.it/people/sarro/www/

Dettagli

Introduzione al linguaggio assembly

Introduzione al linguaggio assembly Corso di Calcolatori Elettronici I Introduzione al linguaggio assembly ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Riepilogo PC R 0 MA R 1 R 2 R 3 IR MB read memoria O 1 O 2 op ALU

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Addendum: istruzioni linguaggio macchina. Università di Bergamo - corso di Calcolatori Elettronici 1

Addendum: istruzioni linguaggio macchina. Università di Bergamo - corso di Calcolatori Elettronici 1 Addendum: istruzioni linguaggio macchina Università di Bergamo - corso di Calcolatori Elettronici 1 Control Loop C code: L1: g = g + A[i]; i = i + j; if (i!= h) goto L1; MIPS code: L1: add $t1, $s3, $s3

Dettagli

ANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE FORNITI DAL LINGUAGGIO C STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO

ANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE FORNITI DAL LINGUAGGIO C STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO ANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE ORNITI DAL LINGUAGGIO C Premessa: STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO Uno ement semplice termina con ; come, ad esempio: ressione;

Dettagli

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

Dettagli

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

Dettagli

Corso di Calcolatori Elettronici I Sottoprogrammi ing. Alessandro Cilardo

Corso di Calcolatori Elettronici I Sottoprogrammi ing. Alessandro Cilardo Corso di Calcolatori Elettronici I Sottoprogrammi ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Sottoprogrammi E utile e spesso necessario scomporre i programmi in sottoprogrammi Sottoprogramma

Dettagli

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI PROGRAMMAZIONE I 23/11/218 UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA La macchina di Von Neumann Unità periferiche Memoria Centrale CPU CORSO DI "PROGRAMMAZIONE I" Bus Dati Bus Indirizzi

Dettagli

Il primo programma C++

Il primo programma C++ Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida

Dettagli

Istruzioni e linguaggio macchina

Istruzioni e linguaggio macchina Istruzioni e linguaggio macchina I linguaggi macchina sono composti da istruzioni macchina, codificate in binario, con formato ben definito processori diversi hanno linguaggi macchina simili scopo: massimizzare

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Università degli Studi di Brescia Elementi di Informatica e Programmazione PROGRAMMAZIONE Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 25/11/2015.B Dipartimento di Ingegneria Meccanica e Industriale

Dettagli

Il Linguaggio Assembly: Gestione della memoria e controllo

Il Linguaggio Assembly: Gestione della memoria e controllo Il Linguaggio Assembly: Gestione della memoria e controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/42 Sommario L organizzazione

Dettagli

Istruzioni iterative (o cicliche)

Istruzioni iterative (o cicliche) Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore CPU CPU e programmazione (Parte 1) La CPU (Central Processing Unit) e` in grado di eseguire dei programmi, cioe` sequenze di istruzioni elementari ( istruzioni macchina ) Idea fondamentale dell'architettura

Dettagli

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base

Dettagli

21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio

21 March : ESERCITAZIONE 01 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA. I. Frosio 02: ESERCITAZIONE 01 21 March 2011 GESTIONE DELLA MEMORIA VETTORI CONTROLLOO O DI FLUSSO DI UN PROGRAMMA I. Frosio 1 SOMMARIO Organizzazione della memoria Istruzioni di accesso alla memoria Vettori Istruzioni

Dettagli

Struttura di programmi MAL Elementi lessicali

Struttura di programmi MAL Elementi lessicali Elementi lessicali Ogni microistruzione è definita su una linea di programma Le linee vuote vengono ignorate Le linee con solo commenti vengono ignorate Il carattere di fine linea (RETURN ENTER INVIO)

Dettagli

Assegnazione di una variabile

Assegnazione di una variabile Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile

Dettagli