ESERCIZIO 1 1. Traccia 1. Analisi 2. Codifica programma 7. frame nel seguente modo: il primo byte dice la lunghezza complessiva del frame,



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

Testi di Esercizi e Quesiti 1

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Send/receive sincrona, assumendo che la condivisione avvenga mediante riferimenti logici coincidenti, invece che con capability.

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Il problema del produttore e del consumatore. Cooperazione tra processi

Powered by: Relators:

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

CPU. Maurizio Palesi

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Esercizi per il recupero del debito formativo:

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

IL LIVELLO DI LINEA O LIVELLO DI DATA LINK 1. Servizi offerti 2. Struttura dei pacchetti 3 CAMPO DATI 3. Character stuffing 4.

Invio SMS. DM Board ICS Invio SMS

SERVIZIO DI MESSAGGISTICA ALL UTENTE. Manuale per l operatore

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

G.B.S. Global Business Security. Sicuri di essere sicuri.

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)

Il simulatore SPIM SPIM

1.0 GUIDA PER L UTENTE

Benvenuto. Questa semplice guida ha lo scopo di aiutarti nel migliore dei modi a sfruttare tutte le caratteristiche che SuperBanner.org offre.

LIVELLO DATA LINK (DI LINEA)

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

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

LABORATORIO DI SISTEMI

Esempio di moltiplicazione come somma e spostamento

4 3 4 = 4 x x x 10 0 aaa

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

4. Operazioni aritmetiche con i numeri binari

Coordinazione Distribuita

Entrare nel sistema. Clicca su Entra per entrare nel sistema. PAGINA 1

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

B+Trees. Introduzione

MANUALE ESSE3 Gestione Registro delle lezioni

Esercitazione finale per il corso di Sistemi Operativi (A.A. 2004/2005)

ARCHITETTURA DI UN SISTEMA A MICROPROCESSORE

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

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

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

ZFIDELITY - ZSE Software & Engineering Pag.1 / 11

File, Modifica, Visualizza, Strumenti, Messaggio

Ing. Paolo Domenici PREFAZIONE

IL MIO PRIMO SITO: NEWS

TORNIO ANTARES controllo OSAI 8600 T

Utilizzo di SmartAttach e personalizzazioni

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

Configurazione account di posta elettronica certificata per Qualcomm Eudora

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Leggere un messaggio. Copyright 2009 Apogeo

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Programmazione dello Z80

Alessandro Pellegrini

Questo è riservato all Organizzazione Nazionale per la sistemazione delle parrocchie negli alberghi e per controlli contributi

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Stampa unione - prof. Enzo Mardegan - 2

monitoraggio dei locomotori via Internet

INTERFACCIAMENTO INPUT-OUTPUT, GESTIONE DELLE INTERRUZIONI E GESTIONE DELLE PERIFERICHE

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.

MANUALE UTENTE Profilo Azienda Partecipata. APPLICATIVO CAFWeb

Transmission Control Protocol

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

RC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it

Esempi di algoritmi. Lezione III

Giornale di Cassa e regolarizzazione dei sospesi

MESSAGGISTICA ALL UTENTE. Manuale per l operatore

MIGRAZIONE SERVER DI POSTA ELETTRONICA

IMPOSTARE LO SFONDO DEL DESKTOP

Note Operative per Accedere alla Posta Elettronica Certificata (PEC) Obbligo Iscrizioni 2011

ESEMPIO 1: eseguire il complemento a 10 di 765

Il Processore: i registri

INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)

SPOSTARE IATROS DA UN PC AD UN ALTRO


INFORMATICA 1 L. Mezzalira

Il sistema C.R.M. / E.R.M.

Istruzioni per la gestione della password personale di dominio aziendale

CAPITOLO 7 - SCAMBIO DI MESSAGGI

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

ENTRARE NEL SISTEMA. Clicca su Entra per entrare nel sistema. PAGINA 1

