Interrupción que dirige con C
C a veces se llama un lenguaje ensamblador de alto nivel porque puede llamar las diversas interrupciones usando algunas de sus algunas funciones definidas. Algunas funciones importantes son como sigue:
- int86: Invoca interrupciones del MS-DOS.
- int86x: Invoca la interrupción del MS-DOS con valores del registro del segmento.
- intdos: invoca servicio del MS-DOS usando los registros con excepción de DX y del AL
- intdosx: invoca servicio del MS-DOS con valores del registro del segmento.
- segread: Lee los registros del segmento
Discutiremos estas funciones detalladamente. Primero de todos discutimos alguna estructura y uniones predefinidas que están con frecuencia o utilizaron necesariamente con estas funciones.
Estructura de SREGS
Esta estructura se ha definido en dos.h y es una estructura de los registros del segmento pasados a y completados por las funciones, int86x, intdosx y segread. El declaración de la estructura es como sigue:
struct SREGS {
unsigned int es;
unsigned int cs;
unsigned int ss;
unsigned int ds;
};
Unión de REGS
REGS es la unión de dos estructuras. La unión REGS ha sido dos.h definido y se utiliza para pasar la información a y desde las funciones, int86, int86x, intdos e intdosx. El declaración de la unión es como sigue:
union REGS {
struct WORDREGS x;
struct BYTEREGS h;
};
Estructuras de BYTEREGS y de WORDREGS
Las estructuras de BYTEREGES y de WORDREGS se han definido en dos.h y éstos se utilizan para almacenar los registros del octeto y de la palabra. La estructura de WORGREGS permite que el usuario tenga acceso a los registros de la CPU como 16 cantidades del pedacito donde la estructura de BYTEREGES da el acceso a los registros del pedacito del individuo 8.
Se declara la estructura de BITEREGS como sigue:
struct BYTEREGS {
unsigned char al, ah, bl, bh;
unsigned char cl, ch, dl, dh;
};
Y se declara la estructura de WORDREGS como sigue:
struct WORDREGS {
unsigned int ax, bx, cx, dx;
unsigned int si, di, cflag, flags;
};
|