Rimappattura interrupt

di il
14 risposte

Rimappattura interrupt

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

  • Re: Rimappattura interrupt

    La sezione è giusta ma non ti sei spiegato. 

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

    INT

    ?

  • Re: Rimappattura interrupt

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

  • Re: Rimappattura interrupt

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

    in modalità reale o protetta?

  • Re: Rimappattura interrupt

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

  • Re: Rimappattura interrupt

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

  • Re: Rimappattura interrupt

    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
  • Re: Rimappattura interrupt

    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

  • Re: Rimappattura interrupt

    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. 

  • Re: Rimappattura interrupt

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

  • Re: Rimappattura interrupt

    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. 

  • Re: Rimappattura interrupt

    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

  • Re: Rimappattura interrupt

    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!

  • Re: Rimappattura interrupt

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

  • Re: Rimappattura interrupt

    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