1 M. Rebaudengo Routine di servizio dell’interrupt.

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

Uso avanzato di C.
A. FERRARI MATERIALE DALLA DISPENSA DI P. OLLARI
Programmazione assembler
in un programma Assembler
Procedure In assembler.
Organizzazione della memoria
Programmazione in Ambiente Profibus DP
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
Tail recursion: esempio
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Flip-flop e Registri.
Interfaccia del Timer1 I/O AB I/O DB I/O CB Dec SELECT START IRQ SCO R Q S Q STATUS STARTDEV COMPLETE CLEAR IVN CPU IACK IN IACK OUT IRQ IOWR REG COUNTER.
Esercizio Esame Un processore PD32 è interfacciato a due periferiche di input A e B, e ad un DMAC il quale puo’ gestire trasferimento di dati da B verso.
Gestione delle subroutine
Processi, Thread, Multitasking, Multithreading. Ingredienti 1 CPU 1 Memoria RAM Tanti programmi che condividono la stessa memoria Esigenza di far girare.

Strutture di controllo nel C
File di testo, file binari
OPERAZIONI CON STRINGHE Le operazioni più interessanti da fare, per ora, con le stringhe sono: determinare la lunghezza della stringa, cioè quanti caratteri.
Istruzioni per il Controllo del Processore
Interfacciamento con mouse seriali
Programmazione Avanzata
Gestione della memoria logica e fisica degli elaboratori x86
Gestione della tastiera
BUS DI CPU M. Mezzalama - M. Rebaudengo Politecnico di Torino
Prof. Marco Mezzalama –All rights reserved Esempio Si consideri listruzione in modo protetto: MOV AX, (EBX) Si supponga che DS = 200 e EBX = 155 Lindirizzo.
1 Gestione del mouse via interrupt. 2 Connessioni 8259 master CPU 80x86 IR4 INT INTA A MHz 8250 o INTR mouse OUT2 SIN DTR RTS.
INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller.
Struttura del Computer
GESTIONE DELLA TASTIERA
CALCOLATORI ELETTRONICI II
Introduzione al linguaggio assembly del microprocessore a parte
Introduzione al linguaggio assemby del microprocessore a parte
Istruzioni per la Manipolazione dei Bit
Strutture di Controllo
void binario(int n); …………………
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
PIC 8259 PROGRAMMABLE INTERRUPT CONTROLLER
Le istruzioni dell’ 8086 Classe 3.
GESTIONE INTERRUPT CPU INTEL 8086
Introduzione al linguaggio assembly del microprocessore a parte
BUS DI CPU M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
Progetto di una memoria cache per il processore DLX
Alberi binari Definizione della struttura dati: struct tree { };
Sia TAPE una periferica di gestione di nastri magnetici in grado di acquisire/fornire dati a 8 bit, e sia CD una periferica di masterizzazione in grado.
La gestione delle interruzioni
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Luca Orrù 1 Input/Output. 2 SOMMARIO Organizzazione di sistema Trasferimento dati; Gestione I/O.
Architettura di una CPU
Il µP Intel 8086 Marco Lettieri 3 C Informatica A.S. 2009/2010 All’attenzione del Professor Claudio Gatto.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Concetti Generali.
1 Connessione Microprocessore- Dispositivi di I/O.
Architettura IA - 16 M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Procedure e Macro.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Gestione dei dispositivi di I/O:
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 13 e 14 -
CORSO DI PROGRAMMAZIONE II
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
8253 (temporizzatore di intervalli)
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Fondamenti di Informatica1 Linguaggi Diversi tipi di linguaggi: –Imperativi –Funzionali –Dichiarativi Tutti basati sulla traduzione nell'unico linguaggio.
Architettura IA - 16 M. Mezzalama - M. Rebaudengo - M. Sonza Reorda
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda Interfaccia verso il bus.
Esercizio Semaforo Un processore è interfacciato a due periferiche di input che indicano il numero di autovetture passate nelle due direzioni di un incrocio.
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda L’Assembler 8086 Istruzioni per.
Architettura 8086/8088 M. Rebaudengo - M. Sonza Reorda
Comandi assembly Il termine assembly deriva dal programma traduttore in linguaggio macchina assembler, l’assemblatore non fa altro che assemblare il.
Vari e semplici programmi.
Transcript della presentazione:

