Che materia stai cercando?

Sottoprogrammi

Appunti con esercitazione di Calcolatori elettronici I del prof. Canonico sui sottoprogrammi e lo scambio dei parametri: la subroutine, il chiamante ed il chiamato, il program counter, i registri, la memoria e lo stack, l'uso della ricorsività.

Esame di Calcolatori elettronici I docente Prof. R. Canonico

Anteprima

ESTRATTO DOCUMENTO

var a

var b var b

var c var c var c

stack

var a

var b var b

var c var c var c

stack

Nel 68K il puntatore a quest’area di memoria è rappresentato da uno specifico registro-indirizzi, che costantemente

A7,

punta alla testa. All’interno del processore, notiamo che è l’unico registro indirizzi ad essere duplicato, infatti al primo

si accede in stato utente, al registro duplicato in stato supervisore. La differenza sta nel fatto che, quando si accede in

stato supervisore, sono ammessi tutti i modi di indirizzamento supportati dal processore.

Domanda – Chi è che fornisce al sottoprogramma i dati su cui deve lavorare?

I dati, su cui il sottoprogramma deve andare ad agire, sono forniti dal programma, che ne ha invocato l’ausilio

attraverso un’operazione, che prende il nome di scambio dei parametri. Tuttavia anche al momento del ritorno al

programma principale, la subroutine deve fornire il frutto delle sue elaborazioni, restituendo i nuovi valori.

Come per il C++ è ammesso lo scambio dei parametri per valore o per riferimento, allo stesso modo avviene

nell’ASIM. Infatti, supposto di voler utilizzare i registri per memorizzare i parametri, nel caso dello scambio per valore

si tratta di memorizzare in un registro dati una copia del valore da passare alla subroutine; nel caso dello scambio per

riferimento, invece, si tratta di caricare l’indirizzo effettivo di una variabile e di porlo in un registro indirizzi. Nel primo

esempio, una qualsiasi azione effettuata sul registro dati non andrà a modificare il valore, contenuto nella variabile

d’origine. Viceversa nel secondo esempio, la variabile d’origine viene acceduta tramite indirizzo, pertanto una qualsiasi

operazione agente su di essa, ne modifica il valore.

VAR,D0

MOVE.W

Viene effettuata la copia di in Non è ad essere modificato, infatti il programma agisce unicamente sulla

VAR D0. VAR

copia posta in Lo scambio effettuato è allora per valore e verrà utilizzato per variabili di input, su cui non è

D0.

necessario venga effettuato alcun cambiamento.

VAR,A0

LEA

Tramite il codice operativo viene caricato l’indirizzo effettivo della variabile e verrà modificato durante

LEA VAR

l’esecuzione del sottoprogramma, che accede ad esso a mezzo, appunto, dell’indirizzo. Dunque questo scambio è per

riferimento e ne sarà fatto uso per variabili di output, per le quali è necessaria un’elaborazione e la registrazione,

pertanto la modifica del valore.

Esercizio

Scrivere un programma che sposti attraverso un sottoprogramma i dati caricati nel registro in utilizzando la

D0 D1,

memoria per la registrazione dell’indirizzo di ritorno.

SUBROUTINE

Cominciamo con il guardare alla subroutine. Poiché l’indirizzo di memoria deve essere conservato in memoria, all’inizio

della subroutine dobbiamo dichiarare lo spazio di una longword per permettere il ritorno al chiamante e poi specificare

le azioni che deve compiere il sottoprogramma.

ORG $8000

SOTT 1

DS.L

*Spazio destinato alla memorizzazione dell’indirizzo di ritorno al chiamante;

D0,D1

MOVE.W

*Viene eseguita l’operazione richiesta dalla traccia;

SOTT,A0

MOVE.L

*Viene caricato nel registro indirizzi A0 l’indirizzo di ritorno al chiamante, conservato

*proprio nella locazione di memoria identificata dall’etichetta SOTT;

(A0)

JMP

*Viene provocato il salto incondizionato all’indirizzo contenuto in A0.


PAGINE

3

PESO

71.72 KB

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in ingegneria informatica
SSD:
A.A.: 2013-2014

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher valeria0186 di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici I e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Napoli Federico II - Unina o del prof Canonico Roberto.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Calcolatori elettronici i

Quaderno appunti presi a lezione con esercizi esame svolti
Appunto
Calcolatori elettronici I - Esercizi sugli Automi
Esercitazione
Calcolatori Elettronici I - Appunti e esercizi
Appunto
Calcolatori elettronici I - analisi
Appunto