Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Nicola Mazzocca » 20.Sottoprogrammi in linguaggio assemblativo: Passaggio dei parametri su stack, passaggio per valore e per riferimento


Parametri in stack

Concetti fondamentali e passi di elaborazione

Il programma chiamante

  • Riserva spazio
  • Push dei parametri di input su stack

Il programma chiamato

  • Inizializza Frame Pointer
  • Esegue codice subroutine
  • Push dei parametri di output su stack
  • Ripulisce stack

Evoluzione dello stack – Comandi link e allocate

Fasi evolutive dello stack

Sintassi e funzionamento dei comandi link e allocate

Esempio codice ed osservazioni

  • Vantaggi: stessa area di memoria sia per gli indirizzi di ritorno che per il passaggio dei parametri, possibilità di usare stack per variabili temporanee
  • Svantaggi: veloce solo con risorse HW extra

Passaggio per valore e per riferimento

Esempi applicativi ed osservazioni

Considerazioni conclusive

Apprendimento delle tecniche più complesse per il passaggio dei parametri

Conoscenze necessarie per consolidare la familiarità degli allievi con l’utilizzo dei sottoprogrammi in linguaggio assemblativo

Prossima lezione

Esempi di programmi in linguaggio assemblativo III

  • Confronto tra vettori con subroutine
  • Subroutine e passaggio tramite stack
  • Passaggio tramite stack ed uso della LINK
  • Conteggio del numero di bit pari a 1
  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93