Sistemi Elettronici #6. Subroutine

Documenti analoghi
Esempio di moltiplicazione come somma e spostamento

Periferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Sistemi di Elaborazione delle Informazioni

Calcolatori Elettronici

Manualetto. Aggiornato al 31/07/2014

Set di istruzioni Z80 (quarta parte) Pagina 1 di 9 ISTRUZIONI DI SALTO

Modi di esecuzione user / kernel

Il problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano

Il linguaggio assembly

Gestione Degli INTERRUPT

Architettura di una CPU

Lettura tastiera 5x3. 1. Descrizione. Problema: Schematicamente: Tastiera: Lettura tastiera 5x3

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Modi di indirizzamento

PIANO DI LAVORO DEI DOCENTI

Calcolatori Elettronici: introduzione

Il sistema delle interruzioni nel processore MC68000 (cenni)

Interazione con il DOS e il BIOS

All interno di un ATmega16 troviamo moltissimi dispositivi trai quali, timer, gestori delle interupt personalizzabili, convertitori A/D, multiplexer

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

Il sistema di I/O. Calcolatori Elettronici 1. Architettura a bus singolo. Memoria. Unità di I/O. Interfaccia. Unità di I/O.

Lezione 12: L architettura LC-3

Componenti e connessioni. Capitolo 3

L insieme delle istruzioni (6)

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Architettura dei Calcolatori elettronici

Calcolatori Elettronici L A Prova scritta del 15/12/ 03

Laboratorio di Architettura lezione 11. La scorsa lezione. Motivi? Word e bytes

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

CONTATORE/TIMER PROGRAMMABILE CTC Z80 1. Piedinatura 2. Struttura interna 4. Modo timer 5. Modo Counter 8. Programmazione del CTC 13

Come è fatto un computer

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico pagina 1

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Davide Gennaretti, Matteo Nicolini

Processore Danilo Dessì. Architettura degli Elaboratori.

Memoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica

LA GESTIONE DELLA I/O

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Sottosistema d ingresso uscita

1. Caratteristiche dello hardware

ISA (Instruction Set Architecture) della CPU MIPS

Capitolo 13 Il sottosistema di ingresso/uscita

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

L insieme delle istruzioni

Se per esempio inserisco show version ecco il risultato. Con il comando enable entro in privilege mode.

Calcolatori Elettronici A a.a. 2008/2009

Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis. Corso di Laurea in Ingegneria Elettronica

Assembly. Modello x86

ISA Input / Output (I/O) Data register Controller

Esercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Capitolo 5 Linguaggio Assembly

Macchina di von Neumann/Turing

Il linguaggio macchina

Memoria cache, interrupt e DMA

Corso di Laurea in Ingegneria Elettronica

Architettura del Set di Istruzioni (ISA)

Esercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente:

Architettura dei computer

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Richiami: v[i] e &v[i] Organizzazione della memoria. Organizzazione della memoria. Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Capitolo 6 Il repertorio delle istruzioni. Parte I

Comprende due comandi : OPEN ( Ouvrir ) = carica un programma in formato esadecimale (.hex) per poterlo simulare.

AXO Achitettura dei Calcolatori e Sistema Operativo. Instruction Set Architecture (ISA) e 68000

2. Nucleo del sistema operativo (la gestione dei processi)

Porta CENTRONICS e Porta Parallela LPT.

1 Registrazione del Solar-Log 200 WiFi. 2 Installazione del Solar-Log 200 WiFi

Interruzioni o eccezioni? 1

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

FRAMEWORK PER L'ESECUZIONE DI APPLICAZIONI ASSEMBLY SUL MODELLO VERILOG DI UN SISTEMA DI ELABORAZIONE BASATO SUL PROCESSORE emips-sc

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Sottoprogrammi in linguaggio assembly del Motorola 68000

1 Esercizi con architettura a 1 bus

I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione.

Gestione della memoria

