Tutorial Sezione Assembler

Dettaglio Istruzioni 

Le Schede del Tutorial

  Istruzioni della Cpu 80x86

SCHEDA n° 07 [I/ 048 di 198] 

    

    INT - Chiama le procedure di sistema
     
bulletQuesta istruzione organizza la chiamata e l'esecuzione di una procedura di Sistema, cioè un sottoprogramma terminato con IRET, di solito presente in una memoria a sola lettura (ROM) come la BIOS, o caricato in RAM dal Sistema Operativo (Funzioni DOS) o da un Driver (per esempio, quello del mouse).
bulletSi deve ritenere un particolare tipo di CALL FAR; rispetto ad essa oltre all'indirizzo far a cui tornare viene salvato anche il contenuto del registro delle flag.
bulletIn pratica si comporta come un'interruzione mascherabile hardware, con la differenza che non può essere mascherata.
bulletLe sue caratteristiche sono riassunte nella seguente tabella (leggi le istruzioni Legenda della Tabella):
         
          INT Numero  equivale a     PUSHF  +  CALL FAR [numero*4]
 

Esempio di Applicazione

Cicli di Clock Mem
Acces

Bytes
Flag   influenzate
Mnemonico Operandi 86 268 386 486 O D I T S Z A P C

INT

 numero

51 23+m 37 30 5 2     0 0          

INT

 3

52 23+m 33 26 5 1
         
bulletLa tabella evidenzia che l'istruzione forza a zero le flag di Trap e di Interrupt-enable; l'istruzione genera 2 bytes di codice, con eccezione di quella con operando uguale a 3, detta Breakpoint ed estremamente utile in fase di debugging dei nostri programmi.
         
bulletL'istruzione INT provvede ai seguenti compiti:
bulletcalcola l'indirizzo Offset dell'istruzione successiva a quella che sta eseguendo, sommando 0002 (numero di bytes del codice macchina corrispondente a INT XX) all'indirizzo corrente.
bulletdecrementa il valore corrente di SP e lo utilizza per puntare la locazione in cui scrivere la parte alta del registro delle Flag.
bulletdecrementa ancora SP con cui punta la locazione in cui scrivere la parte bassa delle Flag.
bulletdecrementa SP e lo utilizza per puntare la locazione in cui scrivere la parte alta del registro CS.
bulletdecrementa SP e lo utilizza per puntare la locazione in cui scrivere la parte bassa di CS.
bulletdecrementa SP e lo utilizza per puntare la locazione in cui scrivere la parte alta dell'indirizzo di offset calcolato poco fa.
bulletdecrementa SP e lo utilizza per puntare la locazione in cui scrivere la parte bassa dell'indirizzo di cui sopra.
bulletutilizza il numero XX, operando dell'istruzione, per calcolare il puntatore alla Tabella dei Vettori, dato dall'indirizzo XX*4 (per esempio con XX=10H il puntatore è 0040H).
bulletDalle 4 locazioni puntate da XX*4 preleva l'indirizzo logico (vettore) della procedura di Sistema corrispondente, prima l'offset e poi il segment, e con esso carica CS:IP, obbligando di fatto se stesso a saltare al nuovo indirizzo.
    
bulletLa sequenza precedente è tratta dalle preziose schede dedicate allo Stack: se vuoi scoprire in dettaglio cosa fa il processore in questo caso consulta quella dedicate alla gestione di INT.
     
bulletDopo l'esecuzione di INT XX, il processore si trova in tutt'altro ambiente, lontano dal programma principale da cui è partito, certamente in un altro segmento; si mette ad eseguire diligentemente tutte le istruzioni della procedura, in attesa della IRET, che gli consentirà di tornare nel suo percorso nativo, naturalmente subito dopo l'istruzione INT.
         
bulletLa figura seguente mostra le risorse richieste da questa istruzione in funzione degli operandi e del tipo di indirizzamento coinvolti (leggi le istruzioni):
          

Addr

Codifica Masm 

Sequenza Bytes 

Istruzione

0100
0102
CD 21
CC
CD 21
CC
               INT    21H
INT    03H

    

Pagina Precedente Scheda n° 07 Pagina Successiva Istruzioni Cpu 80x86 Torna al Menu delle Schede del "Tutorial" Lezioni - Vai al DownLoad dei files DOC Torna al Menu del "Tutorial"
Istruzione 048 - INT

    

SCHEDE » 1.Header EXE 2.PseudoOp MASM 3.Differenza tra Macro e Procedure
4.
Tabella Vettori 5.PSP 6.Stack 7.Istruzioni 80x86
8.La misura dell'Informazione 9.Numeri e Logica Binaria
TUTORIAL » Indirizzi Base | Registri Interni | Area Comunicaz. BIOS | Funzioni BIOS | Funzioni DOS
Prefazione | CAP 1 | CAP 2 | Schede | Palestra
Libreria ASM | Libreria MAC | Progetti ASM | Download | Info | Indice
Home 
Pascal|Manuali|Tabelle|Schede
Tutorial Assembly|Palestra Assembler
Aggiungi Giobe®2000 ai preferiti  
Motore
Ricerca
  Rendi Giobe®2000 pagina di Default
© 2001-2010  -  Studio Tecnico ing. Giorgio OBER
Tutti i diritti sono riservati