Interruption manipulant avec C
C s'appelle parfois un langage d'assemblage à niveau élevé parce qu'il peut appeler les différentes interruptions en utilisant certaines de ses quelques fonctions définies. Quelques fonctions importantes sont comme suit:
- int86 : Appelle des interruptions de MS-DOS.
- int86x : Appelle l'interruption de MS-DOS avec des valeurs de registre de segment.
- intdos : appelle le service de MS-DOS à l'aide des registres autres que DX et AL
- intdosx : appelle le service de MS-DOS avec des valeurs de registre de segment.
- segread : Lit des registres de segment
Nous discuterons ces fonctions en détail. D'abord de tous nous discutons quelques structure et syndicats prédéfinis qui sont fréquemment ou ont nécessairement employé avec ces fonctions.
Structure de SREGS
Cette structure a été définie dans dos.h et c'est une structure des registres de segment passés à et complétés par les fonctions, int86x, intdosx et segread. La déclaration de la structure est comme suit:
struct SREGS {
unsigned int es;
unsigned int cs;
unsigned int ss;
unsigned int ds;
};
Union de REGS
REGS est l'union de deux structures. L'union REGS a été dos.h défini et elle est employée pour passer l'information à et des fonctions, int86, int86x, intdos et intdosx. La déclaration de l'union est comme suit:
union REGS {
struct WORDREGS x;
struct BYTEREGS h;
};
Structures de BYTEREGS et de WORDREGS
Les structures de BYTEREGES et de WORDREGS ont été définies dans dos.h et ceux-ci sont employés pour stocker des registres de byte et de mot. La structure de WORGREGS permet à l'utilisateur d'accéder aux registres de l'unité centrale de traitement en tant que quantités de 16 bits où la structure de BYTEREGES donne l'accès aux différents registres de 8 bits.
La structure de BITEREGS est déclarée comme suit:
struct BYTEREGS {
unsigned char al, ah, bl, bh;
unsigned char cl, ch, dl, dh;
};
Et la structure de WORDREGS est déclarée comme suit:
struct WORDREGS {
unsigned int ax, bx, cx, dx;
unsigned int si, di, cflag, flags;
};
|