Sono nella confusione più totale, non ci sto capendo davvero niente, come funzionano le procedure a basso livello?
Per quale motivo per indirizzare dati nello stack ho bisogno del registro BP e non posso usare lo SP, perché un istruzione del genere genera un errore:
Cos'è che mi impedisce di usare registri diversi da quelli di base per indirizzare dati in memoria?
Niente mi impedisce di incrementare lo SP di "n" unità, eseguire "n" pop per avere accesso ai parametri, e poi decrementare lo stack pointer così da puntare all'indirizzo di ritorno.
Non capisco l'utilità del BP.
Scusate se chiedo molto, ma sono davvero molto confuso, più leggo a riguardo più mi confondo, qualcuno mi potrebbe spiegare bene tutto ciò?
Per quale motivo per indirizzare dati nello stack ho bisogno del registro BP e non posso usare lo SP, perché un istruzione del genere genera un errore:
Codice:
mov ax, WORD PTR [sp+4]
Niente mi impedisce di incrementare lo SP di "n" unità, eseguire "n" pop per avere accesso ai parametri, e poi decrementare lo stack pointer così da puntare all'indirizzo di ritorno.
Non capisco l'utilità del BP.
Scusate se chiedo molto, ma sono davvero molto confuso, più leggo a riguardo più mi confondo, qualcuno mi potrebbe spiegare bene tutto ciò?