I sistemi Sistema: è un insieme di parti o componenti correlati tra di loro in modo che tale insieme possieda una struttura e abbia un comportamento. Classificazione dei sistemi: Sistemi artificiali: creati dall uomo per un determinato fine. 1. Sistemi fisici: tutti i suoi componenti possono essere misurati. 2. Sistemi astratti. Sistemi artificiali fisici: 1. Sistemi dinamici: hanno almeno 1 grandezza variabile. 2. Sistemi statici. Sistemi artificiali fisici dinamici: 1. Sistemi aperti: interazioni tra l ambiente interno ed esterno. 2. Sistemi chiusi. Sistemi artificiali fisici dinamici aperti: 1. Sistemi deterministici: esiste 1 sola legge precisa che lega tra loro tutte le grandezze. 2. Sistemi probabilistici. Sistemi artificiali fisici dinamici aperti deterministici: 1. Sistemi invarianti: la legge che lega tra di loro tutte le variabili costanti rimane costante nel tempo. 2. Sistemi varianti. Sistemi artificiali fisici dinamici aperti deterministici invarianti: 1. Sistemi discreti: 2. Sistemi continui. Le grandezze all interno di un sistema dinamico sono: 1. Endogene: hanno relazioni dentro al sistema 2. Esogene: hanno relazioni tra il sistema e l esterno. Le grandezze variabili esogene del sistema dinamico si dividono in: 1. G. d'ingresso: sollecitazioni dall ambiente esterno. 2. G. d uscita: sollecitazioni verso l ambiente esterno. Le grandezze variabili endogene ed esogene si dividono in: 1. Continue: quando il valore cambia gradatamente. 2. Discrete: quando il valore cambia in determinati istanti. 1
I modelli Modello: è un sistema costruito dall uomo per rappresentare la struttura e il comportamento di un altro sistema. Possono rappresentare: 1- la struttura 2-il comportamento 3-entrambi I modelli si dividono in: 1. Fisici: che a loro volta si dividono in: 1-Iconici 2-Analogici 2. Astratti: che a loro volta si dividono in: 1-garfici 2-matematici 3-procedurali. 1. I modelli fisici iconici rappresentano in rassomiglianza fisica la struttura di un altro sistema (in scala): Esistono 3 tipi di scale: 1-ridotta 2-naturale 3-espansa. I modelli fisici analogici rappresentano l analogia funzionale e il comportamento di un altro sistema. 2. I modelli astratti grafici rappresentano la struttura o il comportamento di un altro sistema (es: schemi a blocchi di circuiti). I modelli astratti matematici sono delle espressioni simboliche che rappresentano le leggi che legano tra di loro le grandezze di 1 sistema (es. equazioni algebriche). I modelli astratti matematici sono dei programmi la cui esecuzione permette di simulare il comportamento di un altro sistema. 2
Gli Automi Gli automi sono modelli matematici che servono per descrivere i sistemi digitali. Definizione: un automa (A) è una quintupla del tipo (S, I, U, f, g). S rappresenta un insieme di elementi: S={s1, s2, s3, s4, sn} e viene chiamato l insieme degli stati. I rappresenta un insieme con numeri finiti di elementi: I={i1, i2, i3, if} è viene chiamato l insieme dei valori di ingresso. U rappresenta un insieme finito di elementi: U={u1, u2, u3, uf} e viene chiamato l insieme dei valori di uscita. f rappresenta una funzione il cui dominio è uguale al prodotto cartesiano tre S*I, mentre il suo codominio (ovvero tutti i valori che può assumere) e S. f viene chiamato funzione di transizione di stato. d rappresenta una funzione il cui dominio è uguale al prodotto cartesiano tre S*I, mentre il suo codominio (ovvero tutti i valori che può assumere) e U. d viene chiamato funzione di trasformazione di uscita. Gli automi si dividono in combinatori e sequenziali. 1. Combinatori: se i valori della funzione di trasformazione (g) non dipendono dagli stati S*I. es. g(s1, i1) = u1 g(s2, i2) = u2 g(s2, i1) =u1 g(s2, i2) =u2 2. Sequenziali: sono autopi di tipo generale dove S*I U Gli automi sequenziali si dividono in: 1. A stati finiti: dove S è uguale ad un numero finito di volte. 2. Non a stati finiti: S è diverso da n. Gli automi sequanziali a stati finiti si dividono in: 1. Di Mealy: i valori di g sono uguali a S*I U 2. Di more quando i valori di g non dipendono da (g = S U ). 3
Ogni computer appartiene alla categoria dei sistemi digitali. COMPONENTI FONDAMENTALI: 1. UNITA CENTRALE che è la più importante perché ha il compito di elaborare tutte le informazioni. 2. LE UNITA PERIFERICHE DI INGRESSO USCITA (I/O) che hanno il compito di far comunicare il computer con l ambiente esterno. DI MEMORIZZAZIONE AUSILIARIA (memoria di massa) che hanno il compito di memorizzare tutte le informazioni che il computer deve elaborare in un determinato istante di tempo. IL SISEMA DI UNITA CENTRALE I suoi COMPONENTI sono: MEMORIA RAM (o centrale), INTERFACCE DI INGRESSO USCITA e IL PROCESSORE. LA MEMEORIA RAM contiene tutte le informazioni che devono essere elaborate. IL PROCESSORE elabora le informazioni. Per fare questo ha bisogno di utilizzare dei programmi, costituiti da sequenze di istruzioni, che a loro volta sono contenuti nella memoria centrale. LE INTERFACCE DI INGRESSO USCITA collegano l unità centrale alle varie unità periferiche. LA MEMORIA CENTRALE (RAM) Anche questo è di natura digitale. I suoi componenti sono detti CELLE DI LOCAZIONE DI MEMORIA, le quali sono in grado di memorizzare una parola di un codice binario di una certa lunghezza. Tutte le celle hanno la stessa capacità. Il contenuto delle celle viene espresso tramite un codice binario. Anche gli indirizzi di cella sono espressi tramite codice binario. Indicando con K il n di BIT di ohni indirizzo n, n deve essere minore o uguale a 2 k In queste celle sono possibili due tipi di operazioni: 1. LETTURA DEL CONTENUTO DI UNA PARTICOLARE CELLA DI LOCAZIONE che ha bisogno dell indirizzo della cella. 2. SCRITTURA DI UNA PAROLA BINARIA SU DI UNA CELLA.Per fare questo si ha bisogno di: La parola binaria che si vuole scrivere L indirizzo di cella. 4
I PROGRAMMI Sono delle sequenze di informazioni. Sono contenuti nella memoria centrale e devono essere scritte sotto forma di codice binario. PROGRAMMA Istruzione 1 Istruzione 2... istruzione n MEMORIA CENTRALE Codifica (istruzione 1) Codifica (istruzione 2)... Codifica (istruzione n) L insieme di tutti i codici riconosciuti dal processore viene detto CODICE MACCHINA. IL CODICE MACCHINA IL CODICE MACCHINA associa ad ogni istruzione eseguibile una parola binaria. Insieme delle istruzioni eseguibili CODIFICA DECODIFICA Insieme dei codici delle istruzioni Il CODICE MACCHINA può essere variabile. Le istruzioni base del computer sono le semplici operazioni matematiche. Le istruzioni più difficili: Vengono eseguite da un altro programma (detto BASIC)scritto in codice macchina O Vengono tradotte da un linguaggio ad alto livello a codice macchina tramite compilatore. ESEGUIRE LE ISTRUZIONI DI UN PROGRAMMA Questa operazione si chiama CICLO DI INTERPRETAZIONE DELLE ISTRUZIONI. 1. M[I P] I R dove I P è l indirizzo di locazione da cui si preleva il codice chiamato e I R è la parte di locazione di memoria dove il codice viene trasferito. 2. DECODIFICA DEL CONTENUTO DI I R 3. INCREMENTO DI I P in modo che l I P contenga l indirizzo della cella successiva. 4. ESEGUI ISTRUZIONE 5. TORNA AL PASSO n 1 5
IL LINGUAGIO MACCHINA È composto dall insieme delle istruzioni che possono essere eseguite dal processore. Istruzioni del linguaggio CODIFICA Codice macchina delle istruzioni DECODIFICA Scrittura Lettura DESCRIZIONE SIMBOLICA Disassemblaggio Assemblaggio La DESCRIZIONE SIMBOLICA non è un codice binario, ma è una frase composta da una o più parole successive e quindi è più leggibile di un codice binario. Deve però soddisfare più regole sintattiche, in modo da poter essere tradotto automaticamente in codice macchina. REGOLE Nome istruzione operando di destinazione operando sorgente I REGISTRI Si dividono in due categorie: Reg. a 8 bit e Reg. a 16 bit I REG. A 8bit sono 8 e vengono indicati: AL AH BL BH CL CH DL DH I REG. A 16 bit sono 8 e vengono indicati: AX BX CX DX SP BP SI OI Esiste però una relazione tra i due tipi di registri, infatti il processore contiene solo 8 registri a 16 bit. I registri possono essere usati come operandi. SOTTOINSIEME INTEL 80-86 La memoria centrale ha capacità di 16^4 = 2^16 = 65536 byte. = 64 Kbyte In realtà ha capacità: K = 2^10 = 1024 M = 2^20 = 1024^2 G = 2^30 = 6
LE PAROLE BINARIE DA 8 bit SONO DETTE: LUNGHEZZA NOME 8 bit Byte 16 bit Word 32 bit Double Word 64 bit Quad. Word 128 bit Paragraph PRESENTAZIONE A FINALE GRANDE Chiamando a l indirizzo della prima locazione di memoria B21 B24 B23 B16 B15..B8 B7 B0 Byte [ a ] Byte [ a +1 ] Byte [ a +2 ] Byte [ a +3 ] PRESENTAZIONE A FINALE PICCOLA B21 B24 B23 B16 B15..B8 B7 B0 Byte [ a ] Byte [ a +1 ] Byte [ a +2 ] Byte [ a +3 ] 7
Mov dest,sorg 1. Eventuali operandi devono avere uguale lunghezza 2. L operando di destinazione non può essere una costante (parola di 16 bit) 3. I due operandi non possono essere entrambi locazione di memoria ADD dest,org 1. I due operandi devono avere la stessa lunghezza 2. La destinazione non può essere una costante 3. I due operandi non possono rappresentare la stessa locazione di memoria. dest = dest + sorg CF se c e un riporto. ZF se somma = 0 è attivo. OF attivo se i due ultimiriporti sono diversi. dest = dest + sorg + CF 8
SBB dest,sorg 1. I due operandi devono avere uguale lunghezza 2. L operando di dest non deve essere costante 3. I due operandi non possono rappresentare la stessa locazione di memoria. dest = dest sorg CF, SF, ZF, OF dest = dest sorc CF 9
Il processore esegue le operazioni in modo sequenziale, questa istruzione permette di effettuare salti all interno del programma. JMP sorg Il programma passa ad eseguire l istruzione il cui indirizzo viene dato dall operando sorg. IP = sorg Il salto viene effettuato solo se verificata una certa condizione. Nome mnemonico Condizione JO J. on overflow OF = 1 JNO J.if not over. OF = 0 JS On sign SF = 1 JNS If not sign SF = 0 JZ On zero ZF = 1 JNZ If not zero ZF = 0 JC On carry CF = 1 JNC If not carry CF= 0 AND dest,sorg copia nell operando di destinazione il PRODOTTO LOGICO BIT A BIT tra dest e sorg 1. I due operandi devono avere uguale lunghezza 2. L operando di dest non deve essere costante 3. I due operandi non possono rappresentare la stessa locazione di memoria. 10
a b a AND b 0 0 0 0 1 0 1 0 0 1 1 1 OR dest,sorg copia nell operando di destinazione la SOMMA LOGICA BIT A BIT tra dest e sorg 1. I due operandi devono avere uguale lunghezza 2. L operando di dest non deve essere costante 3. I due operandi non possono rappresentare la stessa locazione di memoria. PRODOTTO LOGICO: a b a OR b 0 0 0 0 1 1 1 0 1 1 1 1 DESCRIZIONE SIMBOLICA: ISTRUZIONE XOR OPERAZIONE: copia nell operando di destinazione la SOMMA ESCLUSIVA BIT A BIT tra dest e sorg 11
2. I due operandi devono avere uguale lunghezza 2. L operando di dest non deve essere costante 3. I due operandi non possono rappresentare la stessa locazione di memoria. a b a AND b 0 0 0 0 1 1 1 0 1 1 1 0 Con l utilizzo delle tre istruzioni precedenti si modifica il ZF : CMP dest,sorg Esegue la sottrazione binaria tra dest e sorg senza modificare l operando dest Con l utilizzo di questa istruzione si modificano i SF e ZF. 12
!" # $!%& Nome Mnemonico dest, cnt = conteggio che può essere o cost 1 o la quantità presente nel registro CL L operando dest può essere: R 8 R 16 M 8 M 16 NOME OPERAZIONE EFFETTI SHL (shift left) Translare verso sinistra ogni bit dell operando di destinazione di tante posizioni quante indicate nel campo conteggio, azzerando i bit meno significativi. Se il CF = 0 equivale a Dest = dest * 2 Dest = dest * 2 ^ CL SAL (s. aritmetic l.) CF xchè ultimo bit traslato viene salvato su questo flag CF xchè ultimo bit traslato viene salvato su questo flag SHR (s. right) Se dest rappresenta un numero senza segno l operazione equivale a Dest = dest / 2 SARs(s.a.r.) Translare verso destra ogni bit dell operando di destinazione di tante posizioni quante indicate nel campo conteggio, azzerando i bit più significativi. CF xchè ultimo bit traslato viene salvato su questo flag CF xchè ultimo bit traslato viene salvato su questo flag!" # $!%& Nome Mnemonico dest Dest = R 8 R 16 M8 M16 NOME OPERAZIONE EFFETTI INC Incremento dell operando dest OF SF ZF Dest = dest +1 DEC Decremento dell operando dest OF SF ZF Dest = dest 1 NEG Se dest è numero con segno OF SF ZF Dest = -Dest NOT Complemento bit a bit dell operando dest. SF ZF 13
'!( ( "( &# "'! Rappresentano i modi diversi con i quali è possibile specificare l'indirizzo della locazione di memoria che rappresenta un operando di una istruzione.!# "'& "(! # ) Indirizzamento diretto [cost] Valore della costante Mov ax,[01fa] Indirizzamento indiretto [RB] [RI] Registri base, R indici RB RI Mov ax,[si] Relativo [rb ± cost] RB ± valore cost Mov al,[bx ± 1] Indicizzato [ri ± cost] Ri ± valore costante Mov ah[di ± 1] Relativo indicizzato [rb + ri ± cost] rb + ri ± val cost Mov ax,[bp + si ± 1] * Informazione di comunicazione tra programma e sistema operativo.256 bytes Va da qualche decina bi b a qualche decina di migliaia di b. Il suo indirizzo è contenuto nel registro SP Come per la PSP, lo STACK serve per il corretto funzionamento del programma [DANGER] Lo STACK è una struttura di dati particolare, la sua area viene calcolata con: 64k-SP. STRUTTURA DEI DATI. La prima istruzione inserita viene messa sul fondo, le altre vengono posizionate sopra della prima. I l prelievo avviene dalla cime, si preleva l'ultimo elemento inserito. Sintassi: push sorg sorg= R16 M16 Funzione: SP=SP-2; WORD[SP]=SORG Per il ripristino si può usare: MOV BX,SP MOV DX,[BP] 14
'+!" Sintassi: POP dest dest = R16 M16 Operazione: legge il contenuto dell'ultimo elemento e lo copia in dest Dest = word [SP] SP = SP+2 %'! +! (%%! '&, IL programma può essere suddiso in procedure, per richiamare una procedura si usa: '+!" Sintassi: CALL dest dest = cost R16 Funzione: SP = SP-2 WORD[SP]=IP IP=DEST Quando troviamo l'istruzione CALL, l'indirizzo dell'istruzione successiva viene salvato sullo STACK. Per poi essere richiamato. Per tornare alla procedura precedente, si usa: '+!" Sintassi: RET Funzione: IP=WORD[SP] SP=SP+2 15
Ci sono delle operazioni messe a disposizione del sistema operativo (MS-DOS) che sono chiamate SERVIZI. I SERVIZI DEL SISTEMA OPERATIVO Sono delle procedure messe a servizio d'ogni utente. Il SIST. OPER. MS-DOS possiede più di 100 servizi. Per richiamare un servizio è necessario fare uso dell'istruzione INT 21 Prima però bisogna inserire nell'indirizzo AH il numero d'ordine d'identificazione. Es.: Mov Int 21 ah, x NUMERO SERVIZIO 0 Terminazione del programma torna a DOS 1 Acquisizione di un carattere da tastiera il sistema si arresta e attende che sia premuto un tasto, una volta che il tasto è stato premuto il suo codice ASCII è memorizzato nel registro AL 2 Visualizzazione del carattere contenuto nel registro DL 16