Interruzione che maneggia con la C
La C a volte è denominata un linguaggio Assembler ad alto livello perché può denominare le interruzioni differenti usando alcune delle relative alcune funzioni definite. Alcune funzioni importanti sono come segue:
- int86: Invoca le interruzioni di MS-DOS.
- int86x: Invoca l'interruzione di MS-DOS con i valori del registro di segmento.
- intdos: invoca il servizio di MS-DOS per mezzo dei registri tranne DX ed AL
- intdosx: invoca il servizio di MS-DOS con i valori del registro di segmento.
- segread: Legge i registri di segmento.
Discuteremo dettagliatamente queste funzioni. In primo luogo di tutti discutiamo alcuni struttura e sindacati predefiniti che sono frequentemente o necessariamente hanno usato con queste funzioni.
Struttura di SREGS
Questa struttura è stata definita in dos.h ed è una struttura dei registri di segmento passati a e riempiti dalle funzioni, int86x, intdosx e segread. La dichiarazione della struttura è come segue:
struct SREGS {
unsigned int es;
unsigned int cs;
unsigned int ss;
unsigned int ds;
};
REGS union
REGS è l'unione di due strutture. L'unione REGS è stata dos.h definito ed è usata per comunicare le informazioni a e da le funzioni, int86, int86x, intdos e intdosx. La dichiarazione dell'unione è come segue:
union REGS {
struct WORDREGS x;
struct BYTEREGS h;
};
Strutture di WORDREGS e di BYTEREGS
Le strutture di WORDREGS e di BYTEREGES sono state definite in dos.h e questi sono usati per immagazzinare i registri di parola e di byte. La struttura di WORGREGS permette che l'utente accedi ai registri del CPU come quantità a 16 bit dove la struttura di BYTEREGES dà l'accesso ai registri del bit dell'individuo 8.
La struttura di BITEREGS è dichiarata come segue:
struct BYTEREGS {
unsigned char al, ah, bl, bh;
unsigned char cl, ch, dl, dh;
};
And the WORDREGS structure is declared as follows:
struct WORDREGS {
unsigned int ax, bx, cx, dx;
unsigned int si, di, cflag, flags;
};
|