1 M. Rebaudengo Routine di servizio dell’interrupt

2 M. Rebaudengo Main in C Extern void UART_init(); Extern void fine_isr(); void main() { char stringa[20], *pstringa; char eos=0; pstringa = stringa; UART_init(); while (eos == 0) {/* CPU FA NULLA IN ATTESA CHE TERMINA IL PROCESSO DI GESTIONE VIA INTERRUPT*/} printf(“%s\n”, stringa); fine_isr(); }

3 M. Rebaudengo Scheletro Assembler EXTRN pstringa:WORD EXTRN eos:BYTE rbrequ03f8h dlr_lsbequ03f8h dlr_msbequ03f9h lcrequ03fbh ierequ03f9h lsr equ03fDh fifo_crequ03fah mcrEQU03FCH.model small,c.DATA old_int0C_offset dw ? old_int0C_segment dw ?.code

4 M. Rebaudengo Routine di servizio dell’interrupt ISR_UART proc FAR PUSH DS STI MOV AX, SEG pstringa MOV DS, AX MOV SI, pstringa mov dx,rbr in al, dx ; then write the byte MOV [si], AL INC pstringa CMP AL, 0 JNE fine MOV eos, 1 fine: OUT 20h, 20h ; EOI master POP DS pop dx iret ISR_UART endp

5 M. Rebaudengo Inizializzazione 8250 UART_init proc PUSH ES movdx, lcr in al, dx;lettura del contenuto di LCR oral, 80h;set DLAB outdx, al;scrittura in LCR ; bit-rate: 9600 movax, 000ch movdx, dlr_lsb outdx, al mov al, ah incdx outdx, al ; 1 bit di stop, 8 bit/carattere, parita’ ; DLAB = 0 moval, 0Bh movdx, lcr outdx, al

6 M. Rebaudengo Inizializzazione 8250 (cont.) ; disabilitazione fifo control register xor al, al mov dx, fifo_cr out dx, al ; abilitazione delle richieste di interruzione per trasmissionwe mov al, 01h movdx, ier outdx, al MOV DX, MCR MOV AL, 0Bh ; abilitazione out2 OUT DX, AL

7 M. Rebaudengo Inizializzazione 8250 (cont.) mov ax, 0 mov es, ax ; segmento ES=0000 mov bx, 0Ch ; tipo di interrupt shl bx, 2 ; moltiplica per 4: offset IVT ; salva l’indirizzo della vecchia ISR mov ax, es:[bx] mov old_int0C_offset, ax mov ax, es:[bx+2] mov old_int0C_segment, ax cli ; disabilita interrupt prima di ; scrivere nella IVT ; carica l’indirizzo della nuova ISR mov ax, OFFSET isr_uart mov es:[bx], ax mov ax, SEG isr_uart mov es:[bx+2], ax sti ; riabilita interrupt POP ES ret UART_init endp

8 M. Rebaudengo Ripristino della situazione iniziale fine_isr PROC Push es mov ax, 0 mov es, ax ; segmento ES=0000 mov bx, 0Ch ; tipo di interrupt shl bx, 2 ; moltiplica per 4: offset IVT ; salva l’indirizzo della vecchia ISR cli ; disabilita interrupt prima di ; scrivere nella IVT ; carica l’indirizzo della nuova ISR mov ax, old_int0C_offset mov es:[bx], ax mov ax, old_int0C_segment mov es:[bx+2], ax sti ; riabilita interrupt pop es ret fine_isr ENDP