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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

Cenni ad Assembly Intel

Cenni ad Assembly Intel Cenni ad Assembly Intel Luca Abeni April 17, 2015 Architerrura Intel Utilizzata sulla maggior parte dei laptop, desktop e server moderni Lunga storia Dagli anni 70 (Intel 8080-8 bit!)......fino ad oggi

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

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

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

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

Il linguaggio assembly 8086

Il linguaggio assembly 8086 Il linguaggio assembly 8086 Introduzione Il linguaggio macchina Il linguaggio naturale di un microprocessore è il linguaggio macchina. Nel linguaggio macchina non esistono riferimenti astratti o simbolici

Dettagli

AMBIENTE DI SIMULAZIONE ASIM

AMBIENTE DI SIMULAZIONE ASIM LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 10 Prof. Rosario Cerbone rosario.cerbone@uniparthenope.it http://digilander.libero.it/rosario.cerbone a.a. 2008-2009 AMBIENTE DI SIMULAZIONE ASIM Digitazione

Dettagli

Programmazione dello Z80

Programmazione dello Z80 Il microprocessore si incarica di: gestire il programma e i suoi dati di eseguire i calcoli richiesti. Le azioni appena elencate rendono necessario che il microprocessore abbia da qualche parte, al suo

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

ARCHITETTURA DEI CALCOLATORI VOLUME I

ARCHITETTURA DEI CALCOLATORI VOLUME I Graziano Frosini ARCHITETTURA DEI CALCOLATORI VOLUME I ASSEMBLER E CORRISPONDENZA FRA C++ E ASSEMBLER CON RIFERIMENTO AL PERSONAL COMPUTER E ALL AMBIENTE DI PROGRAMMAZIONE DJGPP Copyright MMIX ARACNE editrice

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

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

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

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

I sistemi di elaborazione

I sistemi di elaborazione 2 I sistemi di elaborazione 2.0 I sistemi di elaborazione c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 2.0 0 2 I sistemi di elaborazione Architettura

Dettagli

Esegue la sommatral'accumulatoreac e Se I=1, ilcontenutodellacelladi memoriailcui indirizzoè

Esegue la sommatral'accumulatoreac e Se I=1, ilcontenutodellacelladi memoriailcui indirizzoè Parte II AND 104 I, micro-operazioni c 0 t 0 : MAR PC c 0 t 1 : MBR M, PC PC+1 c 0 t 2 : OPR MBR(OP), I MBR(I) q 7 Ic 0 t 3 : R 1 Ciclo di fetch (q 7 +I )c 0 t 3 : F 1 c 1 t 0 : MAR MBR(AD); / 104 da Hex

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

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

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

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

Nel microprocessore 8086 abbiamo una gran quantità di registri

Nel microprocessore 8086 abbiamo una gran quantità di registri I registri del microprocessore 8086 Nel microprocessore 8086 abbiamo una gran quantità di registri AH AL AX 1 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 B H B L BX 1 0 1 0 1 0 0 1 1 1 0 1 1 0 1 0 C H C L CX 1 0 1 1

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

Architettura degli Elaboratori Architettura degli Elaboratori Corso di Laurea Triennale in Informatica Università degli Studi di Bari Anno Accademico 2009-2010 Laboratorio lez1: il processore 8086/88 Prof. S.Pizzutilo I processori Intel

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

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

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 di un Elaboratore

Architettura di un Elaboratore Architettura di un Elaboratore Fabio Massimo Zanzotto Ricapitoliamo puntate precedenti Cosa abbiamo a disposizione: Concetto di algoritmo (con eventuale parametrizzazione) Rappresentazione dell informazione

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

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

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET

STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET Lo stack STACK, istruzioni PUSH e POP; PROCEDURE, istruzioni CALL e RET Lo stack (tradotto talvolta in italiano con pila o catasta) è un'area di memoria privilegiata, dove il microprocessore può salvare

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

Assembly. Modello x86

Assembly. Modello x86 Assembly Modello x86 1 Il microprocessore Un MICROPROCESSORE è un circuito integrato dotato di una struttura circuitale in grado di attuare un prefissato SET di ISTRUZIONI 2 Caratteristiche del microprocessore

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

Parte II.2 Elaboratore

Parte II.2 Elaboratore Parte II.2 Elaboratore Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 1, 2015 Elisabetta Elisabetta Ronchieri II Software Argomenti

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

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

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

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

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

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

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

Tutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086.

Tutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086. I processori Intel Tutta la famiglia dei processori Intel (x86) si basa ed e' compatibile con il primo processore di questo tipo: l'8086. L'8086 e' un processore a 16 bit quindi i suoi registri potranno

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

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann Elementi di Informatica e Programmazione Architettura del calcolatore (prima parte) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Problema:

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

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

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

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

Il linguaggio Assembly della CPU 8086. Il linguaggio Macchina

Il linguaggio Assembly della CPU 8086. Il linguaggio Macchina Il linguaggio Assembly della CPU 8086 Il linguaggio Macchina Fortemente orientato alla macchina Direttamente eseguibile Praticamente illeggibile Utilizzato negli anni 50 70 per sviluppare programmi Attualmente

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

