I.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi. Elementi di Assembly 8086

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "I.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi. Elementi di Assembly 8086"

Transcript

1 I.T.I. A. RIGHI e VIII Napoli Specializzazione Informatica Tradizionale Corso D Materia: Sistemi Elementi di Assembly

2 Assembly 8086 I registri Per poter elaborare le informazioni ricevute dall esterno, un Processore ha bisogno di memorizzare gli operandi temporaneamente in locazioni di memoria in attesa di poter operare su di essi per eseguire le operazioni richieste. 2

3 Assembly 8086 I registri DEFINIZIONE I Registri sono locazioni di memoria ultraveloci (hanno la velocità del clock) in stretto contatto con tutte le altre parti della CPU a cui appartengono, con le quali interagiscono al fine di elaborare i dati pervenuti, e organizzare il loro smistamento 3

4 Assembly 8086 I registri I registri sono di norma specializzati, cioè sono in grado di compiere al meglio determinate operazioni anziché altre; usare un registro diverso da quello specializzato non vanifica l operazione desiderata, ma la rende meno efficiente e più costosa (in termini di tempo di esecuzione e di spazio necessario nella memoria di programma). 4

5 Assembly 8086 I registri Il numero e la dimensione dei registri si sono evoluti con la storia dei processori, come anche la disponibilità di nuove istruzioni (dal 386 al Pentium IV i registri sono a 32 bit). In ogni caso i vecchi registri a 16 bit sono ancora riconosciuti e utilizzati nella programmazione. 5

6 Assembly 8086 I registri Nell 8086 il programmatore ha accesso a 14 registri a 16 bit - 4 registri generali - 4 registri segmento - 4 registri puntatori o indice - 2 registri di controllo contatore di programma registro di flag 6

7 Assembly 8086 I registri I Registri dell

8 Assembly 8086 I registri I registri generali I registri di uso generale (AX,BX,CX,DX) possono essere utilizzati così come sono definiti (cioè a 16 bit) o in due metà a 8 bit (AH AL, BH BL ecc.. dove H = High, ovvero parte alta e L = Low, parte bassa. Il loro impiego nell una o nell altra dimensione dipende dal contesto, cioè dall istruzione che li coinvolge. 8

9 Assembly 8086 I registri R E G I S T R I G E N E R A L I 9

10 Assembly 8086 I registri Dividono la memoria in segmenti da 64kb. Vengono usati con altri registri a 16 bit per accedere a tutta la memoria disponibile. 10

11 Assembly 8086 I registri 11

12 Assembly 8086 I registri Infine troviamo il contatore di programma e il registro dei flag (flag = segnalazione) Contatore di programma IP (Instruction Pointer). Il processore punta, cioè contiene l indirizzo del codice operativo dell istruzione che sta per essere eseguita. 12

13 Assembly 8086 I registri REGISTRO DEI FLAG Questo registro ha un impiego completamente diverso da tutti gli altri. Il suo contenuto non si utilizza nella consueta forma di word, ma in funzione dei singoli bit in esso contenuti; dei 16 bit disponibili, solo 9 sono significativi, mentre i rimanenti 7 sono inutilizzati. - 6 bit sono i flag di stato, e sono influenzati dal risultato delle istruzioni aritmetico logiche -3 bit sono flag di controllo, controllabili da programma con opportune istruzioni dedicate 13

14 Assembly 8086 I registri Il compito di questo registro è molto importante perché consente al processore di prendere decisioni. Il valore binario di un singolo flag è dunque sufficiente ad obbligare il processore ad eseguire un codice invece di un altro. Non esistono istruzioni che modificano in blocco questo registro; è in ogni caso possibile salvarne il valore nello stack o recuperarlo dallo stack. 14

15 Assembly 8086 I registri FLAG DI STATO CF (Carry Flag) = 1 se una somma/sottrazione ha prodotto riporto/prestito PF (Parità Flag) = 1 se il risultato di un operazione contiene un numero pari di 1 AF (Auxiliary Flag, flag di riporto ausiliario), usato nell aritmetica BCD ZF (Zero Flag) = 1 se un operazione ha dato risultato nullo SF (Sign Flag) = al bit più significativo (e cioè al segno) dell ultima operazione 0: positivo, 1: negativo) OF (Overflow Flag) = 1 se l operazione ha prodotto overflow 15

16 Assembly 8086 I registri FLAG DI CONTROLLO TF (Trap Flag) se = 1 permette l esecuzione passopasso di un programma IF (Interrupt Flag) se = 0 permette di disabilitare le interruzioni provenienti dalle periferiche DF (Direction Flag) utilizzata nella gestione delle stringhe per stabilire se DI o SI devono essere incrementati (DF=0) o decrementati (DF=1). 16