Laboratorio di Architettura degli Elaboratori

CN03P. Manuale d uso Controller per motori Passo Passo Ver. 1.4 del 20 feb 07 Connessione Centronics

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

FONDAMENTI DI INFORMATICA Lezione n. 11

Linguaggio Assembly e linguaggio macchina

IL MICROPROCESSORE Z80

Livelli del sottosistema di I/O

Il processore: unità di controllo

Richiami: Ciclo di sviluppo e ASIM

POLITECNICO DI TORINO Facoltà di Ingegneria dell Informazione Corso di laurea in Ingegneria Elettronica MONOGRAFIA. Codifica e Lettura Tastiera 5x3

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Z80 uc esecuzione di programmi

MobileCap 124 Guida d'installazione

Parte V. Il Livello delle Istruzioni Macchina

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte1)

Questa configurazione non offre alcuna protezione. Si usa un hub che serve per "condividere" la connessione a internet su tutte le sue porte.

Architettura degli Elaboratori

Architettura dei calcolatori e sistemi operativi. Sottoprogrammi e MIPS. Espressioni algebriche. Capitolo 2 P&H

Passaggio di Parametri per Valore o Indirizzo

Non Food Dispenser MANUALE D USO DELLA SCHEDA ELETTRONICA CON LETTORE DI BADGE. Sinapsi NON-Food REV. 3 DEL 15/07/08

Lezione 17: Indirizzamento della memoria LC-3

Corso introduttivo sui microcontrollori. Un sistema tastierino a matrice 4x4 da collegare alla nostra demoboard AnxaPic.

Video Quad Processor

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Transcript:

Subroutine Una subroutine è un insieme di istruzioni che si adoperano più volte insieme e nella stessa sequenza. Se usiamo l espressione RJMP per chiamare una subroutine all uscita di essa non ho un ritorno specificato.(non sappiamo all uscita dove torna il programma ) RCALL XXXXXX Etichetta che indica di quanto ci si deve muovere

RJMP vs RCALL Supponiamo che l etichetta asterix indichi il numero 37 Confrontiamo RJMP asterix con RCALL asterix Con RJMP asterix leggo l istruzione nella memoria programma incremento il PC di uno e poi lo incremento di 37 per un totale di k+1 (vedere istruction set), senza influenzare lo stack pointer Con RCALL asterix il PC viene incrementato di 1 ed il suo contenuto viene salvato nello stack pointer, successivamente SP viene aggiornato come nella istruzione di RJMP Con l istruzione RET il contenuto del PC viene aggiornato prendendo il dato salvato precedentemente nello Stack, va messa quindi alla fine della subroutine

RJMP vs RCALL L istruzione RET funziona con un pre-incremento quindi lo stack pointer deve essere alla locazione immediatamente prima a dove è stato salvato il PCL e PCH del PC Program Memory RCALL Prima della chiamata a RET, SP deve essere qui Stack PCL PCH

Subroutine Una subroutine può a sua volta chiamare un altra subroutine che a sua volta ne può chiamare un altra. 0x100 RCALL PIPPO 0x174 PIPPO: CLR 0x182 RCALL PLUTO RET 0x200 PLUTO: SER R16 RET

CLR R18 LDI R16, 5 RCALL CONTA Esempio di subroutine CONTA: FINE: PUSH R17 TST R16 BREQ FINE DEC R16 PUSH R16 POP R17 ADD R18, R17 RJUMP CONTA RET

Interrupt Abbiamo visto negli esempi precedenti che si possono controllare deterministicamente tutte le istruzioni e che cambiamenti portano in tutti i registri anche in presenza di condizioni previste (salti condizionati) Diverso e più complicato è invece controllare eventi provenienti dal mondo esterno. (Es. apertura di porte, di valvole, monitoraggio e controllo della temperatura) Si dovrebbe interrogare periodicamente le periferiche di interfacciamento e controllare lo stato di un byte. Cosa molto dispendiosa.

