Rimappattura interrupt

di Aless il
14 risposte

Ciao, forse non è la sezione adatta, ma volevo sapere cosa occorre fare per rimappare un interrupt, supponendo di voler ‘’inventare" l' interrupt INT 80H Per esempio, come si può fare?

Grazie mille 

14 Risposte

  • La sezione è giusta ma non ti sei spiegato. 

    Cosa vorresti fare esattamente? In quale contesto? Sai cosa fa esattamente l'istruzione

    INT

    ?

  • Si certo vorrei installare un nuovo gestore per l' indirizzo 80h della tabella dei vettori di interrupt.

  • Lavori con Linux? Perchè proprio la 80h? In quale CONTESTO operi?

    in modalità reale o protetta?

  • No è sempre un so indipendente, ho messo 80h per caso, mi sono dimenticato che è utilizzata da linux e che poteva creare ambiguità, scusate

  • Allora in modalità reale devi cambiare solo l'indirizzo a cui punta l'int in questione nel formato segmento:offset 

  • Ok grazie, fin qui ci sono, ma come si fa?? Era quella la mia domanda 

    In giro per il web ho letto che si fa semplicemente così, ma mi sembra troppo semplice

    INT_N db 80h
    MOV INT_N,[Miogestore]
    
    Miogestore:
      Nop
      Nop
      Iret
  • Quel codice non ha senso.

    L'indirizzo a cui punta una INT è fatto da 2 byte per il segmento più 2 per l'offset per un totale di 4 byte (si memorizza prima l'offset e dopo il segmento). Quindi, ad esempio per l'INT 80h sta nelle locazioni

    80h*4 e 80h*4+1 per l'offset

    80h*4+2 e 80h*4+3 per il segmento 

    P.S. tutta roba che si dovrebbe sapere prima di iniziare a scrivere questi codici. In realtà il tuo non un problema di programmazione per codice da correggere ma un problema relativo al dominio del problema che tu non hai affatto chiaro. E il forum non ti può fare da tutorial per scrivere un kernel

  • La  gestione degli interrupt dipende da un sacco di fattori:

    1. quali sono gli interrupt disponibili
    2. la loro implementazione hardware
    3. l'implementazione a livello di sistema operativo

    in generale trovi tutto scritto in LIBRI superavanzati sull'hardware (CPU) e sul sistema operativo.

    E robbbba a basso livello affrontato da pochi programmatori MOLTO esperti. 

  • In modalità reale è semplice (altra cosa se la CPU opera in modalità protetta) ma bisogna avere delle basi

  • Giusto, i vari ring della CPU Intel

    Ho anche visto che libri sull'argomento c'e' ne sono diversi: da quelli per pc/dos, a testi piu' teorici della springer

    Ormai i libri non servono piu': se ChatGPT non lo sa (ma lui sa tutto ;-)) , basta chiedere in un forum, e credere alle risposte del primo pisquano di turno. 

  • Purtroppo i libri non si usano più ma non solo da quando c'è chatgpt.

    Voler scrivere il nucleo di un kernel in asm senza conoscere l'abc è assurdo

  • Sinceramente penso che i libri nonostante i forum servano ancora come manuali per rinfrescarse i concetti e farsi le idee ben chiare di cosa si vuol fare!

  • Ben tornato smalldragon, era da un po' che non scrivevi…

  • Grazie il lavoro e vicende familiari mi hanno tenuto lontano dal mondo della programmazione che amo

Devi accedere o registrarti per scrivere nel forum
14 risposte