Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2015-16 ISA e Asm: esempi e suggerimenti.

Slides:



Advertisements
Presentazioni simili
Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
Advertisements

Procedure In assembler.
Procedure e funzioni A. Ferrari.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Ottimizzazione statica del codice per processori pipelined Canella Matteo & Miglioli Filippo.
Chiamate a Procedure. Per lesecuzione di una procedura, un programma deve eseguire i seguenti sei passi: mettere i parametri in un posto dove la procedura.
SPIM Esercizi. Esercizio 7 – load/store Il codice deve: Inserire in memoria la word 0x a Leggere questo dato e inserirlo in s0 Sommarci 5 Salvare.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
Laboratorio di informatica: ASSEMBLER
Università degli Studi di Roma La Sapienza Architettura degli elaboratori II Funzioni.
File.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Caratteristiche principali dell’architettura del processore MIPS
Criticità sui dati Consideriamo una sequenza di 5 istruzioni
Criticità sui dati (1° esempio)
Criticità sul controllo
Criticità sui dati (esempio da fare on line)
Criticità sul controllo
Criticità sul controllo
Corso di Informatica Applicata - Lezione 3 - © 2005 Saverio De Vito Corso di Informatica Applicata Lezione 3 Università degli studi di Cassino Corso di.
Il Linguaggio Macchina
memoria gestita staticamente:
Architettura degli Elaboratori II (canale P-Z) Linguaggi e moduli
PROGRAMMAZIONE: linguaggi
Introduzione al linguaggio assembly del microprocessore a parte
Introduzione al linguaggio assemby del microprocessore a parte
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura degli Elaboratori II (canale P-Z) Istruzioni di controllo Dott. Franco Liberati.
INTERFACCIAMENTO ASSEMBLY - C++
Architettura degli Elaboratori II (canale P-Z) Modi di Indirizzamento Dott. Franco Liberati.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
Programma di Informatica Classi Prime
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 Università di Pavia - corso di Calcolatori Elettronici PROGETTO DI UN SISTEMA BASATO SU  P PROBLEMA REALE SVILUPPO HARDWARESVILUPPO SOFTWARE INTEGRAZIONE.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione.
Calcolatori Elettronici Assemblatore, Linker e Loader
Calcolatori Elettronici Il Processore
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
Allievi Elettrici - AA Le funzioni ricorsive in C
Programmazione Assembly
CALCOLATORI ELETTRONICI
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Corso di Laurea in Informatica Architettura degli elaboratori a.a ISA e Asm: esempi e suggerimenti.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma “La Sapienza”
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Esercitazione 3 Introduzione allo SPIM Pseudo-Istruzioni
L’esecuzione dei programmi
SPIM Esercizi. Esercizio 1 – il comando ‘li’ Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.
Concetti Fondamentali sulla Programmazione
Esercitazione 4 Chiamate di procedure Claudia Raibulet
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Il software Claudia Raibulet
Esercizi.
Convenzioni chiamate a procedure Riassunto Pratico.
Informatica e Informatica di Base
Corso di Laurea in Informatica Architettura degli elaboratori a.a Programmazione Assembly: procedure (1) Supporto hardware alle procedure Passaggio.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata (3) Istruzioni J-type Istruzioni di salto Istruzioni.
Corso di Laurea in Informatica Architettura degli elaboratori a.a Programmazione Assembly: procedure (2) Convenzioni di uso dei registri Utilizzo.
Transcript della presentazione:

Corso di Laurea in Informatica Architettura degli elaboratori a.a ISA e Asm: esempi e suggerimenti

Appendice A o B? Appendice B Patterson- Hennessy Gli assemblatori, il linker e il simulatore SPIM Fondamentale per: Funzionalità della catena di programmazione Descriizone di funnzioni e formati delle istruzioni asm Imparate a usarla!!! Potrete usarla in sede di esame/compitino La troverete sul desktop Attenzione: nelle edizioni vecchie si chiama Appendice A Su Moodle la trovate come Appendice A In questi lucidi è chiamata Appendice A A.A ISA - ASM (esempi e suggerimenti)2

