Hardware stack underflow

7 Anni 9 Mesi fa #1 da orima5
Hardware stack underflow è stato creato da orima5
Saluti a tutti.
Sto esercitandomi col simulatore allo studio di una di un inerfacciamento di una tastiera Esadecimale.
Quando faccio partire il simulatore e arriva alla riga 11 per eseguire retlw 0x0F



.
.
10 btfss PORTB,4 ;Test pulsante P1
11 retlw 0x0F
.
.

il simulatore si blocca e scrive il messaggio: Hardware stack underflow. Perche'?

Grazie

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • orima5
  • New Member
  • New Member
Di più
7 Anni 9 Mesi fa #2 da Black
Risposta da Black al topic Hardware stack underflow
Ciao Orima5,

non sono un grande esperto di assembly per Pic, ma l'Hardware stack underflow è un errore che si verifica quando il programma esegue questa istruzione (ritorno da subroutine) senza che sia mai stata precedentemente chiamata alcuna subroutine.
Quando viene eseguita una subroutine (generata da un'istruzione di chiamata CALL oppure da un interrupt) il contenuto del Program counter (PC) viene salvato in una apposita locazione memoria (lo stack). Successivamente, al PC viene assegnato il nuovo indirizzo di memoria programma (cioè l'inizio della subroutine). La subroutine viene quindi eseguita fino in fondo e l'ultima sua istruzione è quella di ritorno (nel tuo caso RETLW).
RETLW non fa altro che ripristinare l'indirizzo prima della chimata nel PC (incrementando l'istruzione) estraendo i valori dallo stack e, ripristinando di fatto, il punto di esecuzione del programma all'istruzione successiva alla chiamata.
Lo stack, che conteneva quindi un dato con l'indirizzo "post subroutine", viene svuotato.

Se utilizzi l'istruzione RETLW senza mai aver chiamato alcuna subroutine, lo stack è già vuoto; di conseguenza il tentativo di estrarre l'indirizzo dallo stack vuoto genera lo stack underflow.

Sei sicuro di aver inserito le righe 10 e 11 all'interno di una subroutine?

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Black
  • Avatar di Black
  • New Member
  • New Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login