Introduzione al linguaggio assembly
|
|
- Salvatore Mele
- 8 anni fa
- Visualizzazioni
Transcript
1 Corso di Calcolatori Elettronici I A.A Introduzione al linguaggio assembly Lezione 20 Università degli Studi di Napoli Federico II Facoltà di Ingegneria
2 Il linguaggio Assembly È funzionalmente equivalente al linguaggio macchina, ma usa nomi più intuitivi (mnemonics) Definisce l Instruction Set Architecture (ISA) della macchina Un compilatore traduce un linguaggio di alto livello, che è indipendente dall architettura, in linguaggio assembly, che è dipendente dall architettura Un assemblatore traduce programmi in linguaggio assembly in codice binario eseguibile Nel caso di linguaggi compilati (es. C) il codice binario viene eseguito direttamente dalla macchina target Nel caso di linguaggi interpretati (es. Java) il bytecode viene interpretato dalla Java Virtual Machine, che in questo senso è al livello Assembly language
3 Ciclo di Sviluppo di un programma in C++ Programma sorgente (nome.cpp) Programma sorgente (nome.cpp) Editor Preprocessore Compilatore disco disco disco Programma sorgente (nome.obj) Librerie (object files) Collegatore disco disco Caricatore MEMORIA (RAM)
4 Fase 1 preparazione del testo origine il testo origine viene digitato mediante un editor e viene memorizzato in un file con estensione cpp
5 Fase 2 precompilazione il testo origine (sorgente) contenuto nel file.cpp viene elaborato da un programma detto preprocessore (o precompilatore) che sostanzialmente esegue l espansione del codice (inclusioni, macro, etc.)
6 Fase 3 compilazione delle unità le unità del programma vengono compilate mediante l attivazione del compilatore; il testo origine verrà trasformato in testo oggetto e memorizzato in un file con estensione.obj
7 Fase 4 collegamento (linkage) i diversi moduli oggetto costituenti il programma eseguibile vengono collazionati fra loro (p1.obj,, pn.obj) e con il supporto al tempo di esecuzione mediante un modulo collegatore (linker). Il tutto viene memorizzato in un file che costituisce il programma eseguibile (p.exe)
8 Linguaggi e dipendenza dalla piattaforma di esecuzione Codice C++ Compilatore C++ i386 Win OS Compilatore C++ PowerPC MacOS Codice Binario Pentium Win OS Codice Binario PowerPC MacOS Compilatore C++ SPARC Solaris OS Codice Binario SPARC Solaris OS
9 Ciclo di sviluppo/esecuzione per programmi in linguaggio di alto livello Digitazione dei sorgenti Editor Compilatore Moduli oggetto Programma sorgente Programma in linguaggio macchina in RAM Linker statico Debugger Macchina target Loader / Linker dinamico Programma eseguibile
10 Ciclo di sviluppo/esecuzione per programmi in linguaggio assembly Digitazione dei sorgenti Editor Assemblatore Moduli oggetto Programma sorgente Programma in linguaggio macchina in RAM Linker statico Debugger Macchina target Loader / Linker dinamico Programma eseguibile
11 Ciclo di sviluppo semplificato di programmi assembly MC68000 nel sistema didattico ASIM Digitazione del programma Editor Assembler ASIMTOOL Programma sorgente.a68 Moduli oggetto e file list Macchina target Loader ASIM
12 Assembly: formato del codice sorgente Una linea di codice sorgente Assembly è costituita da quattro campi: LABEL Ø Stringa alfanumerica Ø Definisce un nome simbolico per il corrispondente indirizzo OPCODE Ø Codice mnemonico o pseudo-operatore Ø Determina la generazione di un istruzione in linguaggio macchina o la modifica del valore corrente del Program Location Counter OPERANDS Ø Oggetti dell azione specificata dall OPCODE Ø Variano a seconda dell OPCODE e del modo di indirizzamento COMMENTS Ø Testo arbitrario inserito dal programmatore
13
14 Assembly: caratteristiche generali Di regola, una linea di codice assembly corrisponde ad una istruzione l/m Eccezioni: Macro: 1 linea assembler n istruzioni l/m Pseudo istruzioni: 1 linea assembler 0 istr. l/m Variabili interamente gestite dal programmatore Allocazione: memoria o registri CPU No dichiarazione
15 Esempio Assembly X86 a 32 bit DES_std_crypt: movl 4(%esp),%edx pushl %ebx movl DES_count,%ecx xorl %ebx,%ebx movq (%edx),k1 movq 32(%edx),K2 movq K1,tmp1 movq 8(%edx),K3 movq 16(%edx),K4 DES_copy(24, 40) DES_copy(112, 120) movq DES_IV,R xorl %edx,%edx movq DES_IV+8,L DES_loop:
16 Esempio Assembly Alpha DES_std_crypt: ldgp $29,0($27) DES_std_crypt..ng: subq $30,56,$30 lda tmp1,des_iv lda tmp2,des_count lda SPE,DES_SPE_F ldq R,0(tmp1) ldq L,8(tmp1) ldq count,0(tmp2) ldq K1,0(kp) ldq K2,8(kp) ldq K3,16(kp) ldq K4,24(kp) xor K1,R,D ldq K5,32(kp) ldq K6,40(kp) ldq K7,48(kp) ldq K8,56(kp) stq K9,0($30) stq K10,8($30) stq K11,16($30) stq K12,24($30) stq K13,32($30) stq K14,40($30) stq K15,48($30) ldq K9,64(kp) ldq K10,72(kp) ldq K11,80(kp) ldq K12,88(kp) ldq K13,96(kp) ldq K14,104(kp) ldq K15,112(kp) ldq K16,120(kp) DES_loop: DES_2_ROUNDS(K2, K3)
17 Esempio Assembly SPARC DES_std_crypt: save %sp,-120,%sp st %i7,[%fp-24] sethi %hi(des_spe_l),spe_l_0 sethi %hi(des_spe_l+0x400),spe_l_4 add SPE_L_0,0x808,SPE_H_0 ldd [kp],dl ldd [SPE_L_4+0xC08],Rl ld [SPE_L_4+0xC18],count DES_loop: DES_2_ROUNDS(kp) std Rl,[out] std Ll,[out+8] ret restore
18 Linguaggi Assembly Per una data macchina, esiste sempre almeno il linguaggio assembly definito dal costruttore In aggiunta, possono esistere linguaggi assembly forniti da terze parti Quando si definisce un linguaggio assembly Si ha libertà di scelta per quanto riguarda: Gli mnemonics Il formato delle linee del sorgente I formati per specificare modi di indirizzamento, varianti delle istruzioni, costanti, label, pseudo-operatori, etc. Non si ha libertà di scelta per quanto riguarda: L effetto finale di ogni singola istruzione macchina
19 Convenzioni Gli spazi bianchi tra i diversi campi fungono esclusivamente da separatori (vengono ignorati dall assemblatore) Una linea che inizi con un asterisco (*) è una linea di commento Nelle espressioni assembly, gli argomenti di tipo numerico si intendono espressi In notazione decimale, se non diversamente specificato In notazione esadecimale, se preceduti dal simbolo $ Nell indicazione degli operandi, il simbolo # denota un indirizzamento immediato
20 Program Location Counter PLC Ø E una variabile interna dell assemblatore Ø Punta alla locazione di memoria in cui andrà caricata a run time l istruzione assemblata Ø Viene inizializzato dallo pseudo-operatore origin (ORG) Ø Durante il processo di assemblaggio, il suo valore è aggiornato sia in funzione degli operatori, sia in funzione degli pseudo-operatori Ø E possibile, all interno di un programma, fare riferimento al suo valore corrente, mediante il simbolo *
21 AsimTool
22 AsimTool: esempio di file list PLC contenuto label opcode operands comments * Somma i primi 17 interi * ORG $ START CLR.W SUM MOVE.W ICNT,D C 33C ALOOP MOVE.W D0,CNT D ADD.W SUM,D C MOVE.W D0,SUM E MOVE.W CNT,D FFFF 10 ADD.W #-1,D E2 11 BNE ALOOP A 4EF JMP SYSA = SYSA EQU $ CNT DS.W SUM DS.W = IVAL EQU ICNT DC.W IVAL Symbol Table ALOOP 800C CNT 8030 IVAL 0011 START 8000 SUM 8032 ICNT 8034
23 ASIM: programma caricato in memoria
24 Pseudo-operatori NON sono istruzioni eseguite dal processore sono direttive che regolano il processo di traduzione del programma assembler in programma eseguibile Lo pseudo-operatore ORG Viene usato per inizializzare il Program Location Counter (PLC), ovvero per indicare a quale indirizzo sarà posta la successiva sezione di codice o dati Esempio: ORG $8100 Lo pseudo-operatore END Viene usato per terminare il processo di assemblaggio ed impostare l entry point (prima istruzione da eseguire) nel programma Esempio: END TARGETLAB
25 Pseudo-operatori Lo pseudo-operatore DS Viene usato per incrementare il Program Location Counter (PLC), in modo da riservare spazio di memoria per una variabile Esempio: LABEL DS.W NUMSKIPS Lo pseudo-operatore DC Viene usato per inizializzare il valore di una variabile Esempio: LABEL DC.W VALUE Lo pseudo-operatore EQU Viene usato per definire una costante usata nel sorgente assembler Esempio: LABEL EQU VALUE
26 Etichette (label) Sono stringhe di testo arbitrarie (opzionali) anteposte ad una istruzione o ad un dato all interno del programma assembler Servono a riferirsi al particolare indirizzo che contiene quella istruzione o dato usati per gestire i salti usati per gestire variabili (manipolate nel programma assembler attraverso le loro etichette in maniera simile alle variabili di un linguaggio di programmazione di alto livello) Ad esempio: ALOOP è un etichetta usata per riferisti all istruzione MOVE, SUM è una etichetta usata per gestire una variabile, mentre IVAL è una costante ALOOP MOVE.W D0,CNT ADD.W SUM,D0 SUM DS.W 1 IVAL EQU 17
27 Processori a carattere e processori a parola I processori a carattere accedono alla memoria con parallelismo 1 byte (8 bit) prime CPU ad accumulatore I processori a parola hanno la capacità di indirizzare ed accedere la memoria per unità (parole o word) di 16 bit, 32 bit o 64 bit In questi sistemi (tranne pochissime eccezioni nel passato) l unità indirizzabile di memoria (locazione) è ancora il byte Si parla di sistemi a memoria byte-addressable: ogni byte ha il suo indirizzo Terminologia Motorola 68000: word = 2 byte, longword = 4 byte
28 Big-endian e little-endian I processori a parola possono disporre in memoria i byte che formano una parola in due modi Big-endian: i byte sono disposti in memoria in modo che il più significativo MSB occupi la locazione di memoria di indirizzo minore, e poi via via gli altri, fino a quello meno significativo LSB che è collocato nella locazione di indirizzo maggiore Little-endian: disposizione opposta Il processore Motorola usa la convenzione Big Endian Disposizione BIG_ENDIAN Byte3 Byte2 Byte1 Byte0 Indirizzi crescenti Disposizione LITTLE ENDIAN Byte0 Byte1 Byte2 Byte3 Indirizzi crescenti MSB LSB LSB MSB
29 Big-endian e little-endian: un esempio Immaginiamo di avere un processore a parola, con parole di 32 bit (4 byte) e voler scrivere in memoria il valore intero (esadecimale) $12FA34ED all indrizzo 812 Le figure sottostanti illustrano il contenuto della memoria nei due casi big-endian e little-endian 12 FA 34 ED indirizzo big-endian ED 34 FA 12 indirizzo little-endian
30 Memoria: parole allineate e non allineate Per un processore a parola di 16 bit o 32 bit, una parola che inizia ad un indirizzo pari si dice allineata sul limite di parola Tipicamente, un processore è in grado di accedere ai due byte che costituiscono una parola allineata mediante una sola operazione di lettura Il processore Intel 8086 consente l accesso a parole non allineate, cioè parole che iniziano ad un indirizzo dispari, ma in tal caso sono necessari 2 distinti accessi in memoria Il NON consente l accesso a parole non allineate Indirizzo i Indirizzo i+2 i i+1 i+2 i+3 i+1 i+2 (i pari) La parola di 16 bit formata dai due byte ombreggiati non è allineata sul limite di parola (indirizzo multiplo di 2)
31 Esempio - Moltiplicazione 2 interi * Programma per moltiplicare MCND e MPY * ORG $8000 * MULT CLR.W D0 D0 accumula il risultato MOVE.W MPY,D1 D1 e' il contatatore di ciclo BEQ DONE Se il contatore e' zero e' finito LOOP ADD.W MCND,D0 Aggiunge MCND al prodotto parziale ADD.W #-1,D1 Decrementa il contatore BNE LOOP e ripete il giro DONE MOVE.W D0,PROD Salva il risultato STOP #$2700 Arresta esecuzione programma ORG $8200 PROD DS.W 1 Riserva spazio di memoria per PROD MPY DC.W 3 Definisce il valore di MPY MCND DC.W 4 Definisce il valore di MCND END MULT Fine ass., salto a entry point
32 Analisi del file LIS PLC contenuto label opcode operandi * Programma per moltiplicare MCND e MPY * ORG $ * MULT CLR.W D MOVE.W MPY,D E 7 BEQ DONE C D LOOP ADD.W MCND,D FFFF 9 ADD.W #-1,D F4 10 BNE LOOP C DONE MOVE.W D0,PROD E 4E STOP #$ ORG $ PROD DS.W MPY DC.W MCND DC.W END MULT Symbol Table MULT $8000 MPY $8202 DONE $8018 LOOP $800C MCND $8204 PROD $8200
33 Esercitazione Provare il programma mult2ints.a68 che moltiplica due interi attraverso un ciclo di addizioni ripetute Eseguire il programma sul simulatore ASIM e sperimentare: L effetto di DC e la convenzione big-endian del processore L effetto dell istruzione CLR.W su registro di 32 bit L effetto dell istruzione MOVE da memoria a registro L effetto dell istruzione BEQ sul PC L effetto dell istruzione ADD tra memoria e registro L effetto dell istruzione ADD tra immediato e registro L effetto dell istruzione BNE sul PC L effetto dell istruzione JMP sul PC L effetto dell istruzione MOVE da registro a memoria Confrontare la codifica in l/m delle istruzioni di salto
34 Esercitazione Nell esempio precedente, effettuare le seguenti sostituzioni ed osservarne gli effetti DONE MOVE.W D0,PROD Salva il risultato PROD DS.W 1 Riserva spazio di memoria per PROD DONE MOVE.L D0,PROD Salva il risultato PROD DS.L 1 Riserva spazio di memoria per PROD L= long (32 bit) W= word (16 bit) B= byte (8 bit)
Introduzione al linguaggio assembly
Corso di Calcolatori Elettronici I Introduzione al linguaggio assembly Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione
DettagliIntroduzione al linguaggio assembly
Corso di Calcolatori Elettronici I Introduzione al linguaggio assembly Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione
DettagliASSEMBLER 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.
DettagliIntroduzione ai linguaggi assembly
Corso di Calcolatori Elettronici I Introduzione ai linguaggi assembly Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione
DettagliIl linguaggio Assembly
Il linguaggio Assembly È funzionalmente equivalente al linguaggio macchina, ma usa nomi più intuitivi (mnemonics) Definisce l Instruction Set Architecture (ISA) della macchina Un compilatore traduce un
DettagliIntroduzione al linguaggio assembly
Corso di Calcolatori Elettronici I A.A. 2012-2013 Introduzione al linguaggio assembly ing. Alessandro Cilardo Accademia Aeronautica di Pozzuoli Corso Pegaso V GArn Elettronici Riepilogo PC R 0 MA R 1 R
DettagliIntroduzione 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
DettagliCapitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2
DettagliIntroduzione 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
DettagliCorso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18
Corso di Calcolatori Elettronici I A.A. 2010-2011 Il processore Lezione 18 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Calcolatore: sottosistemi Processore o CPU (Central Processing
DettagliCorso di Informatica Applicata. Lezione 3. Università degli studi di Cassino
Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 3 Ing. Saverio De Vito e-mail: saverio.devito@portici.enea.it Tel.: +39
DettagliIl processore Motorola (MC68000)
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 9 Prof. Rosario Cerbone rosario.cerbone@uniparthenope.it http://digilander.libero.it/rosario.cerbone a.a. 2008-2009 Il processore Motorola 68000 (MC68000)
DettagliLABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 13
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 13 Prof. Rosario Cerbone rosario.cerbone@libero.it http://digilander.libero.it/rosario.cerbone a.a. 2005-2006 Il processore Motorola 68000 (MC68000)
DettagliMC68000: 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
DettagliLa Macchina Virtuale
Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Anno Accademico 2008/2009 Docente: ing. Salvatore
DettagliAXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000
AXO Achitettura dei Calcolatori e Sistema Operativo Instruction Set Architecture (ISA) e 68000 introduzione a ISA ISA - Instruction Set Architecture insieme delle istruzioni (instruction set) che possono
DettagliLezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014
Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS
DettagliPseudo-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
DettagliProgrammazione ad Oggetti. Introduzione. Programmazione. Modello di esecuzione del processore. di cosa?
Programmazione ad Oggetti Introduzione di cosa? Programmazione Focus sui sistemi di calcolo basati su processori general purpose Processori caratterizzati da un Instruction Set (Insieme dei codici operativi)
DettagliIng. Paolo Domenici PREFAZIONE
Ing. Paolo Domenici SISTEMI A MICROPROCESSORE PREFAZIONE Il corso ha lo scopo di fornire i concetti fondamentali dei sistemi a microprocessore in modo semplice e interattivo. È costituito da una parte
DettagliAXO 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
DettagliArchitettura 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
DettagliCPU. Maurizio Palesi
CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore
DettagliIntroduzione 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#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
DettagliSistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
DettagliLa macchina programmata Instruction Set Architecture (1)
Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2014-15 La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione Istruzioni macchina Outline Componenti di un
DettagliArchitettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):
Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande
DettagliArchitettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H
Architettura dei calcolatori e sistemi operativi Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Sommario Il processo di assemblaggio Il collegatore (linker) 2 Assemblatore: traduzione
DettagliArchitettura 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
DettagliLaboratorio di Informatica
per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:
DettagliTecniche 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
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio
DettagliIntroduzione 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
DettagliArchitettura hardware
Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliIl calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi
Il calcolatore elettronico Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Introduzione Un calcolatore elettronico è un sistema elettronico digitale programmabile Sistema: composto da
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliRappresentazione dei numeri in un calcolatore
Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri
DettagliArchitettura 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
DettagliIl Processore: i registri
Il Processore: i registri Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) Le dimensioni di un registro sono di pochi byte (4, 8) I registri contengono
DettagliCOS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
DettagliArchitettura di un calcolatore: Introduzione parte 2
Corso di Calcolatori Elettronici I Architettura di un calcolatore: Introduzione parte 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle
DettagliAssemblaggio 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
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
DettagliArchitettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro
Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica prof. ing. Corrado Santoro Schema a blocchi di una CPU Arithmetic Logic Unit Control Unit Register File BUS Control
DettagliToolChain: Come Generare Applicazioni in Linguaggio Macchina
ToolChain: Come Generare Applicazioni in Linguaggio Macchina Luca Abeni e Luigi Palopoli March 30, 2015 La Lingua della CPU Una CPU capisce e riesce ad eseguire solo il linguaggio macchina Linguaggio di
DettagliCompilatore risorse display grafico LCD serie IEC-line
Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente
DettagliLezione 16: L architettura LC-3
Lezione 16: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 15 Maggio 2013 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS
DettagliIl processore. Il processore. Il processore. Il processore. Architettura dell elaboratore
Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni
DettagliArchitettura di un calcolatore: introduzione
Corso di Calcolatori Elettronici I A.A. 2011-2012 Architettura di un calcolatore: introduzione Lezione 18 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso
DettagliVon Neumann. John Von Neumann (1903-1957)
Linguaggio macchina Von Neumann John Von Neumann (1903-1957) Inventore dell EDVAC (Electronic Discrete Variables AutomaFc Computer), la prima macchina digitale programmabile tramite un soiware basata su
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,
DettagliCLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO
CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO 1 Domanda [1 punto] Dato il formato in virgola mobile su 32 bit così definito (precisione singola): o 1
DettagliIl simulatore SPIM SPIM
Il simulatore SPIM Architetture dei Calcolatori (lettere A-I) SPIM SPIM: un simulatore per eseguire programmi assembler scritti per processori MIPS32 Download e materiale relativo alla pagina Web http://www.cs.wisc.edu/~larus/spim.html
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliQuinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.
Quinto Homework 1) Si vuole progettare una cache a mappatura diretta per un sistema a 32 bit per una memoria da 2 GB (quindi sono solo 31 i bit utili per gli indirizzi) e blocchi di 64 byte. Rispondere
DettagliArchitettura degli elaboratori (A)
Laurea in Informatica a.a. 2010-2011 Laboratorio del corso di Architettura degli elaboratori (A) Modulo 1: l Architettura dell 8086 Valeria Carofiglio Linguaggi a vari livelli e loro relazioni Programma
DettagliArchitettura del calcolatore
Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale
DettagliCALCOLATORI ELETTRONICI II
CALCOLATORI ELETTRONICI II L ASSEMBLATORE Microsoft MASM MASM Argomenti della lezione Faremo riferimento al linguaggio sorgente accettato dall assemblatore Microsoft MASM nelle versioni successive alla
Dettagliintroduzione I MICROCONTROLLORI
introduzione I MICROCONTROLLORI Definizione Un microcontrollore è un dispositivo elettronico programmabile Può svolgere autonomamente diverse funzioni in base al programma in esso implementato Non è la
DettagliLezione n.9. Introduzione al linguaggio macchina
Lezione n.9 Autore:Luca Orrù 1 Sommario Esecuzione delle istruzioni Architettura interna ed esterna Linguaggio assembler e modi d indirizzamento Consideriamo ora la singola istruzione e la scomponiamo
DettagliL unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti
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
DettagliSommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali
Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori
DettagliArchitettura 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[http://www.di.univaq.it/muccini/labarch]
[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 3: Introduzione a SPIM
DettagliAMBIENTE 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
DettagliAlcuni 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
DettagliArchitettura del Set di Istruzioni (ISA)
Architettura del Set di Istruzioni (ISA) Maurizio Palesi Maurizio Palesi 1 Instruction Set Architecture (ISA) Software instruction set Hardware Maurizio Palesi 2 1 Instruction Set Architecture (ISA) Applicazioni
DettagliJPD132. Microprocessore e assembly
JPD132 Microprocessore e assembly Il processore JPD132 Il JPD132 è un ipotetico processore che estende le possibilità del PD32 principalmente con un linguaggio assembly comprendente nuovi metodi di indirizzamento,
Dettagli3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) 3. (testo di riferimento: Bellini-Guidi) Ing. Agnese Pinto 1 di 28 Linguaggi di programmazione Un programma è un algoritmo
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliArchitettura 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
DettagliIl memory manager. Gestione della memoria centrale
Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda
DettagliVarie tipologie di memoria
Varie tipologie di memoria velocita` capacita` registri CPU memoria cache memoria secondaria (Hard Disk) Gestione della memoria Una parte della viene riservata per il SO I programmi per poter essere eseguiti
DettagliCALCOLATORI ELETTRONICI
CALCOLATORI ELETTRONICI Giuseppe Coldani Tel. 0382 985678 e-mail: giuseppe.coldani@unipv.it giuseppe.coldani@tin.it orario delle lezioni: Mercoledì 14.00-18.00 orario di ricevimento: su appuntamento 1
DettagliFondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1
Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica
DettagliCALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU
Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi
DettagliHardware di un Computer
Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,
DettagliNascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti
Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del
DettagliRichiami di informatica e programmazione
Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre
DettagliFondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi
Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via B. Castiglione 59-00142 Roma Docente Raffaele Nicolussi rnicolussi@fub.it Lezioni
DettagliLaboratorio di Architettura degli Elaboratori
Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Introduzione a MARS: interfaccia, struttura di un programma, gestione dell input L assemblatore e simulatore MARS Permette di eseguire
DettagliJava: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
DettagliIstituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni
Istituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni Fondamenti di Informatica Modulo 1 Programma dell'a.a. 2003/2004 Luigi Romano Dipartimento di Informatica
DettagliParte II.2 Elaboratore
Parte II.2 Elaboratore Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1, 2015 Elisabetta Elisabetta Ronchieri II Software Argomenti
DettagliSottosistema di Ingresso/Uscita (I/O)
Corso di Calcolatori Elettronici I A.A. 2013-2014 Sottosistema di Ingresso/Uscita (I/O) ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica allievi J-Z Calcolatore: sottosistemi Processore
DettagliStruttura del calcolatore
Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione
DettagliIL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE
IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE
DettagliLink e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A. 2005-2006
Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione Corso di Sistemi Operativi A. A. 2005-2006 Link e permessi Link Un riferimento ad un file è detto link Ogni file può avere un numero
DettagliAppunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
DettagliInformazione analogica e digitale
L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica
DettagliLa codifica delle informazioni
La codifica delle informazioni Bit e byte Come già visto l elaboratore è in grado di rappresentare informazioni al proprio interno solo utilizzando cifre binarie (bit) che solitamente vengono manipolate
DettagliI sistemi di numerazione
I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono
DettagliAritmetica dei Calcolatori 2
Laboratorio di Architettura 13 aprile 2012 1 Operazioni bit a bit 2 Rappresentazione binaria con segno 3 Esercitazione Operazioni logiche bit a bit AND OR XOR NOT IN OUT A B A AND B 0 0 0 0 1 0 1 0 0 1
DettagliInformatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Codifica di dati e istruzioni. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Fondamenti di Informatica Codifica di dati e istruzioni Anno Accademico 2010/2011 Francesco Tortorella La codifica dei dati e delle istruzioni La più piccola unità di informazione memorizzabile
DettagliIntroduzione a Dev-C++
Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP
DettagliMATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c
Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione
Dettagli