Obiettivi e suggerimenti Capire come sono codificate le istruzioni a livello macchina e come possono essere rappresentate Una istruzione macchina è sempre di 32 bit (1 Word) rappresentati spesso in esadecimale Per capire che istruzione è e cosa fa: 1.Convertire in binario 2.Guardare il codice operativo (opcode) (primo field dell’istruzione, bit 31:26), che consente di capire di che tipo di istruzione si tratta e quindi come i bit successivi vadano raggruppati in field 3.Guardare i singoli field, capirne il significato e capire in dettaglio cosa fa l’istruzione Come si fa? Suggerimenti: Usare la tabella Fig. A.10.2 dell’Appendice A del Patterson-Hennessy (Appendice B in edizioni più recenti rispetto a quella disponibile sul sito) La tabella è piuttosto complicata. Concentrarsi sulla prima colonna con intestazione op(31:26) e, se serve, sulla sesta con intestazione func(5:0). Le altre colonne sono relative a istruzioni “strane” che non saranno oggetto di esame (ma non è una cattiva idea guardarne qualcuna...) Cercare in Appendice A l’istruzione, ricavando il formato e il significato A.A ISA - ASM (esempi e suggerimenti)3

Esempio 1 (istruzione R-type) Istruzione hex: 0x010a4822 Binario: opcode: ovvero 0x00 ovvero 0 Dalla tabella (Fig. A.10.2, colonna 1): si capisce che è una istruzione di tipo R funct: ovvero 0x22 ovvero 34 Dalla tabella, colonna 6: istruzione “sub” Cercare “sub” in Appendice: Subtract Quindi i campi successivi a opcode sono: primo registro sorgente (5 bit) ovvero 0x08 ovvero 8 secondo registro sorgente (5 bit) ovvero 0x0a ovvero 10 registro destinazione (5 bit) ovvero 0x09 ovvero 9 il campo shamt non è rilevante per questa istruzione L’istruzione: sottrae il contenuto del registro 10 dal contenuto del registro 8 mette il risultato nel registro 9 Formati asm: sub $9, $8, $10 sub $t1, $t0, $t2 (vedere Fig. A.6.1) A.A ISA - ASM (esempi e suggerimenti)4

Esempio 2 (istruzione I-type) Istruzione hex: 0xad0a0000 Binario: opcode: ovvero 0x2b ovvero 43 Dalla tabella (Fig. A.10.2, colonna 1): istruzione “sw” Cercare “sw” in Appendice: Store word, da cui si capisce che: è una istruzione che fa riferimento a memoria (formato I) Quindi i campi successivi a opcode sono: registro base (5 bit) ovvero 0x08 ovvero 8 registro sorgente (5 bit) ovvero 0x0a ovvero 10 offset (spiazzamento) rispetto al registro base (16 bit) L’istruzione: memorizza il contenuto del registro 10 all’indirizzo ottenuto sommando offset e contenuto del registro base Formati asm: sw $10, 0($8) sw $t2, 0($t0) (vedere Fig. A.6.1) A.A ISA - ASM (esempi e suggerimenti)5

Leggere e scrivere programmi “Non eludibile”: saper leggere semplici programmi (“cosa fa”) Per imparare a farlo: Prendere programmi già scritti (dal testo o dalle esercitazioni o dal materiale di Laboratorio) Farli girare usando un emulatore (SPIM o MARS) Guardare bene cosa succede (contenuti della memoria e dei registri) andando in step-by-step Provare a fare qualche variazione dei programmi NB: Molti esempi non fanno operazioni di I/O. Per capire cosa fanno, usare l’emulatore e, a fine esecuzione, guardare i contenuti delle variabili e/o dei registri che devono contenere il risultato. “Approfondimento”: saper scrivere un programma dato il problema da risolvere Provare a scrivere autonomamente qualche semplice programma NB: ai fini dell’esame: la parte non eludibile comprende la lettura di qualche semplice frammento di codice e la comprensione di “cosa fa”. E’ poco probabile riuscire a farlo se non si è provato a scrivere qualche programma!!! L’approfondimento riguarda la capacità di scrivere un programma in sede di esame (quindi risolvendo in tempo limitato un problema). A.A ISA - ASM (esempi e suggerimenti)6