Interrupt Sistemi Elettronici #6 L interrupt è un meccanismo hardware mediante il quale è la stessa periferica che avverte il verificarsi di un particolare evento. La CPU deve essere quindi in grado di percepire se vi è una periferica che richiede il suo intervento mediante una routine di servizio Alla fine di ogni istruzione la CPU verifica se ci sono periferiche che vogliono essere servite tramite il bit di interrupt Non si può sapere a priori a quale istruzione del codice siamo quando avviene un interrupt Se il registro I=0 anche se una periferica avanza una richiesta di interrupt la CPU non se ne accorge

.CSEG.ORG RJMP RJMP RJMP RETI RETI RETI RESET: 0X00 RESET INT_1 INT_2 Interrupt Bisogna lasciare 17 posti liberi per le Interrupt Si parte quindi da 0x11 SI ESEGUONO DIVERSE ISTRUZIONI RETI Sistemi Elettronici #6 In presenza di una interrupt il processore mette automaticamente il bit I dello SREG a 0 in modo che altre eventuali richieste di interrupt non vengano sentite. RETI ha la stessa funzione di RET con in più la possibilità di settare il bit I a 1

Gestione delle Interrupt Non si può sapere a priori quando avviene una richiesta di interrupt La CPU non prende alcuna precauzione su registri che vengono modificati Per mantenere il registro di stato e gli altri registri che si devono adoperare bisogna quindi prevedere delle procedure di salvataggio Le operazioni di push e pop non alterano il registro di stato, quindi possono essere utilizzate senza alcun problema

INT_1: PUSH R16 IN R16, SREG PUSH R16 PUSH R17 PUSH R18.. POP R18 POP R17 POP R16 OUT SREG, R16 POP R16 RETI Esempio Esempio di procedura di salvataggio Riprendo il contenuto di SREG Riprendo il contenuto R16

PORTE DI I/O Le periferiche più semplici da usar sono le porte di ingresso/uscita: A, B, C, D Ognuna è composta da 8 bit e ad ognuna corrispondono 8 pin esterni Con opportune operazioni di IN e OUT si può quindi agire su queste porte Bisogna specificare se ogni piedino viene visto come uscita o come ingresso DDR X PORT X PIN X Con X= A, B, C, D Esempio: Se si vuole leggere dall esterno si deve leggere in PIN DDR A PORT A PIN A Per vedere cosa portare in uscita bisogna usare PORT

Pin di ingresso/uscita Ad ogni pin corrisponde un bit Se il tasto è chiuso il PIN è di uscita se è aperto il PIN è di ingresso

ESEMPIO di PIN di INGRESSO Inverter a rapporto Se il PIN è di ingresso possiamo pensare di fare questo collegamento Se nell istante in cui vado a leggere il valore è 1, il tasto è aperto; se è 0 il tasto è chiuso

Esempio di PIN di USCITA LED Se il pin è di uscita posso collegare un LED Se bisogna leggere cosa c è dall esterno devo leggere in PIN (A, B, C, D) Se invece bisogna leggere cosa portare in uscita devo leggere in PORT (A, B, C, D)

Configurazione delle porte La tabella seguente schematizza le possibili configurazioni pin per pin DDRA Y PORTA Y PA Y 1 0 0 X può essere un valore qualunque X 0 1 Uscita con valore X Ingresso no int pull up Ingresso pull up interno

IN IN carica dati dallo spazio di I/O (Porte, Timers, Registri di Configurazione) Rd I/O(A) IN Rd,A Con 0<d<31 0<A<63 IN R25, $16 CPI R25, 4 BREQ exit. Exit:NOP ESEMPIO PC PC+1

OUT OUT salva dati dai registri nello spazio di I/O (Porte, Timers, Registri di Configurazione) I/O(A) Rr OUT A,Rr Con 0<d<31 0<A<63 PC PC+1 ESEMPIO CLR R16 SER R17 OUT $18,R16 NOP OUT $18,R17