La scorsa lezione. Laboratorio di Architettura. Word e bytes... Questa lezione. Lezione 8
|
|
- Ottavio Pugliese
- 5 anni fa
- Visualizzazioni
Transcript
1 La scorsa lezione Laboratorio di Architettura Lezione 8 Andrea Torsello 1 Dipartimento di Informatica Università Ca Foscari di Venezia Procedure Convenzione di chiamata Stack (Push / Pop) Implementazione: come si traduce una funzione Variabili e scoping (globali/locali) 1 slides basate su slides di Massimo Marchiori p.1/52 Questa lezione p.2/52 Word e bytes... TIPI: Stringhe Chiamate di sistema Strutture Vettori (solo accennato) Puntatori Finora, abbiamo solo agito con words (4 bytes) Però, abbiamo visto che ci sono istruzioni anche per manipolare i singoli bytes: lbu (load byte (unsigned)) sb (store byte) p.3/52 p.4/52
2 Motivi? Come? Motivo principale: le stringhe Questa è una stringa Le stringhe sono composte di caratteri Usualmente, ogni carattere è memorizzato in 1 byte Si indossa un diverso paio di occhiali I numeri nella memoria possono essere interpretati in vario modo: Come numeri Come istruzioni di memoria E... come caratteri p.5/52 Corrispondenza numeri-caratteri ASCII p.6/52 Corrispondenza standard: ASCII ASCII: American Standard Code for Information Interchange Da 0 a 127: ci sta in un byte Da 0 a 31: caratteri di controllo Da 32 a 126: caratteri stampabili 127: carattere di controllo p.7/52 p.8/52
3 ASCII Osservazioni 32 (spazio) 33! 34 " (virgolette) 35 #... I caratteri dell alfabeto corrispondono a numeri consecutivi I caratteri numerici corrispondono a numeri consecutivi p.9/52 Lettere maiuscole p.10/52 Lettere minuscole 65 A Z 97 a z p.11/52 p.12/52
4 Utilità Caratteri numerici Quindi, ad esempio, possiamo facilmente Controllare se un carattere è una lettera Passare da maiuscole a minuscole e viceversa (c è una differenza di 32 tra ogni lettera maiuscola e corrispondente minuscola) 68 D 100 d Utilità p.13/52 In memoria p.14/52 Possiamo facilmente calcolare il valore di un carattere numerico sottraendo il valore di 0 (48) Esempio: il valore del carattere 2 (ASCII 50) è 50-48=2 Rappresentazione standard MIPS (come in C): Sequenza di valori numerici dei caratteri, terminata da un carattere speciale Null (0) Esempio: CIAO in memoria sarebbe 67, 73, 65, 79, 0 p.15/52 p.16/52
5 Attenzione In SPIM? Questa rappresentazione è abbastanza standard, ma non è universale Controllate nel vostro contesto Come si carica una stringa in memoria? Opzione 1: si riserva memoria con.space, e poi si memorizzano I codici dei singoli caratteri con sb (store byte) Auch... Opzione 2: si mettono I codici direttamente con la direttiva.byte Esempio con CIAO:.byte 67, 73, 65, 79, 0 p.17/52 Direttiva.asciiz p.18/52 Stringhe e caratteri di controllo Nuova direttiva.asciiz stringa Inserisce la stringa, e la termina con null Esempio:.asciiz CIAO Analogamente al C, alcuni caratteri ASCII non stampabili sono rappresentabili tramite cosiddette sequenze di escaping Escape > sfuggire Si sfugge all interpretazione normale di una stringa, e si seleziona un carattere (nel nostro caso, \ p.19/52 p.20/52
6 Caratteri di controllo in SPIM ESERCIZIO \ n : newline (ritorno a capo) \ " : virgolette (") \ t : tab (allinea su colonna) Se il carattere \ è di escape, come si fa allora a stampare una stringa che contiene proprio \? Ad esempio, come si stampa \ n? p.21/52 p.22/52 Ma... UNICODE Tenete a mente, che il mondo non parla solo ASCII ASCII = American... Il mondo parla Unicode L alfabeto universale I caratteri qui sono di 2 bytes p.23/52 p.24/52
7 Per saperne di più... Oltre al processore I processori forniscono le istruzioni basilari (operazioni aritmetiche, salti, load, store...) Però, poi la macchina ha tipicamente altri accessori hardware con cui è possibile interagire Ad esempio, il video, la tastiera, la scheda video, il disco, etc... p.25/52 Il Sistema Operativo p.26/52 Come si fa? Quindi ad esempio, per scrivere delle lettere sul video occorreranno particolari istruzioni che vanno a interagire col video Per ricevere dati dalla tastiera occorreranno particolari istruzioni che interagiscono con la tastiera E così via... Tipicamente, tali istruzioni sono molto complicate, quindi qualcuno ha già scritto il codice per noi, sotto forma di varie funzioni, e ce lo offre il cosiddetto sistema operativo p.27/52 p.28/52
8 Il Sistema Operativo E noi? Serie di funzioni già predefinite, che possiamo usare per interagire con la macchina Vantaggi: su macchine diverse, cambierà il codice delle funzioni scritte nel sistema operativo, ma non i programmi che le usano il nostro programma è solo dipendente dal sistema operativo, non dalla macchina (più o meno...) Noi allora, scrivendo un programma assembly in SPIM, come facciamo a scrivere su video etc etc? SPIM ci fornisce un mini sistema operativo con delle funzioni di base p.29/52 Chiamate al Sistema Operativo Le syscall p.30/52 Possiamo chiamare queste funzioni del sistema operativo Istruzione MIPS: syscall system call, chiamata di sistema Tipicamente: INPUT: $v0 : cosa far fare al sistema operativo (codice della chiamata) $a0 : dato in input (se c è) $a1 : dato in input (se c è) OUTPUT: $v0: dato in output (se c è) p.31/52 p.32/52
9 Mini sistema operativo Stampa su video Mini perché ci sono solo 10 possibili chiamate al sistema Di solito un sistema operativo ne ha molte di più... Noi oggi ne vedremo 5 (codice 1, 4, 5, 8, 10) Ci sono istruzioni per stampare su video: un intero una stringa p.33/52 Stampa un intero Esempio p.34/52 INPUT: $v0 = 1 (codice) $a0 = intero da stampare OUTPUT: Per stampare 7 su video: addi $v0,$zero,1 #codice 1 addi $a0,$zero,7 #output 7 syscall #stampa su video p.35/52 p.36/52
10 Attenzione Stampa di stringhe Stampando un intero, la chiamata al sistema operativo automaticamente converte in decimale Quindi se in $a0 c è 10 (esadecimale), sarà stampato 16 a video INPUT: $v0 = 4 (codice) $a0 = indirizzo della stringa OUTPUT: p.37/52 Leggere un intero Attenzione p.38/52 INPUT: $v0 = 5 (codice) OUTPUT: $v0 = intero letto da tastiera Come nel caso in cui si stampa un intero, quando si legge il sistema assume che noi scriviamo in decimale, e poi converte in esadecimale Esempio: scrivendo da tastiera 10, il computer traduce in A esadecimale p.39/52 p.40/52
11 Leggere una stringa ATTENZIONE INPUT: $v0 = 8 (codice) $a0 = dove mettere la stringa ( buffer ) $a1 = lunghezza della stringa (capacità del buffer) La lunghezza della stringa in a1 comprende il carattere di terminazione null (0) (Simile a fgets in C) OUTPUT: il buffer conterrà la stringa letta Caso tipico p.41/52 Syscall 10 p.42/52 Si riserva lo spazio necessario per la stringa con.space (e si mette un etichetta) Si carica con la l indirizzo della stringa in $a1 con la Vediamo l ultima syscall Codice: 10 Significato: EXIT Esci da SPIM e termina l esecuzione Attenzione al comportamento di SPIM... p.43/52 p.44/52
12 Strutture Strutture Le strutture non sono altro che piu variabili (anche di tipo diverso) collegate tra di loro. Esempio struct S { int a; int b; }; L accesso a questa o quella variabile all interno di una strutture avviene attraverso il nome ed è quindi scritta staticamente nel programma struct S x; x.a=2; Vettori p.45/52 p.46/52 Come si implementano I vettori sono un altro tipo di dati aggregati Si possono dichiarare più variabili dello stesso tipo e accedervi tramite un indice Esempio int a[10]; int x;... a[x]=1; Si può allocare ogni singola variabile di una struttura o un vettore come se non fossero collegate a:.space 4 b:.space 4 Oppure si può associare tutta la memoria necessaria ad una label (indirizzo) e accedere a questa o quella variabile tramite un offset Per esempio, nel caso precedente, b può essere riscritta come a+4 p.47/52 p.48/52
13 Come si implementano Problema Nel primo caso si facilita l accesso ai singoli elementi nel secondo caso si mantiene la visione d insieme Un problema collegato alla rappresentazione/implementazione è come vengono passati dati aggregati a procedure. Per capirci, come implemento la funzione C void sort(int a[10]) p.49/52 Passaggio dei parametri p.50/52 Conseguenze Il passaggio di dati aggregati avviene per indirizzo Tutta la struttura viene rappresentata dall indirizzo del primo elemento Anche in C, del resto, il passaggio di strutture e vettori avviene per puntatori, in modo esplicito per le strutture, attraverso una conversione implicita per i vettori. Le singole variabili che costituiscono il dato aggregato devono essere disposte in memoria in posizioni contigue o comunque avere una disposizione (layout) in memoria nota ed uniforme. La posizione di ciascuna variabile deve essere calcolata a partire dalla prima. Per riprendere l esempio di prima, se $t0 contiene l indirizzo di x, per caricare x.b in $t1 dovremo eseguire lw $t1,4($t0) Notate che l offset è statico! p.51/52 p.52/52
Laboratorio di Architettura lezione 11. La scorsa lezione. Motivi? Word e bytes
Laboratorio di Architettura lezione 11 Massimo Marchiori W3C/MIT/UNIVE La scorsa lezione Nove gradi di separazione Procedure ricorsive Stack Push / Pop Fibonacci Word e bytes Finora, abbiamo solo agito
DettagliLaboratorio di Architettura lezione 11. Massimo Marchiori W3C/MIT/UNIVE
Laboratorio di Architettura lezione 11 Massimo Marchiori W3C/MIT/UNIVE La scorsa lezione Nove gradi di separazione Procedure ricorsive Stack Push / Pop Fibonacci Word e bytes Finora, abbiamo solo agito
DettagliIndirizzamento, lettura e scrittura della memoria
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Indirizzamento, lettura e scrittura della memoria Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica
DettagliIndirizzamento, lettura e scrittura della memoria
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2018-2019 Indirizzamento, lettura e scrittura della memoria Turno A Nicola Basilico Dipartimento di Informatica Via Celoria 18-20133
DettagliMemoria: lettura, scrittura e indirizzamento
Memoria: lettura, scrittura e indirizzamento Ultimo aggiornamento: 27/3/2015 Università degli studi di Milano matteo.re@unimi.it https://homes.di.unimi.it/re/arch2-lab-2015-2016.html Organizzazione della
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
DettagliAssembler MIPS 32 Assembly III
TITLE Assembler MIPS 32 Assembly III Riccardo Solmi 1 Indice degli argomenti Organizzazione della memoria Allineamento dati Allocazione dinamica Programmazione assembly Definizione e gestione di strutture
DettagliRappresentazione (Codifica Binaria dei Numeri) ed Elaborazione delle Informazioni
1 LEZIONE 3 Rappresentazione (Codifica Binaria dei Numeri) ed Elaborazione delle Informazioni LA CODIFICA DEI NUMERI Obiettivo: Codifica in binario dei numeri per favorire l elaborazione da parte dei calcolatori
DettagliLA CODIFICA DELL INFORMAZIONE
LA CODIFICA DELL INFORMAZIONE Prof. Enrico Terrone A. S: 20/2 Lo schema di Tanenbaum Il livello al quale ci interessiamo in questa lezione è il linguaggio macchina, l unico dove le informazioni e istruzioni
DettagliI CARATTERI E LE STRINGHE
I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
DettagliL ambiente di simulazione SPIM
Architettura degli Elaboratori e delle Reti Lezione 14 L ambiente di simulazione SPIM Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 14 1/20
DettagliModulo 1: Le I.C.T. UD 1.2d: La codifica Digitale dei caratteri
Modulo 1: Le I.C.T. : La codifica Digitale dei caratteri Prof. Alberto Postiglione Corso di Informatica Generale (AA 07-08) Corso di Laurea in Scienze della Comunicazione Università degli Studi di Salerno
Dettagli1.2d: La codifica Digitale dei caratteri
1.2d: La codifica Digitale dei caratteri 2 Bibliografia Curtin, 3.6 (vecchie edizioni) Curtin, 2.5 (nuova edizione) CR pag. 9-14 Questi lucidi 3 La codifica dei caratteri Un testo è rappresentato attraverso
DettagliStringhe di caratteri
Stringhe di caratteri PH 2.8 1 Gestione dei caratteri Ogni carattere è rappresentato univocamente mediante un codice numerico rappresentabile usando un byte (codice ASCII) MIPS fornisce le istruzioni lb
DettagliLaboratorio di Architettura
Laboratorio di Architettura Lezione 5 Andrea Torsello Dipartimento di Informatica Università Ca Foscari di Venezia p.1/49 La scorsa lezione Basi della compilazione da alto livello a basso livello Rappresentazione
DettagliGestione dei caratteri
AA 2012-2013 Tipi di variabili Caratteri 26 lettere maiuscole (A - Z) 26 lettere minuscole (a - z) 10 cifre (0-9) vari simboli: ( )!? \ & * % # $ lettere e simboli speciali, ad esempio á é ç Numeri naturali
DettagliIl linguaggio assembly
Il linguaggio assembly Direttive Chiamate di sistema (system call) Esempi 1 Direttive Le direttive (data layout directives) danno delle indicazioni all'assemblatore sul contenuto di un file (istruzioni,
DettagliFetch Decode Execute Program Counter controllare esegue prossima
Stored Program Istruzioni sono stringhe di bit Programmi: sequenze di istruzioni Programmi (come i dati) memorizzati in memoria La CPU legge le istruzioni dalla memoria (come i dati) Ciclo macchina (ciclo
DettagliLA CODIFICA DELL INFORMAZIONE. Prof. Enrico Terrone A. S: 2014/15
LA CODIFICA DELL INFORMAZIONE Prof. Enrico Terrone A. S: 2014/15 Lo schema di Tanenbaum Il livello al quale ci interessiamo in questa lezione è il linguaggio macchina, l unico dove le informazioni e istruzioni
DettagliLaboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly
Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly Scrivere il codice ARM che implementi le specifiche richieste e quindi verificarne il comportamento usando il simulatore
DettagliInterazione con il DOS e il BIOS
Interazione con il DOS e il BIOS ARGOMENTI PRESENTATI IN QUESTI LUCIDI Routine di BIOS e DOS Due modalità diverse di restituire il controllo al DOS L interazione con le routine del DOS: l interrupt 21H
DettagliStringhe in C. Alessandra Giordani Lunedì 23 aprile 2012
Stringhe in C Alessandra Giordani agiordani@disi.unitn.it Lunedì 23 aprile 2012 http://disi.unitn.it/~agiordani/ Stringhe Sono particolari array: Ogni elemento del vettore è di tipo char La stringa è terminata
DettagliSystem calls. Università degli Studi di Milano Corso di Laurea in Informatica, A.A Homepage del corso
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 System calls Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135 Milano (MI)
DettagliSystem calls. Università degli Studi di Milano Corso di Laurea in Informatica, A.A Homepage del corso
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 System calls Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135 Milano (MI)
DettagliTipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010
Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi
DettagliLa rappresentazione delle informazioni
Procedimento di codifica La rappresentazione delle informazioni Come il computer rappresenta le informazioni Il computer per lavorare sui dati, ha bisogno che questi siano espressi come sequenze di 1 e
DettagliLa rappresentazione delle informazioni
La rappresentazione delle informazioni In queste pagine cercheremo di capire come sia possibile rappresentare mediante numeri e memorizzare in un file testi, immagini, video, suoni... Il computer per lavorare
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 11 Corso di Informatica 2009-2010 Lezione 11 1 Utilizzo dei puntatori Funzioni Perche i Puntatori? I puntatori hanno tre importanti applicazioni: 1. Passaggio
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliIstruzioni 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
DettagliI/O da tastiera + Alessandra Giordani Lunedì 2 maggio
I/O da tastiera + costrutti while e if Alessandra Giordani agiordani@disi.unitn.it Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una
DettagliIl linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1
Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali
DettagliModalità di indirizzamento
Modalità di Indirizzamento + Programmi Architettura degli Elaboratori e delle Reti Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it
DettagliRappresentazione. Rappresentazione del testo. Rappresentare numeri. Rappresentazione delle informazioni in codice binario. Caratteri.
Rappresentazione delle informazioni in codice binario Rappresentazione dell Informazione Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo
DettagliAppunti 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 (liverani@mat.uniroma3.it)
DettagliLaboratorio 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
DettagliRappresentazione dell Informazione
Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo
DettagliProgramma del corso. Rappresentazione delle Informazioni. Introduzione agli algoritmi. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori (Reti Locali, Internet) Elementi di Programmazione Rappresentazione
DettagliProgrammare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi
MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme
DettagliCaratteri e stringhe
Caratteri e stringhe Dati testuali Tipi di dato testuali Caratteri Stringhe 5 Dati testuali Tipi di dato testuali I programmi visti finora erano in grado di elaborare esclusivamente informazioni numeriche
DettagliArray. Aggragati di variabili omogenee...
Array Aggragati di variabili omogenee... Cosa è un array È un insieme di variabili omogenee identificato da un indice, ad esempio Se devo leggere 1 numeri dallo standard input e memorizzarli all'interno
DettagliTipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.
Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi
DettagliLa rappresentazione delle informazioni
Parte 8 La rappresentazione delle informazioni Scelta della rappresentazione Di solito è una scelta convenzionale Spesso ci sono vincoli da rispettare Nel caso dei computer il vincolo è la rappresentazione
DettagliInformatica per Statistica Riassunto della lezioni del 14/11/2012 e 16/11/2012
Informatica per Statistica Riassunto della lezioni del 14/11/2012 e 16/11/2012 Igor Melatti Cenni sui puntatori in C Per ogni variabile normale dichiarata, il compilatore riserva una precisa quantità di
DettagliA. Veneziani - Le variabili puntatore
A. Veneziani - Le variabili puntatore I puntatori Una variabile puntatore è atta a contenere un indirizzo di memoria. Questo, quindi, è il tipo di dato contenuto in una variabile puntatore. A seconda dell
Dettagli1.2d: La codifica Digitale dei caratteri
1.2d: La codifica Digitale dei caratteri 2 12 ott 2011 Bibliografia Curtin, 3.6 (vecchie edizioni) Curtin, 2.5 (nuova edizione) CR pag. 9-14 Questi lucidi 3 12 ott 2011 La codifica dei caratteri Un testo
DettagliLa Rappresentazione dell Informazione
La Rappresentazione dell Informazione Parte III I codici Codici a.a. 27-28 Un codice è una funzione che associa ad una sequenza di simboli un significato Codice : {entità} {sequenze di simboli} Un codice
DettagliUn quadro della situazione. Lezione 6 Aritmetica in virgola mobile (2) e Codifica dei caratteri. Dove siamo nel corso. Organizzazione della lezione
Un quadro della situazione Lezione 6 Aritmetica in virgola mobile (2) e Codifica dei caratteri Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output
DettagliPrimi programmi in C
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma
DettagliL insieme delle istruzioni (6)
L insieme delle istruzioni (6) Architetture dei Calcolatori (lettere A-I) Alcune note conclusive I due principi dell architettura a programma memorizzato Uso di istruzioni indistinguibili dai dati Uso
DettagliPrecisazione sui tipi in ANSi C
Precisazione sui tipi in ANSi C Tipi primitivi del C Un tipo è costituito da un insieme di valori ed un insieme di operazioni su questi valori. Classificazione dei tipi primitivi del C scalari aritmetici:
DettagliArchitettura degli Elaboratori Lez. 3 ASM: Strutture di controllo. Prof. Andrea Sterbini
Architettura degli Elaboratori Lez. 3 ASM: Strutture di controllo Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Argomenti della lezione - Il simulatore MARS - Le strutture di controllo - Esempi
DettagliIntro ai tools di MARS
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Intro ai tools di MARS Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135 Milano
DettagliLezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano
Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano L16-20 1/29 Linguaggio
DettagliIngresso ed Uscita in C. Informatica 1 / 15
Ingresso ed Uscita in C Informatica 1 / 15 Input e Output in C Linguaggio C: progettato per essere semplice e con poche istruzioni Non esistono istruzioni di ingresso / uscita (I/O)!!! Ingresso ed uscita
DettagliAllocazione dinamica della memoria
Università degli Studi di Milano Corso di Laurea in Informatica, A.A. 2017-2018 Allocazione dinamica della memoria Homepage del corso Turno A Nicola Basilico Dipartimento di Informatica Via Comelico 39/41-20135
DettagliAllocazione dinamica della memoria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Tipi di memoria dati Nella macchina astratta C esistono tre tipi di memoria per allocare
DettagliEsercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS
Esercitazione 1 Codifica e Rappresentazione dell Informazione Istruzioni Assembly MIPS Claudia Raibulet raibulet@disco.unimib.it Codifica e Rappresentazione dell Informazione Informazioni Generali (I)
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliArchitetture dei Calcolatori
Architetture dei Calcolatori Lezione 11 -- 10/12/2011 Procedure Emiliano Casalicchio emiliano.casalicchio@uniroma2.it Fattoriale: risparmiamo sull uso dei registri q Rispetto alla soluzione precedente
DettagliIntroduzione alla programmazione in linguaggio C
Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA 1 Struttura di un programma Java Un programma Java consiste in un insieme di definizioni di classi. In genere
DettagliModi di indirizzamento
Architettura degli elaboratori Modi di indirizzamento ARGOMENTI DELLA LEZIONE Definizione Indirizzamenti diretti: immediato, assoluto, a registro Indirizzamenti indiretti: indiretto con registro, con spiazzamento,
DettagliRappresentazione di interi
Rappresentazione dei numeri Rappresentazione di interi Supponiamo 2 byte (16 bit) 2 16 = 65536 [-32767, 32768] con m bit 2 m -1 numeri Se prendiamo come segno il primo bit abbiamo ad esempio (01111111)
DettagliInformatica Applicata. introduzione
introduzione 1 INFORMATICA E' la scienza che si propone di raccogliere, organizzare, elaborare e conservare le informazioni gestendole in modo automatico. Il termine deriva dalla fusione delle parole:
DettagliInformatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.
Trasferimento Ambiente esterno Controllo Informatica Mario Pavone - Dept. Mathematics & Computer Science - University of Catania mpavone@dmi.unict.it Rappresentazione dell Informazione L informazione viene
DettagliCorso di Informatica
Corso di Informatica Modulo T2 2 I tipi di dato Prerequisiti Concetto di relazione e funzione Concetto di insieme numerico Operatori aritmetici Operatori relazionali 2 Introduzione Abbiamo visto che un
DettagliProf. Massimiliano Giacomin 21 dicembre NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli
INFORMATICA E PROGRAMMAZIONE Prof. Massimiliano Giacomin 21 dicembre 2017 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli 1. Si consideri il seguente codice per
DettagliLa rappresentazione dell informazione. Capitolo 5 Fluency Conoscere e usare l informatica
La rappresentazione dell informazione Capitolo 5 Fluency Conoscere e usare l informatica Quanti sono? Nel mondo ci sono 10 tipi di persone quelli che capiscono il codice binario e quelli che non lo capiscono.
DettagliTipi di dato semplici
Tipi di dato semplici Abbiamo visto nei primi esempi che il C tratta vari tipi di dato = le dichiarazioni associano variabili e costanti al corrispondente tipo Per tipo di dato si intende un insieme di
DettagliRappresentazione 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
DettagliLinguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin
Linguaggio C Tipi predefiniti Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Il concetto di tipo (reprise) Nome che indica
DettagliEsercizi per il recupero del debito formativo:
ANNO SCOLASTICO 2005/2006 CLASSE 4 ISC Esercizi per il recupero del debito formativo: Facendo esclusivamente uso delle istruzioni del linguaggio macchina mnemonico del microprocessore INTEL 8086 viste
DettagliIl set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini
Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di
DettagliManualino minimale MIPS
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Manualino minimale MIPS Marco Tarini Operazioni aritmetiche Nome Comando completo Esempio Sintassi (es) Significato Semantica
DettagliArchitettura di un elaboratore. Il modello di von Neumann
Architettura di un elaboratore Il modello di von Neumann 4(5) componenti fondamentali unita di elaborazione: CPU memoria centrale: RAM periferiche (memoria di massa) bus di sistema bus di sistema CPU RAM
DettagliPag. 1. La Rappresentazione e la Codifica delle informazioni (parte 2) Tipi di dati. Informatica Facoltà di Medicina Veterinaria
1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Tipi di dati Informatica Facoltà di Medicina Veterinaria La Rappresentazione e la Codifica delle
DettagliIstruzioni di trasferimento dati
Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:
DettagliVariabili e input/ Alessandra Giordani Lunedì 18 marzo
Variabili e input/ output da tastiera Alessandra Giordani agiordani@disi.unitn.it Lunedì 18 marzo 2013 http://disi.unitn.it/~agiordani/ Es. compilazione helloworld.c 2 Variabili e valori Una variabile
DettagliLa Codifica e la Rappresentazione dei dati
La Codifica e la Rappresentazione dei dati www.mat.unical.it/bria Problema Molte azioni che si compiono sono finalizzate alla soluzione di problemi Ogni problema è caratterizzato da un insieme di dati
DettagliLaboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly
Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Programmazione Assembly Scrivere il codice ARM che implementi le specifiche richieste e quindi verificarne il comportamento usando il simulatore
DettagliProgrammazione (imperativa)
Programmazione (imperativa) Corso di Laurea in Informatica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Lunedì 12.00-13.00 e 14.00-16.00 Mercoledì 14.00-17.00 Laboratorio: Giovedì 12.00-13.00
DettagliMini-dispensa sui puntatori in C
Mini-dispensa sui puntatori in C P. Zavarise Versione 1 ottobre 013 1 Valore e indirizzo di una variabile Ripassiamo il significato di dal punto di vista del programmatore. int a=; Viene creata una variabile
DettagliTipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.
Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned
DettagliInformatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
DettagliModi di indirizzamento. Indicano come accedere all operando di interesse dell istruzione. Il MIPS ha 5 modi di indirizzamento:
Modi di indirizzamento Indicano come accedere all operando di interesse dell istruzione. Il MIPS ha 5 modi di indirizzamento: immediato (immediate) slti $1,$2,100 registro (register) slti $1,$2,100 base/spiazzamento
DettagliSystem Calls, Register Spilling
System Calls, Register Spilling Ultimo aggiornamento: 8/4/2016 UNIVERSITÀ DEGLI STUDI DI MILANO nicola.basilico@unimi.it http://basilico.di.unimi.it/ Esercizio 3.1 Eseguire il seguente codice assembly
DettagliArchitettura degli elaboratori Lezione di laboratorio 04/03/15. Dr. Francesco Giacomini e Dr. Matteo Manzali Università degli Studi di Ferrara
Architettura degli elaboratori Lezione di laboratorio 04/03/15 Dr. Francesco Giacomini e Dr. Matteo Manzali Università degli Studi di Ferrara Informazioni generali Durante la parte di laboratorio siete
DettagliIstruzioni di controllo del flusso
Istruzioni di controllo del flusso Il flusso di esecuzione è normalmente sequenziale Le istruzioni di controllo cambiano la prossima istruzione da eseguire Istruzioni di salto condizionato branch if equal
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliUniversità degli Studi di Cassino
Corso di Indirizzamento Pseudo istruzioni Anno Accademico Francesco Tortorella Modi di indirizzamento Indicano come accedere all operando di interesse dell istruzione. Il MIPS ha 5 modi di indirizzamento:
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
Dettagli