Istruzioni “base” e pseudoistruzioni “Non eludibile”: conoscere i tipi principali di istruzioni ISA e le corrispondenti rappresentazioni simboliche Asm (istruzioni “base”) Per le istruzioni logiche (and, or, shift etc) vedere esempi in Laboratorio Per le altre...guardare i programmi esempio “Non eludibile”: Differenza tra pseudoistruzioni e istruzioni “base” Chi traduce le pseudoistruzioni in istruzioni base “Non eludibile”: Saper trovare la definizione delle istruzioni in Appendice A (che potrete usare nei compitini e nell’esame) Suggerimento: quando si esegue un programma, guardare: le istruzioni sorgente le istruzioni base corrispondenti capire cosa fanno le istruzioni base che corrispondono a una pseudoistruzone (esempi: lw, sw...) è essenziale per capire esattamente cosa fa un programma e seguirne l’esecuzione step-by-step Approfondimento Esempi di possibili traduzioni da pseudo istruzioni a istruzioni base A.A ISA - ASM (esempi e suggerimenti)7

Strutture di controllo “Non eludibile”: realizzazione di strutture di controllo in Asm Capitolo 2.7 del Patterson-Hennessy (ed. 4 o edizione italiana) Lucidi Esercitazioni Esercizi in Laboratorio di Programmazione Assembly...e provare a scrivere qualche semplicissimo programma, usando vari tipi di istruzioni branch etc. loop di vario genere if-then-else... Commento: in un linguaggio di alto livello, “if”, “then”, “else”, “while”, “for” etc. sono parole chiave del linguaggio con una semantica ben definita in un programma Asm possono comparire, ma sono semplicemente etichette che di per sé non hanno un significato specifico Es: una etichetta cui saltare può essere chiamata “then” o “pippo”...non cambia niente, se non la leggibilità del programma A.A ISA - ASM (esempi e suggerimenti)8

Catena programmativa “Non eludibile”: capire bene chi fa cosa nella catena programmativa “Non eludibile”: Direttive (.data) e istruzioni eseguibili (.text) Appendice A Vedere esempi in Laboratorio (Inizializzazioni) Ogni volta che si esegue un programma, guardare: cosa c’è in memoria (Data segment) prima dell’esecuzione come cambiano i contenuti della memoria durante l’esecuzione A.A ISA - ASM (esempi e suggerimenti)9

Procedure (II compitino) Come realizzare procedure in Asm Capitolo 2.8 del Patterson-Hennessy (ed. 4 o edizione italiana) Lucidi Esercitazione 4 Esercizi in Laboratorio di Programmazione Assembly Concetti base (“non eludibili”) Supporto hw per le procedure (jal) Convenzioni di uso dei registri per il passaggio parametri Esempi elementari di procedure non innestate Passaggio parametri “by value” e “by reference” (esempi sui vettori) Approfondimenti Uso dello stack Esempi elementari di procedure innestate Uso dello stack per il salvataggio di $ra Uso dello stack per il salvataggio dei registri Uso dello stack per variabili locali alla procedura A.A ISA - ASM (esempi e suggerimenti)10

Syscall (II compitino) In un sistema reale esiste il Sistema Operativo...che è un programma (che lavora in modo privilegiato, etc.) un programma si scrive usando chiamate a funzioni di SO (“Syscall”) che realizzano specifici servizi (I/O, gestione memoria etc.) I simulatori MARS e SPIM forniscono alcune Syscall è come se sulla macchina MIPS simulata esistesse già un pezzetto di OS Un servizio di sistema si richiede in modo simile a una chiamata di procedura in $v0 si imposta quale servizio si vuole invocare vedere tabella delle Syscall: testo Appendice B (ex A) figura B.9.1, oppure help on-line di MARS si impostano eventuali altri argomenti di chiamata si scrive “syscall” Esempi: Laboratorio: Fibonacci, Ciclo.2 e altri) Approfondimenti syscall è una istruzione (codice macchina: 0x c) che genera una eccezione (Patterson cap. 4.9) le eccezioni producono il “salto” a parti di OS che lavorano in modo privilegiato (“kernel mode”) Scrivere qualche programma che usa syscall per fare operazioni di I/O A.A ISA - ASM (esempi e suggerimenti)11