SET/CLEAR LOAD DATA FROM STRING

SET/CLEAR LOAD DATA FROM STRING SET/CLEAR STD CLD AZIONE: Imposta ad 1 (STD) o a zero (CLD) il valore del flag DF. Sono istruzioni senza parametri. Vanno sempre messi!! FLAG di cui viene modificato il contenuto: Nessuno (a parte DF).

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

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali Prof. Gian Luca Marcialis Corso di Laurea di Ingegneria Elettronica Capitolo 5 Linguaggio Assembly Fonti principali: Patterson, A.D., Hennessy, J., "Struttura, organizzazione e progetto dei calcolatori

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

Lezione 3: Architettura del calcolatore

Lezione 3: Architettura del calcolatore Lezione 3: Architettura del calcolatore Architettura di Von Neumann BUS, CPU e Memoria centrale Ciclo di esecuzione delle istruzioni Architettura del calcolatore Il calcolatore è: uno strumento programmabile

Dettagli

Richiami di informatica e programmazione

Richiami di informatica e programmazione Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre

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

Lezione n.9. Introduzione al linguaggio macchina

Lezione n.9. Introduzione al linguaggio macchina Lezione n.9 Autore:Luca Orrù 1 Sommario Esecuzione delle istruzioni Architettura interna ed esterna Linguaggio assembler e modi d indirizzamento Consideriamo ora la singola istruzione e la scomponiamo

Dettagli

Lezione 16: L architettura LC-3

Lezione 16: L architettura LC-3 Lezione 16: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 15 Maggio 2013 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

L architettura del calcolatore (Prima parte)

L architettura del calcolatore (Prima parte) L architettura del calcolatore (Prima parte) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Calcolatore astratto e reale Concetto astratto

Dettagli

2.12 Esercizi risolti

2.12 Esercizi risolti Codifica dell'informazione 55 Lo standard IEEE prevede cinque cause di eccezione aritmetica: underflow, overflow, divisione per zero, eccezione per inesattezza, e eccezione di invalidità. Le eccezioni

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

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

Linguaggio macchina. 73.1 Organizzazione della memoria. 73.1.1 Pila per salvare i dati. 73.1 Organizzazione della memoria... 37

Linguaggio macchina. 73.1 Organizzazione della memoria. 73.1.1 Pila per salvare i dati. 73.1 Organizzazione della memoria... 37 37 Linguaggio macchina Capitolo 73 73.1 Organizzazione della memoria.............................................. 37 73.1.1 Pila per salvare i dati............................................... 37 73.1.2

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

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri.

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. A partire da questa lezione, ci occuperemo di come si riescono a codificare con sequenze binarie, quindi con sequenze di 0 e 1,

Dettagli

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Il calcolatore elettronico Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Introduzione Un calcolatore elettronico è un sistema elettronico digitale programmabile Sistema: composto da

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

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

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

90.1 Sistemi di numerazione. 90.1.1 Sistema decimale. 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria

90.1 Sistemi di numerazione. 90.1.1 Sistema decimale. 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria 605 Capitolo 90 Dai sistemi di numerazione all organizzazione della memoria 90.1 Sistemi di numerazione.................................................... 605 90.1.1 Sistema decimale..................................................

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

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088 ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088 microprocessori Intel di terza generazione progetto originario del 1979, ancora oggi interessanti per: 1. motivi didattici: l architettura dei processori

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

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 2 Rappresentazione delle informazioni: numeri e caratteri 1 Codice La relazione che associa ad ogni successione ben formata di simboli di

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

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

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

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

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 11/01/08 Nota Questi lucidi sono

Dettagli

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore Dispensa di Fondamenti di Informatica Architettura di un calcolatore Hardware e software La prima decomposizione di un calcolatore è relativa ai seguenti macro-componenti hardware la struttura fisica del

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

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

Rappresentazione e Memorizzazione dei Dati

Rappresentazione e Memorizzazione dei Dati Rappresentazione e Memorizzazione dei Dati Giuseppe Nicosia CdL in Matematica (Laurea Triennale) Facoltà di Scienze MM.FF.NN. Università di Catania Bit e loro Memorizzazione Definizioni Algoritmo: una

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

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

Assembler Intel 80x86: Set delle istruzioni

Assembler Intel 80x86: Set delle istruzioni Assembler Intel 80x86: Set delle istruzioni Calcolatori Elettronici B aa 2004/2005 Massimiliano Giacomin 1 Classi di istruzioni Il set di istruzioni dell Assembler Intel 80x86 può essere suddiviso nelle

Dettagli

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad Principi di architetture dei calcolatori: l architettura ARM. Mariagiovanna Sami Che cosa è ARM In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

LA NUMERAZIONE BINARIA

LA NUMERAZIONE BINARIA LA NUMERAZIONE BINARIA 5 I SISTEMI DI NUMERAZIONE Fin dalla preistoria l uomo ha avuto la necessità di fare calcoli, utilizzando svariati tipi di dispositivi: manuali (mani, bastoncini, sassi, abaco),

Dettagli