17 IL LINGUAGGIO MACCHINA E L ASSEMBLY Un calcolatore è capace di elaborare informazioni in base ad una serie di istruzioni. fornitegli dall utente. Tali istruzioni scritte in codice binario sono direttamente interpretabili dall Unità Centrale e rappresentano il cosiddetto programma eseguibile o programma espresso in linguaggio macchina. Risulta chiaro che tale modo di rappresentazione delle istruzioni comporta notevoli difficoltà per le persone che devono scrivere e interpretare i programmi. 17

18 IL LINGUAGGIO MACCHINA E L ASSEMBLY Per semplificare il lavoro dei programmatori è stato messo a punto di un codice più comprensibile all uomo (codice mnemonico) che viene tradotto da un programma (assembler), nella serie corrispondente di zero e uno (codice binario) interpretabili dalla macchina. Il linguaggio nato dalla simbolizzazione mnemonica del codice macchina prende il nome di assembly. Tra il linguaggio macchina e l assembly esiste una corrispondenza uno a uno, cosa che li rende funzionalmente equivalenti. 18

19 IL LINGUAGGIO MACCHINA E L ASSEMBLY Esiste quindi un legame molto stretto tra il linguaggio Assembly e il processore in quanto il codice operativo viene sostituito con una parola chiave (ovvero l abbreviazione del termine inglese che definisce l operazione da compiere), e agli indirizzi binari degli operandi vengono associati dei nomi simbolici più facilmente interpretabili dal programmatore. Pertanto è necessario realizzare un assembly diverso per ciascun tipo di processore (diversamente dai linguaggi ad alto livello, come il Pascal, dove vengono definite istruzioni standard indipendenti dalla struttura fisica dell elaboratore). 19

20 IL LINGUAGGIO MACCHINA E L ASSEMBLY Ciò nonostante, le istruzioni di qualsiasi linguaggio Assembly possono essere raggruppate in categorie ben definite, poiché ogni calcolatore deve essere in grado di compiere determinate azioni indipendentemente dal tipo di Assembly contenuto. 20

21 IL LINGUAGGIO MACCHINA E L ASSEMBLY Qualsiasi linguaggio Assembly contiene: - istruzioni per il trasferimento dati - istruzioni per l esecuzione di operazioni aritmetiche sui numeri interi - istruzioni per l esecuzione di operazioni logiche sull intero dato o sui singoli bit - istruzioni per modificare la sequenza di esecuzione di un programma 21

22 IL LINGUAGGIO MACCHINA E L ASSEMBLY Altre istruzioni invece permettono di migliorare la potenza del processore e lo rendono più adeguato per la risoluzione di determinate problematiche: - istruzioni per l esecuzione di operazioni in virgola mobile - istruzioni per la gestione di stringhe di caratteri - istruzioni per la gestione dell Input/Output 22

23 Assembly 8086 Le istruzioni di base trasferimento dati ISTRUZIONI DI BASE PER IL TRASFERIMENTO DI DATI: MOV l istruzione di base per operare il trasferimento di dati a 8 o a 16 bit è MOV, il cui formato è: MOV destinazione, sorgente ed equivale alla forma Pascal: destinazione:=sorgente destinazione può essere solo un registro o una variabile (locazione di memoria); sorgente può essere una costante, un registro o una variabile (locazione di memoria). 23

24 Assembly 8086 Le istruzioni di base trasferimento dati Inoltre sorgente e destinazione devono sottostare alle seguenti regole: - non possono riferirsi entrambe a due variabili; - devono essere fra loro compatibili in termini di dimensioni. 24

25 Assembly 8086 Le istruzioni di base trasferimento dati ISTRUZIONE MOV Schema riassuntivo 25

26 Assembly 8086 Le istruzioni Aritmetiche All interno del calcolatore i valori interi positivi vengono rappresentati nella loro naturale configurazione binaria, mentre quelli negativi assumono la notazione in complemento a due. Di conseguenza, anche le istruzioni che consentono di effettuare le quattro operazioni elementari tra valori interi (a 8 o a 16 bit) faranno riferimento a questo tipo di codifica e sarà compito del programmatore interpretare, di volta in volta, il risultato in maniera corretta. 26

27 Assembly 8086 Operazioni Aritmetiche Addizione ADD Il formato generale di un istruzione aritmetica di addizione è: ADD destinazione, sorgente ed equivale alla forma Pascal: destinazione:= destinazione+sorgente dove per destinazione e sorgente vale quanto già detto per l istruzione MOV. 27

28 Assembly 8086 Operazioni Aritmetiche In base al risultato ottenuto vengono modificati i bit di stato del registro dei flag. In particolare: SF assume il valore del bit più significativo del risultato, che ne rappresenta il segno; ZF assume il valore 0 se il risultato dell operazione è diverso da zero, 1 se il risultato dell operazione è 0; CF assume il valore 1 se nell operazione si è verificato un riporto sul bit più significativo, 0 negli altri casi. 28

