Esempio scriviamo un programma in linguaggio macchina che: trasferisce il contenuto delle 2 parole della RAM di indirizzi 64 e 68 nei registri R 0 ed R.

Slides:



Advertisements
Presentazioni simili
LINGUAGGIO MACCHINA e ASSEMBLER
Advertisements

Informatica Generale Marzia Buscemi
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
MODULO 3 – ELABORAZIONE TESTI
Programmazione assembler
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
Introduzione al linguaggio C
Programmazione Procedurale in Linguaggio C++
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Informatica di base A.A. 2003/2004 Algoritmi e programmi
File.
Larchitettura di Von Neumann CPU RAM Mem second I/O bus.
Alcuni esercizi e domande per il compitino quali sono le parti principali dellarchitettura di von Neumann? citare le caratteristiche salienti della RAM.
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)
Cosè un programma? LALA PROGRAMMAZIONE PROGRAMMAZIONELALA PROGRAMMAZIONE PROGRAMMAZIONE UN ELENCO DI ISTRUZIONI, APPARTENENTI A UN BEN DEFINITO LINGUAGGIO,
Il Linguaggio Macchina
Codifica di algoritmi linguaggio macchina vs programmazione strutturata Lab Programmazione - turno /2006.
Organizzazione del corso
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
1 laboratorio di calcolo II AA 2003/04 seconda settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
Lezione 4 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Lezione 5 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Lezione 4 informatica di base per le discipline umanistiche vito pirrelli Istituto di Linguistica Computazionale CNR Pisa Dipartimento di linguistica Università
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
I File.
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Dall’algoritmo al programma.
L' ARCHITETTURA DI VON NEUMANN
Architettura del calcolatore
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
I sistemi di numerazione
Strutture dati elementari
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2014 Marco D. Santambrogio – Gianluca Durelli -
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 11 e 12 -
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Architettura di una CPU
Architettura del calcolatore
Elettronica Digitale (II Parte) 10-11_5 1 ELETTRONICA DIGITALE II (5) 6/12 Il processo di assemblaggio.
Vettori (a una dimensione)
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Gestione dei dispositivi di I/O:
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
Il software Componente del computer costituita dai: –programmi di base per la gestione del sistema –programmi applicativi per l’uso del sistema Queste.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
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.
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.
Informatica Generale Marzia Buscemi
Copyright, 1996 © Dale Carnegie & Associates, Inc. Fondamenti di Informatica Prof. Livio Colussi Ufficio: via Belzoni 7, I piano Indirizzo
2 bits di mantissa e 3 di esponente = 0 =
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Esercizi.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Informatica Lezione 4 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 15 Maggio.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 20 Maggio.
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.
Conosciamo…il computer
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

esempio scriviamo un programma in linguaggio macchina che: trasferisce il contenuto delle 2 parole della RAM di indirizzi 64 e 68 nei registri R 0 ed R 1 somma i contenuti dei registri R 0 ed R 1 trasferisce il risultato nella parola della RAM all’indirizzo 60

Copia 68 in R1 Somma R0 e R1 Copia 64 in R Copia R0 in 60 RAM RAM byte parola byte

Problemi del linguaggio macchina: i programmi in binario sono difficili da scrivere, capire e modificare. il programmatore deve occuparsi di gestire la RAM: difficile ed inefficiente. primo passo  Assembler

Caratteristiche dell’Assembler codici mnemonici per le operazioni nomi mnemonici (identificatori) al posto degli indirizzi RAM dei dati nomi mnemonici (etichette) al posto degli indirizzi RAM delle istruzioni (usati nei salti) avanzate: tipi dei dati INT e FLOAT (normalmente non presenti)

codice-op mnemonici: trasferimento: LOAD (RAM  CPU) e STORE (CPU  RAM) aritmetiche: ADD,SUB,MULT,DIV,MOD, FADD,FSUB,FMULT,FDIV input/output: READ (U-INP  CPU), WRITE (CPU  U-OUT) test: COMP,FCOMP salto: BREQ,BRGT,BRLT,BRGE,BRLE, BRANCH terminazione: STOP

stesso esempio del linguaggio macchina Z : INT ; X : INT 38; Y : INT 8 ; LOAD R0 X; LOAD R1 Y; ADD R0 R1; STORE R0 Z; dichiarazioni degli identificatori dei dati istruzioni assembler

