2010-01-20 11 views

risposta

1

prima di immettere il gestore di interrupt, tutti i registri vengono inviati allo stack insieme all'indirizzo di ritorno remoto, sommano le dimensioni dei registri e aggiungono lo spazio necessario per memorizzare l'indirizzo di ritorno per ottenere la dimensione minima dello stack.

prendere atto che avrete bisogno di un po 'più spazio se si sta spingendo più dati nello stack, mentre nel gestore di interrupt

0

Ho notato che se si utilizza int 0x13 si dovrebbe avere uno stack che è almeno 4096 byte. I BIOS moderni hanno spesso un gestore int 0x13 compatibile con AHCI e dal momento che AHCI è piuttosto complicato il BIOS int 0x13 richiede molto spazio nello stack.

Nel mondo perfetto il BIOS dovrebbe avere il proprio stack, ma molti BIOS fanno affidamento sullo stack fornito.

0

La semplice risposta è che lo stack che il BIOS utilizzava per effettuare chiamate di interrupt (incluso l'int 13h per caricare il settore di avvio dall'unità flash USB) prima di caricare il settore di avvio è sufficiente per l'utilizzo del settore di avvio.

La risposta felice è che gli interrupt BIOS (ad eccezione del PCI più recente gonfio) sono progettati per l'esecuzione in uno spazio minimo in modo non c'è bisogno di impostare una pila nel settore di avvio.

Problemi correlati