M.U.T. Modulo Unico Telematico

Il presente documento illustrerà il. funzionamento del modulo di comunicazione. tra Utenti della Distribuzione e Società di

Architettura di un sistema di calcolo

Parte II.2 Elaboratore

Classificazione: DI PUBBLICO DOMINIO. LOMBARDIA INFORMATICA S.p.A.

INVIO SMS

7.4 Estrazione di materiale dal web

Il tuo manuale d'uso. OLIVETTI FAX-LAB 310 SMS

Corso di Informatica

Istruzioni operative instal azione FirmaVerifica3.0 Pag.1 di 27

MAGAZZINO FISCALE (agg. alla rel )

3. Introduzione all'internetworking

Calcolare il massimo di una lista

Amministrazione gruppi (Comunità)

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

MANUALE UTENTE. TeamPortal Liste Distribuzioni

2015 PERIODO D IMPOSTA

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

MODELLISTICA DI IMPIANTI E SISTEMI 2

Transcript:

ESERCIZIO 1 1 Traccia 1 Analisi 2 Codifica programma 7 Esercizio 1 Traccia IL microprocessore riceve dati dalla porta di indirizzo 30H. I dati sono organizzati in frame nel seguente modo: il primo byte dice la lunghezza complessiva del frame, seguono i byte di dati, l ultimo byte è il byte di checksum. Esso è un byte di controllo per controllare in ricezione se vi sono state alterazioni dei dati. Tale byte viene realizzato dalla macchina mittente nel modo seguente: si fa prima la XOR fra 00H e il primo byte di dati, poi si fa la XOR fra il risultato precedente e il secondo byte e così via fino all ultimo byte (vedi simulazione). La lunghezza del frame nel sistema di comunicazione in cui è inserito il nostro microprocessore, può essere al massimo di 200 byte. Lo Z80 preleva il primo byte e controlla che la lunghezza sia superiore a quella consentita. In tal caso invia alla porta un messaggio Excessive Lenght (EXL) pari ad A3 H, altrimenti immagazzina i dati in memoria escluso il byte iniziale e il byte di checksum. Successivamente il microprocessore ricalcala il checksum sui dati contenuti nel frame e lo confronta con quello ricevuto. Se i due checksum sono 1

uguali, lo Z80 invia alla porta un byte di Acknowledgment (ACK), il cui valore è FF H altrimenti invia un messaggio Not Acknowledgment (NAK) il cui valore è FE H e cancella l area di memoria in cui aveva registrato il frame. Successivamente passa ad attendere il nuovo frame o una copia di quello ricevuto con errori e scartato. L area di memoria utilizzata per immagazzinare i dati è costituita da 10000 locazioni. Quando questa area si riempie il microprocessore invia un messaggio Full Buffer (FBU) pari a 10H alla porta per impedirle di inviare nuovi frame. Scrivere il sottoprogramma RICFRAME che gestisce questo processo. Il sottoprogramma termina quando il buffer è pieno. Analisi Cominciamo una prima stesura del programma mediante una flow chart 2

RICFRAME PRELEVA LUNGHEZZA FRAME 2 SI L>200? NO MANDA EXL PRELEVA DATI CALCOLA CHECKSUM CONFRONTALO CON IL CHECKSUM INVIATO 1 3

1 SI NO UGUALI? MANDA ACK MANDA NAK AZZERA DATI PIENO? SI MANDA MESSAGGIO FBU 2 RITORNA Il blocco preleva dati può essere realizzato con un altro sottoprogramma PREL che può essere rappresentato dal seguente diagramma 4

PREL CARICA LUNGHEZZA FRAME IN UN CONTATORE PRELEVA DATO E IMMAGAZZINALO INCREMENTA PUNTATORE DECREMENTA CONTATORE NO CONTATORE =0? SI RITORNA Il blocco calcola checksum può essere realizzato con un altro sottoprogramma CHECK 5