29 Assembly 8086 Operazioni Aritmetiche Esempio di addizione e contenuto del registro dei flag dopo l esecuzione del programma. 29

30 Assembly 8086 Operazioni Aritmetiche Sottrazione SUB Il formato generale di un istruzione aritmetica di sottrazione è: SUB destinazione, sorgente ed equivale alla forma Pascal: destinazione:= destinazione - sorgente dove per destinazione e sorgente vale quanto già detto per l istruzione MOV. In base al risultato ottenuto vengono modificati i bit di stato del registro dei flag esattamente come avveniva nel caso dell addizione. 30

31 Assembly 8086 Operazioni Aritmetiche Esempio di operazione Sub e contenuto del registro dei flag dopo l esecuzione del programma. 31

32 Assembly 8086 Operazioni Aritmetiche Moltiplicazione Il linguaggio assembly prevede istruzioni diverse per la moltiplicazione a seconda che i fattori vengano interpretati come numeri naturali (senza segno) o come numeri relativi (con segno). MUL L istruzione di moltiplicazione tra numeri naturali, che prevede sempre implicitamente l uso dell accumulatore, ha il seguente formato: MUL sorgente dove sorgente può essere un registro o una variabile (locazione di memoria). 32

33 Assembly 8086 Operazioni Aritmetiche Se sorgente è di tipo byte, il valore di sorgente viene moltiplicato per quello contenuto in AL e il risultato, calcolato su 16 bit, posto in AX. AX:= sorgente* AL Bit di flag: CF=0 e OF=0 se AH=00 CF=1 e OF=1 in tutti gli altri casi (AH 00) Gli altri bit sono indefiniti 33

34 Assembly 8086 Operazioni Aritmetiche Esempio di operazione MUL Con Sorgente di tipo Byte 34

35 Assembly 8086 Operazioni Aritmetiche Se sorgente è di tipo word, il valore di sorgente viene moltiplicato per quello contenuto in AX e il risultato, calcolato su 32 bit, posto in DX:AX. DX:AX := sorgente* AX Bit di flag : CF=0 e OF= se DX=0000 CF=1 e OF=1 in tutti gli altri casi (DX 0000) Gli altri bit sono indefiniti 35

36 Assembly 8086 Operazioni Aritmetiche Esempio di operazione MUL con Sorgente di tipo WORD 36

