Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79

    [Assembly] Chiarimenti teorici sulla chiamata a sottoprogramma

    Salve,
    non capisco bene il comportamento del Program Counter e dello Stack pointer nel momento in cui viene chiamato un sottoprogramma. Cito questi due perchè mi sono sembrati i registri maggiormente coinvolti, ma molto probabilmente anche altri vengono modificati al fine di eseguire questa operazione. Cioè, in pratica mi interesserebbe la descrizione dettagliata del loro comportamento dal momento appena precedente alla chiamata al sotto-programma fino al momento dell'uscita da esso e della ripresa del normale ciclo di istruzioni.
    Oltretutto vi sarei molto grato se mi accompagnaste la spiegazione con un frammento di codice Assembler che mostra la chiamata ad un sottoprogramma.
    Se non riuscite a spiegarmelo, linkate pure delle fonti dove la cosa è spiegata bene, io non ne ho trovate purtroppo, o meglio, ho trovato slide di corsi universitari di varie zone, ma non c'è qualcosa che con l'aiuto di un testo, senza essere eccessivamente riassuntivo, spieghi bene il procedimento e tutto quello che avviene e viene modificato passo per passo.

    Inoltre se conoscete testi sull'argomento vi chiederei di consigliarmeli.

    Vi ringrazio molto.
    "La fortuna aiuta gli audaci"
    (e non gli adagiati)

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Una CPU in particolare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79
    Ciao,
    grazie dell'interessamento.

    No, non c'è una cpu in particolare, nel programma del corso di Calcolatori elettronici viene spiegato il funzionamento generale della procedura (ovviamente nel modo sintentico incomprensibile di cui parlavo sopra ), senza riferimenti a cpu in particolare.
    "La fortuna aiuta gli audaci"
    (e non gli adagiati)

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    In realtà esistono alcune differenze (minime ma sostanziali) a seconda della CPU "reale".

    In generale, quando viene eseguita una chiamata, viene salvato il Program Counter (a volte anche dei registri, a volte il valore del PC+1 ...) nello stack e viene caricato nel PC l'indirizzo iniziale del sottoprogramma.

    Al ritorno, viene prelevato il valore dallo stack (a volte si somma 1) e si pone nel PC. L'esecuzione riprende quindi normalmente.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    153
    mi aggiungo anche io a questo thread...qualcuno sa in particolare come vengono gestiti i registri esp ed ebp al momento della chiamata di una funzione su una archittetura IA-32? Grazie
    cogli l'attimo

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da c_junior
    ... registri esp ed ebp al momento della chiamata di una funzione su una archittetura IA-32?
    Questo

    http://www.thch.unipg.it/~redo/lectu...gi/5/fifth.pdf

    ti puo' essere utile?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    153
    Originariamente inviato da oregon
    Questo

    http://www.thch.unipg.it/~redo/lectu...gi/5/fifth.pdf

    ti puo' essere utile?
    si grazie
    cogli l'attimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.