CHECK PUNTA AL PRIMO DATO DEL FRAME CARICA NUMERO DATI FRAME IN UN CONTATORE CARICA ZERO NELL ACCUMULA TORE FAI LA XOR CON IL DATO INCREMENTA PUNTATORE DECREMENTA CONTATORE SI NO =0? SALVA IL CHECKSUM IN UN REGISTRO RITORNA 6

Codifica programma RICFRAME: LD HL,1A00H; punta all inizio del buffer ET: IN A,(30h); leggi la lunghezza del frame contenuta nel primo byte CP C9h;controlla se la lunghezza è superiore a 200, pari a C8 hex JP N,ET1;se la lunghezza del frame è inferiore salta le istruzioni ;che inviano il messaggio EXL LD A,A3h; carica in A il codice di EXL OUT (30h),A;invialo alla porta JP ET;torna all inizio ET1: CALL PREL; se la lunghezza è giusta preleva i dati, ;il sottoprogramma deve lasciare A inalterato poiché ; la lunghezza del frame CALL CHECK;al termine del sottoprogramma HL punterà ; alla locazione che contiene il checksum inviato, ; imponiamo che lasci in D il checksum ;calcolato LD E,A;salva A che contiene la lunghezza del frame LD A,D;poni in A il checksum calcolato CP (HL);confronta con il checksum calcolato JP Z,ET2;salta le istruzioni che mandano il messaggio NAK LD A,FEh; inserisci in A il valore di NAK OUT(30h),A 7

LD A,E; recupera la lunghezza del frame CALL AZZERA JP ET3;occorre saltare le istruzioni da eseguire se il checksum ; è corretto ET2: LD A,FFh ;carica in A il codice ACK OUT(30h),A ET3: AND A; questa istruzione non modifica l accumulatore ma serve ;soltanto per azzerare il carry LD BC,410Fh;il buffer inizia con la locazione 1A00, e finisce alla ; 410Fh poiché 10000 in esadecimale è 2710h da cui ; la locazione finale è 1A00+2710-1=410Fh ; il sottoprogramma CHECK dovrà fare in modo che HL ; punti al checksum dell ultimo frame inserito quindi, se ; è l ultimo frame inserito HL dovrà contenere 410F SBC HL,BC;questa è l unica istruzione di sottrazione a 16 bit, ;perciò abbiamo azzerato il carry JP Z,FINE;in questo caso vai alla fine del sottoprogramma ADD HL,BC;altrimenti ripristina HL INC HL;incrementalo in modo da puntare alla prima locazione vuota JP ET; e ritorna all inizio per prelevare un nuovo frame FINE: LD A,FEh;invia il messaggio di buffer pieno OUT(30h),A 8

RET PREL: LD B,A;salva nel contatore B la lunghezza del frame ; HL contiene già l indirizzo della prima locazione del buffer : da riempire INIR RET CHECK: LD C,A LD B,00h;abbiamo inserito nel registro BC la lunghezza del frame AND A;azzera il carry SBC HL,BC;il sottoprogramma PREL ha portato HL più avanti di una ; posizione per cui se sottraggo la lunghezza del frame ;mi porto al primo byte del frame INC HL;mi devo portare al secondo byte che è il primo dei dati LD B,C;uso B come contatore DEC B;deve essere pari alla lunghezza del frame meno uno ;poiché non dovremo fare la XOR anche con il byte di checksum ;inviato dal trasmettitore LD E,A;salvo in E la lunghezza del frame LD A,00h;A conterrà il checksum ET4: XOR (HL) INC HL DJNZ ET4 9

LD D,A ;salva il checksum calcolato LD A,E;salva di nuovo in A la lunghezza del frame RET AZZERA: LD B,A;il sottoprogramma CHECK ha fatto in modo che HL punti ;all ultimo byte del frame LD A,00h ET5: LD (HL),A DEC HL DJNZ ET5 INC HL RET 10