esempio carica due valori dalla RAM, li somma e mette il risultato al posto del maggiore dei 2 numeri sommati (nel caso siano uguali, non importa in quale dei due si mette la somma)

X: INT 38; Y: INT 8; LOAD R0 X; LOAD R1 Y; LOAD R2 X; ADD R2 R1; COMP R0 R1; BRGE maggiore; STORE R2 Y; STOP; maggiore: STORE R2 X; STOP;

flowchart LOAD R0 X; LOAD R1 Y; LOAD R2 X; ADD R2 R1; STORE R2 X; STOP; STORE R2 Y; STOP; SINO test R0  R1?

esempio Legge un reale X da input, ne calcola il valore assoluto e lo stampa.

ZeroF: 0 X: ? Absx: ? R0: ? R1: ? ? RC: RAM CPU ZeroF : FLOAT 0; X: FLOAT; AbsX: FLOAT; READ STINP X; LOAD R0 ZeroF; LOAD R1 X; FCOMP R1 R0; BRGE maggiore; FSUB R0 R1; STORE R0 AbsX; BRANCH stampa; maggiore: STORE R1 AbsX; stampa: WRITE STOUT AbsX; STOP;

flowchart READ STINP X; LOAD R0 ZeroF; LOAD R1 X; FSUB R0 R1; STORE R0 AbsX; WRITE STOUT AbsX; STOP; SINO R1  R0? STORE R1 AbsX; maggiore: stampa:

FSUB R0 R1; STORE R0 AbsX; SINO R1  R0? STORE R1 AbsX; condizione o test

Laboratorio Guidato 1° Via Paolotti Via Marzolo Via Belzoni Lab. Presso il Laboratorio del Dip. Matematica Chimica Ind Sc. Mat. e Sc. Geol Chimica

Cose da Fare 1)Inserire nome, cognome, numero di matricola e corso di studi. 2)Si ottiene un nome di utenza (Username) ed una parola di accesso (Password) che permettono di accedere al laboratorio. Ricopiarle accuratamente su di un foglio di carta e conservarle. Se le si perde o si commettono errori nella trascrizione non si può più accedere al laboratorio.

3)Usando username e password entrare nel sistema operativo Linux 4)Usare Netscape per mettersi in lista per il compitino 5)Aprire una shell di Linux 6)Aprire emacs per scrivere un programma Assembler nel file prog usando il comando: emacs prog &

Il programma deve leggere le basi A e B e l’altezza H di un trapezio, calcolarne l’area e stamparla. Prepararsi il programma assembler scritto su di un foglio di carta.

7)Eseguire tale programma nella shell usando il comando: interprete prog 8)Se ci sono errori correggere il programma e rieseguirlo 9)Quando funziona salvarlo, chiudere emacs ed uscire da Linux

Esempio potenza Leggere un intero positivo N e stampare i bit della sua rappresentazione interna. Esempio

N: INT ; Bit : INT; Nbit : INT 32; Zero : INT 0; Uno : INT 1; Due : INT 2; READ STINP N; LOAD R1 Uno; LOAD R2 Due; LOAD R0 Zero; LOAD R3 Nbit; Ciclo: COMP R0 R3; BRGE Esci; LOAD R4 N; MOD R4 R2; STORE R4 Bit; WRITE STOUT Bit; LOAD R4 N; DIV R4 R2; STORE R4 N; ADD R0 R1; BRANCH Ciclo; Esci: STOP;

N: INT ; Bit : INT; Nbit : INT 32; Zero : INT 0; Uno : INT 1; Due : INT 2; READ STINP N; LOAD R1 Uno; LOAD R2 Due; LOAD R0 Zero; LOAD R3 Nbit; N: ? Bit: ? Nbit: R0: ? R1: ? ? RC: Zero: ……0000 Uno: ……0001 Due: ……0010 R2: ? R3: ? R4: ? … ……0001 ……0010 ……

Ciclo: COMP R0 R3; BRGE Esci; LOAD R4 N; MOD R4 R2; STORE R4 Bit; WRITE STOUT Bit; LOAD R4 N; DIV R4 R2; STORE R4 N; ADD R0 R1; BRANCH Ciclo; Esci: STOP; N: … Bit: ? Nbit: R0: ……0000 R1: ……0001 ? RC: Zero: ……0000 Uno: ……0001 Due: ……0010 R2: ……0010 R3: R4: ? ….00101……0001 ….00101… ……0001 ….00010… ….00010… ……0010 … … ……