37 Assembly 8086 Operazioni Aritmetiche IMUL L istruzione di moltiplicazione tra numeri relativi è IMUL. Opera in modo del tutto analogo a MUL, con l unica differenza che il bit più significativo degli operandi viene considerato come bit di segno. Bit di flag : CF=0 e OF=0 solo se la parte più significativa del risultato rappresenta solo un estensione a 16 bit del bit di segno (tutti i bit pari a 0 o a 1 e uguali al bit più significativo della parte bassa. In altre parole quando CF e OF valgono 1, indicano che AH o DX contengono cifre significative del risultato. 37

38 Assembly 8086 Operazioni Aritmetiche In questo caso CF e OF sono uguali a 1 poiché in AH ci sono cifre significative del risultato 38

39 Assembly 8086 Operazioni Aritmetiche DIV La divisione tra numeri naturali prevede la dichiarazione implicita del primo operando (il dividendo), ed ha il seguente formato: DIV divisore dove divisore può essere un registro o una variabile (locazione di memoria). se divisore è di tipo byte, viene effettuata la divisione tra il valore contenuto in AX e il valore di divisore; il quoziente viene posto in AL e il resto in AH. 39

40 Assembly 8086 Operazioni Aritmetiche AL:= AX / divisore AH:= resto della divisione I bit di flag vengono modificati dall operazione, ma il loro valore finale è privo di ogni significato. se divisore è di tipo word, viene effettuata la divisione tra il valore contenuto nella coppia DX:AX e il valore di divisore. AX:= DX:AX / divisore DX:= resto della divisione I bit di flag vengono modificati dall operazione, ma il loro valore finale è privo di ogni significato. 40

41 Assembly 8086 Operazioni Aritmetiche IDIV L istruzione di divisione tra numeri relativi: IDIV divisore Opera in modo del tutto analogo alla precedente. N.B. Se il quoziente va oltre la capacità del proprio registro di destinazione (FFh per divisore di un byte, FFFFh per divisore di tipo word), e quando si tenta la divisione per zero, si genera un interruzione di tipo 0. In questo caso il quoziente e il resto sono indefiniti. 41

42 Assembly 8086 Operazioni Aritmetiche ADC E un altra istruzione di addizione che consente di tener conto, nel calcolo, del riporto proveniente dall istruzione precedente. Il formato è: ADC destinazione, sorgente ed equivale alla forma Pascal: destinazione:= destinazione + sorgente + valore del flag di carry dove per destinazione e sorgente vale quanto già detto per l istruzione MOV. Sono definiti tutti i 6 flag di stato come nell istruzione ADD. 42

43 Assembly 8086 Operazioni Aritmetiche SBB E un altra istruzione di sottrazione che consente di tener conto, nel calcolo, anche del riporto proveniente dall istruzione precedente; il suo formato è: SBB destinazione, sorgente ed equivale alla forma Pascal: destinazione:= destinazione sorgente- valore del flag di carry dove per destinazione e sorgente vale quanto già detto per l istruzione MOV. Sono definiti tutti i 6 flag di stato come nell istruzione SUB. 43

44 Assembly 8086 Operazioni Aritmetiche Incremento e decremento INC e DEC Oltre alle 4 operazioni aritmetiche tradizionali, il linguaggio assembly prevede delle istruzioni particolari per velocizzare le operazioni di incremento e d decremento unitario di registri e variabili. Il loro formato è: INC sorgente DEC sorgente Dove sorgente può essere il riferimento a un registro o a una variabile. Equivalgono rispettivamente alle forme Pascal: sorgente:= sorgente+ 1 sorgente:= sorgente 1 Sono definiti i flag di stato: Z, S, O, P, A N.B: Il flag C non è definito. 44

45 Assembly 8086 Dichiarazione variabili DICHIARAZIONE DELLE VARIABILI Tutte le variabili usate nel programma, eccezione fatta per i registri che possono essere considerati come variabili predefinite, devono essere dichiarate, in modo che l assemblatore possa allocare in memoria, in base al tipo, il numero di byte necessari per la registrazione del loro valore. Dato che il microprocessore opera solo con dati binari raggruppati in byte o parole, di 16 bit, il linguaggio assembly, che ricalca le funzionalità del microprocessore 8086, prevede l uso di due soli tipi di variabili: byte e word. 45

46 Assembly 8086 Dichiarazione variabili DB e DW La dichiarazione di una variabile di tipo byte, per la quale vengono riservati in memoria 8 bit, viene effettuata nel modo seguente: nome della variabile DB valore mentre per il tipo word vengono riservati 16 bit, e viene effettuata nel modo seguente: nome della variabile DW valore Nel caso in cui si voglia definire una variabile priva di valore di inizializzazione, è sufficiente inserire un? al posto del valore. N.B. Nell emulatore EMU8086 la dichiarazione di variabili va inserita alla fine del programma, dopo l istruzione HLT. 46

47 Assembly 8086 Dichiarazione variabili Il valore di inizializzazione deve essere compatibile con la dimensione della variabile e deve appartenere ad una delle seguenti categorie di costanti: 47

48 Assembly 8086 Istruzioni di salto Il controllo di flusso è realizzato. mediante le istruzioni di salto. Le istruzioni di salto permettono di specificare l indirizzo dell istruzione successiva da eseguire, in modo da modificare la normale sequenza di esecuzione. L istruzione di destinazione può essere successiva (selezione) o precedente (iterazione) rispetto all istruzione di salto. Le istruzioni di salto possono essere incondizionate (vengono sempre eseguite) o condizionate (vengono eseguite o meno in base al valore di determinati flag). Le istruzioni a cui si può arrivare mediante un salto possono essere individuate o mediante il loro indirizzo, o mediante un etichetta. Un etichetta in un programma rappresenta l indirizzo di un istruzione (l assemblatore calcola l indirizzo corrispondente all etichetta). Le etichette sono specificate come segue: nome: N.B. in un programma non può essere assegnato a due etichette lo stesso nome. 48

49 Assembly 8086 Istruzioni di salto. SALTI INCONDIZIONATI Vengono eseguiti con l istruzione JMP: JMP operando dove operando è l indirizzo dell istruzione da cui proseguire l esecuzione (di solito è un etichetta). L istruzione JMP permette di fare un salto a qualsiasi altro indirizzo, anche in un segmento diverso, ma è buona regola eseguire solo salti all interno dello stesso modulo (del programma principale o della procedura). Esempio: mov ax, 3h JMP dopo mov bx, 5h dopo: mov ax, 8h 49

50 Assembly 8086 Istruzioni di salto. SALTI CONDIZIONATI Si basano sul valore dei flag impostati dalle operazioni aritmetico-logiche e dall istruzione CMP; se la condizione è falsa l esecuzione continua in modo sequenziale, se la condizione è vera viene eseguito il salto. L istruzione CMP ha il formato: CMP operando1, operando2 50

51 Assembly 8086 Istruzioni di salto Per gli operandi valgono le stesse regole già viste per ADD e SUB. L istruzione CMP si comporta come una sottrazione; sottrae il secondo operando dal primo, ma non modifica nessun operando, cioè trascura il risultato e l unico effetto è quello di impostare i flag di stato in base al risultato calcolato, in modo che possano essere utilizzati correttamente da una successiva istruzione di salto condizionato. Ad ogni flag di stato (ZF,SF,OF,CF,PF) sono associate due istruzioni di salto condizionato: una che salta se il flag è a 1, l altra (che contiene una N nel nome) che salta se il flag è a 0. 51

52 Assembly 8086 Istruzioni di salto. Il formato generale di una istruzione di salto condizionato è: J<condizione> operando Le istruzioni di salto per l'8086 sono: JZ,JNZ,JS,JNS,JO,JNO,JC,JNC,JP,JNP Es.; JZ salta se il flag Z è a 1, JNZ salta se il flag Z è a 0. 52

53 Assembly 8086 Istruzioni di salto. Ci sono poi altre istruzioni basate sugli stessi flag, ma più facili da ricordare: JE JNE salta se op1= op2 (equivalente a JZ) salta se op1 op2 (equivalente a JNZ) 53

54 Assembly 8086 Istruzioni di salto. Per il confronto tra numeri con segno: JL o JNGE salta se op1 < op2 (salta se il flag di segno è a 1) JG o JNLE JLE o JNG salta se op1 > op2 (salta se entrambi i flag di zero e di segno sono uguali 0) salta se op1 <= op2 (salta se il flag di zero è a 1 o il flag di segno è a 1) JGE o JNL salta se op1 >= op2 (salta se il flag di segno è a 0) 54

55 Assembly 8086 Istruzioni di salto. Per il confronto tra numeri senza segno o tra caratteri (B below, A above): JB o JNAE salta se op1 < op2 (salta se il flag di carry è a 1) JA o JNBE salta se op1 > op2 (salta se entrambi i flag di carry e di zero sono 0) JBE o JNA salta se op1 <= op2 (salta se il flag di carry è a 1 o il flag di zero è a 1) JAE o JNB salta se op1 >= op2 (salta se il flag di carry è a 0) 55

56 Assembly 8086 Istruzioni di salto Esempio: ; se ah maggiore di al metti cx a 1 mov al, 3h mov ah,5h CMP ah,al JG ahmaggiore mov bx,1h ahmaggiore: mov cx,1h 56

57 Assembly 8086 Istruzioni di salto Nel processore 8086 le istruzioni di salto condizionato richiedono che l indirizzo di destinazione sia abbastanza vicino (tra -128 byte e 127 byte, in modo da gestire l indirizzo con un solo byte); se si supera la distanza consentita l assemblatore segnala un errore. Per effettuare un salto condizionato ad una distanza maggiore ci si può servire di un salto incondizionato, che non presenta questo problema L istruzione Jcond fine fine: può essere riscritta come: JNcond istr JMP fine Istr:... fine: 57

58 Assembly 8086 Istruzioni di salto STRUTTURA CONDIZIONALE Riprendendo l esempio precedente: ; se ah maggiore di al metti cx a 1 mov al, 3h mov ah,5h CMP ah,al JG ahmaggiore mov bx,1h ahmaggiore: mov cx,1h è facile verificare che, nel caso in cui ah<al (es al=8) vengono modificati sia i valori di bx che di cx. 58

59 Assembly 8086 Istruzioni di salto La struttura condizionale ha il seguente diagramma di flusso: V CONDIZIONE F ISTRUZIONI SE VERO ISTRUZIONI SE FALSO 59

60 Assembly 8086 Istruzioni di salto Per codificare in assembly questa struttura, le istruzioni vanno scritte in sequenza. Allora proviamo a deformare il diagramma allungando e restringendo le linee di connessione, senza però modificare i punti di giunzione. Ci sono due possibilità: mettere prima le istruzioni se falso e poi le istruzioni se vero o viceversa. 60

61 Assembly 8086 Istruzioni di salto Si può anteporre il blocco ELSE (istruzioni se falso) e posporre il blocco THEN (istruzioni se vero), infatti in assembly il salto avviene se la condizione è vera: Jcondizione THEN istruzioni se falso JMP ENDIF THEN: istruzioni se vero ENDIF: 61

62 Assembly 8086 Istruzioni di salto Si può anteporre il blocco THEN (istruzioni se vero) e posporre il blocco ELSE (istruzioni se falso), come in figura a V CONDIZIOINE ISTRUZIONI SE VERO F SALTO CONDIZIONATO SALTO INCONDIZIONATO ISTRUZIONI SE FALSO Figura a 62

63 Assembly 8086 Istruzioni di salto Poiché le istruzioni assembly sono fatte in modo da saltare quando la condizione è vera, occorre invertire Vero con Falso, e di conseguenza negare la condizione, come in figura b SALTO INCONDIZIONATO F NOT condizione Istruzioni Se vero ELSE Istruzioni se falso V SALTO CONDIZIONATO END IF Figura b 63

64 Assembly 8086 Istruzioni di salto In entrambi i casi si può notare che per implementare una struttura di controllo condizionale sono necessarie due istruzioni di salto, una condizionata e una incondizionata. 64

65 Assembly 8086 Istruzioni di salto ESEMPI Dati due valori a e b calcolare il minimo: se a<b allora minimo=a altrimenti minimo=b fine se MOV al, a CMP al, b JL THEN MOV ah, b MOV minimo,ah JMP ENDIF THEN: MOV minimo,al ENDIF: HLT a DB 4h b DB 7h minimo DB? oppure MOV al, a CMP al, b JNL ELSE MOV minimo,al JMP ENDIF ELSE: MOV ah, b MOV minimo,ah ENDIF: HLT a DB 4h b DB 7h minimo DB? 65

66 Esempio If START Realizzare un programma che: In PRIMO SECONDO inizializzi due dati a 8 bit in memoria; se il primo è più piccolo del secondo esegua la moltiplicazione tra i due valori; V RIS < -- PRIMO * SECONDO PRIMO < SECONDO F RIS < -- PRIMO/SECONDO se il primo è più grande o uguale al secondo esegua la divisione tra il primo e il secondo; in ogni caso scriva il risultato in memoria (in una variabile a 16 bit da usare per tutti e due i casi) Out RIS END 66

67 Esempio If ; File COM é caricato all'indirizzo CS:0100h ORG 100h Codice mov al, primo cmp al, secondo jl then mov ah,0 div secondo ;else mov ah,00h mov risultato,ax JMP endif then: MUL secondo mov risultato, ax ENDIF: Hlt primo DB 6h secondo DB 9h ;rieseguire invertendo i valori risultato DW? 67

68 Esempio If Corrispondenza tra il flow chart e il codice Assembly 68

69 Assembly 8086 Ciclo While CICLO WHILE L iterazione è una struttura che permette di ripetere più volte l esecuzione di un istruzione strutturata, sotto il controllo di una condizione. La tipica struttura iterativa a controllo in testa è del tipo: WHILE condizione Istruzioni Fine WHILE Falso Inizio while condizione istruzioni Vero Fine while 69

70 Assembly 8086 Ciclo While Questa struttura può essere realizzata con le istruzioni di salto secondo lo schema: inizio_while se non è vera condizione salta a fine_while istruzioni salta a inizio_while fine_while La struttura assembly corrispondente risulta essere: inizio_while: CMP JN condizione fine_while <istruzioni> JMP inizio_while fine_while <prosecuzione del programma> 70

71 Assembly 8086 Ciclo While Esempio 1 Assegnare ad AL successivamente i valori da 0 a 7, usando un ciclo while #make_com# ; Assegnare ad AL successivamente i valori da ; 0 a 7, usando un ciclo while ; File COM é caricato all'indirizzo CS:0100h ORG 100h mov al,00h inizio_ciclo: cmp al,07h jnl fine_mentre inc al jmp inizio_ciclo fine_mentre: hlt 71

72 Assembly 8086 Ciclo While Esempio 2 Inizializzare la variabile DATO con un numero naturale calcolare la somma dei numeri da 1 a DATO usando un ciclo while e memorizzare il risultato nella variabile SOMMA. 72

73 Esempio Ciclo While START #make_com# ; File COM é caricato all'indirizzo CS:0100h ORG 100h ; Inizializzare la variabile DATO con un numero naturale ; calcolare la somma dei numeri da 1 a DATO usando un ciclo ; while e memorizzare il risultato nella variabile SOMMA mov somma,0d mov cl,1d inizio_ciclo: cmp cl,dato jnbe fine_mentre add somma, cl inc cl jmp inizio_ciclo fine_mentre: IN DATO SOMMA < -- 0 CONTATORE < -- 1 CONTATORE = DATO V SOMMA < -- SOMMA + CONTATORE CONTATORE < -- CONTATORE + 1 O ut SOMMA END F 73

74 Esempio Ciclo While Corrispondenza tra il flow chart e il codice Assembly 74

75 Esempio While If START ESEMPIO 3 Calcolare quanti numeri divisibili per 3 sono compresi tra 20 e 30 NUMERO < DIVPER3 < -- 0 NUMERO = 30 V RESTO < -- NUMERO MOD 3 RESTO = 0 V DIVPER3 < -- DIVPER3 + 1 F F NUMERO < -- NUMERO + 1 Out DIVPER3 END 75

76 Esempio While If #make_com# ; File COM é caricato all'indirizzo CS:0100h ORG 100h iniziomentre; Cmp numero, 30d JNBE finementre ; resto= numero MOD 3 mov bl,3d mov al,numero mov ah,0d div bl mov resto,ah cmp resto,0 je then jmp fineif then: inc DIVPER3 fineif: inc numero jmp iniziomentre finementre: hlt NUMERO DB 20d DIVPER3 DB 0 RESTO DB 76

77 Esempio While If Corrispondenza tra il flow chart e il codice Assembly 77

78 F I N E 78

L Assembler 8086. Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica

L Assembler 8086. Istruzioni Aritmetiche. M. Rebaudengo - M. Sonza Reorda. Politecnico di Torino Dip. di Automatica e Informatica L Assembler 8086 M. Rebaudengo - M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica 1 M. Rebaudengo, M. Sonza Reorda Si suddividono in: istruzioni per il calcolo binario istruzioni

Dettagli

Architettura degli elaboratori (A)

Architettura 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

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

Ing. Paolo Domenici PREFAZIONE

Ing. 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

Dettagli

4. Operazioni aritmetiche con i numeri binari

4. Operazioni aritmetiche con i numeri binari I Numeri Binari 4. Operazioni aritmetiche con i numeri binari Contare con i numeri binari Prima di vedere quali operazioni possiamo effettuare con i numeri binari, iniziamo ad imparare a contare in binario:

Dettagli

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Quinto 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

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

CPU. Maurizio Palesi

CPU. 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

Dettagli

Alessandro Pellegrini

Alessandro Pellegrini Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Informazione analogica e digitale

Informazione 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

Dettagli

Il microprocessore 8086

Il microprocessore 8086 1 Il microprocessore 8086 LA CPU 8086 Il microprocessore 8086 fa parte della famiglia 80xxx della INTEL. Il capostipite di questa famiglia è stato l 8080, un microprocessore ad 8 bit che ha riscosso un

Dettagli

CLASSE 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 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

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Von Neumann. John Von Neumann (1903-1957)

Von 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

Dettagli

Sistemi di Numerazione

Sistemi di Numerazione Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema

Dettagli

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

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

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI 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

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati Il Livello LogicoDigitale i Blocchi funzionali combinatori Circuiti integrati Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati

Dettagli

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno Parte II Indice Operazioni aritmetiche tra valori rappresentati in binario puro somma sottrazione Rappresentazione di numeri con segno modulo e segno complemento a 2 esercizi Operazioni aritmetiche tra

Dettagli

Lezione 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 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

Dettagli

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 In questo documento vengono illustrate brevemente le operazioni aritmetiche salienti e quelle logiche ad esse strettamente collegate.

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione 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

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI 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

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica 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

Dettagli

I sistemi di numerazione

I 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

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 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

Dettagli

Capitolo 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. 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

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri 1 Da base 2 a base 10 I seguenti esercizi richiedono di convertire in base 10 la medesima stringa binaria codificata rispettivamente

Dettagli

Architettura hardware

Architettura 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

Dettagli

Rappresentazione delle informazioni

Rappresentazione delle informazioni Rappresentazione delle informazioni Abbiamo informazioni (numeri, caratteri, immagini, suoni, video... ) che vogliamo rappresentare (e poter elaborare) in un calcolatore. Per motivi tecnologici un calcolatore

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Sistemi di Numerazione Binaria NB.1

Sistemi di Numerazione Binaria NB.1 Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, 7155 2 = 1, 431 0, 431 2 = 0, 862 0, 896 2 = 1, 792 0, 724 2 = 1, 448 0, 448 2 = 0, 896

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, 7155 2 = 1, 431 0, 431 2 = 0, 862 0, 896 2 = 1, 792 0, 724 2 = 1, 448 0, 448 2 = 0, 896 2 Esercizio 2.2 La rappresentazione esadecimale prevede 16 configurazioni corrispondenti a 4 bit. Il contenuto di una parola di 16 bit può essere rappresentato direttamente con 4 digit esadecimali, sostituendo

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

Università degli Studi di Cassino Corso di Fondamenti di Informatica Codifica di dati e istruzioni. Anno Accademico 2010/2011 Francesco Tortorella

Università 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

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

3. 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

Dettagli

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Cenni su algoritmi, diagrammi di flusso, strutture di controllo Cenni su algoritmi, diagrammi di flusso, strutture di controllo Algoritmo Spesso, nel nostro vivere quotidiano, ci troviamo nella necessità di risolvere problemi. La descrizione della successione di operazioni

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Codifica binaria dei numeri

Codifica binaria dei numeri Codifica binaria dei numeri Caso più semplice: in modo posizionale (spesso detto codifica binaria tout court) Esempio con numero naturale: con 8 bit 39 = Codifica in virgola fissa dei numeri float: si

Dettagli

Esempio di moltiplicazione come somma e spostamento

Esempio di moltiplicazione come somma e spostamento Esempio di moltiplicazione come somma e spostamento Implementare una moltiplicazione coinvolge algoritmi di shift e somma Istruzioni di Shift:movimento di bit: ROL Rd ROR Rd LSL Rd LSR ASR Rd Rd 22 x 35

Dettagli

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura (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

Dettagli

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

PROVA INTRACORSO TRACCIA A Pagina 1 di 6 PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento

Dettagli

Laboratorio di Informatica

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

Dettagli

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono

Dettagli

Architettura del calcolatore

Architettura 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

Dettagli

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE La base del sistema decimale è 10 I simboli del sistema decimale sono: 0 1 2 3 4 5 6 7 8 9 Il sistema di numerazione decimale è un sistema posizionale. L aggettivo

Dettagli

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................

Dettagli

Architettura 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 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

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

introduzione I MICROCONTROLLORI

introduzione 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

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti Esercitazione Informatica I AA 2012-2013 Nicola Paoletti 4 Gigno 2013 2 Conversioni Effettuare le seguenti conversioni, tenendo conto del numero di bit con cui si rappresenta il numero da convertire/convertito.

Dettagli

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 3 ISC Esercizi per il recupero del debito formativo: Disegnare il diagramma e scrivere la matrice delle transizioni di stato degli automi a stati finiti che rappresentano

Dettagli

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento

Dettagli

Comparatori. Comparatori di uguaglianza

Comparatori. Comparatori di uguaglianza Comparatori Scopo di un circuito comparatore é il confronto tra due codifiche binarie. Il confronto può essere effettuato per verificare l'uguaglianza oppure una relazione d'ordine del tipo "maggiore",

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L 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

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Materiale di approfondimento: numeri interi relativi in complemento a uno

Materiale di approfondimento: numeri interi relativi in complemento a uno Materiale di approfondimento: numeri interi relativi in complemento a uno Federico Cerutti AA. 2011/2012 Modulo di Elementi di Informatica e Programmazione http://apollo.ing.unibs.it/fip/ 2011 Federico

Dettagli

Il Processore: i registri

Il 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

Dettagli

Aritmetica dei Calcolatori 2

Aritmetica 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

Dettagli

ASSEMBLER 68K parte 2

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

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

Codifica dei numeri negativi

Codifica dei numeri negativi E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

La Macchina Virtuale

La 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

Dettagli

Istruzioni di modifica della sequenza di elaborazione

Istruzioni di modifica della sequenza di elaborazione Istruzioni di modifica della sequenza di elaborazione Permettono di modificare la sequenza di esecuzione delle istruzioni di un programma, normalmente controllata dal meccanismo automatico di avanzamento

Dettagli

Introduzione alla programmazione in C

Introduzione 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

Dettagli

11010010 = 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210

11010010 = 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210 Il sistema BINARIO e quello ESADECIMALE. Il sistema di numerazione binario è particolarmente legato ai calcolatori in quanto essi possono riconoscere solo segnali aventi due valori: uno alto e uno basso;

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È 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

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Università Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

AXO 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 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

Dettagli

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

CONCETTO DI LIMITE DI UNA FUNZIONE REALE CONCETTO DI LIMITE DI UNA FUNZIONE REALE Il limite di una funzione è uno dei concetti fondamentali dell'analisi matematica. Tramite questo concetto viene formalizzata la nozione di funzione continua e

Dettagli

CALCOLATORI ELETTRONICI II

CALCOLATORI 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

Dettagli

Università 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. 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,

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali 1 Modelli imperativi: le RAM (Random Access Machine) I modelli di calcolo imperativi sono direttamente collegati al modello Von Neumann,

Dettagli

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN ALGORITMI E MACCHINA DI VON NEUMANN 1 COMPUTER= ELABORATORE NON CERVELLO ELETTRONICO CERVELLO: Capacità decisionali ELABORATORE: Incapacità di effettuare scelte autonome di fronte a situazioni impreviste

Dettagli

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Corso 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

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2 Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2 1 Dott. Pasquale De Michele Dipartimento di Matematica e Applicazioni Università di Napoli Federico II Compl. Univ. Monte S.Angelo Via

Dettagli

Informatica Generale (Prof. Luca A. Ludovico) Presentazione 5.1 Operazioni aritmetiche nel sistema binario

Informatica Generale (Prof. Luca A. Ludovico) Presentazione 5.1 Operazioni aritmetiche nel sistema binario Operazioni aritmetiche nel sistema binario Operazioni aritmetiche basilari Le regole da imparare nel caso di una base b sono relative alle b 2 possibili combinazioni delle cifre da 0 a b- 1. Ad esempio,

Dettagli

Struttura del calcolatore

Struttura 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

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 05 La rappresentazione dell informazione Carla Limongelli Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ La rappresentazione

Dettagli