Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Uso de Los Recursos de Un Equipo de Computo Mediante C++ PDF
Uso de Los Recursos de Un Equipo de Computo Mediante C++ PDF
MEDIANTE C++
Registros de puntero e
índice
1. Registros de la CPU SP SI
Puntero de pila Ïndice fuente
La familia de procesadores 8086 tiene 14
registros en los que se pone la información para BP DI
procesar o el programa de control. Los registros Puntero base Índice destino
pueden ser de las categorías siguientes:
3. Función int86()
Colocando un 1 a este bit, se desaparece el
La función int86() de Turbo C++ se usa para cursor. Colocando un 0 aparece nuevamente
ejecutar una interrupción de software. Se declara
como
2
Fig. 4.- Desapareciendo el cursor usando la
función int86().
void main(void)
{
union REGS regs; // Declaracion de la
union regs de tipo REGS para el uso de
// los registros de la CPU
clrscr();
regs.h.ch=0; // Inicializar el
registro CH con el valor 0(hexadecimal) void main(void)
{
// equivalente a
00000000; es decir colocar un 0 en el union REGS regs; // Declaracion de la
union regs de tipo REGS para el uso de
// 5o. bit del registro
// los registros de la CPU
CH para aparecer el cursor
clrscr();
regs.h.ah=1; // Servicio 1 de la INT
gotoxy(1,24); cout << "Oprima
10h (video) que se refiere al tama¤o
cualquier tecla para salir";
// del cursor
regs.h.al=0x1; // Inicializar el
int86(0x10,®s,®s); // Invoca la
registro AL con el valor 1(hexadecimal)
INT 10h (video)
// es decir, invoca el
cout << "\n\n\n\n\r<<< Oprima servicio 1 de la INT 33h (mouse)
// para habilitar el
cualquier tecla para aparecer el cursor
>>>"; mouse
getch();
int86(0x33,®s,®s); // Invoca la
INT 33h (mouse)
return;
}
while(!kbhit()) // Ciclo mientras NO
se oprima cualquier tecla
3
{ oprimió el botón izquierdo o en BX=2 si se
oprimió el botón derecho.
regs.h.al=0x3; // Inicializar el
registro AL con el valor 3(hexadecimal) En la Fig. 5 se muestra un
// es decir, invoca el encabezado (LIBMOUSE.h) que contiene las
servicio 3 de la INT 33h (mouse) declaraciones necesarias y la mayoría de los
// para detectar el servicios necesarios para utilizar el mouse
status del mouse, o sea, si se
// oprime algun boton y en un programa. Sólo basta incluirlo como
las coordenadas del cursor mediante la siguiente línea de código:
}
return;
} /* LIBRERIA
........................................
........ LIBMOUSE.H
.
Fig. 5.- Manejo del mouse Instituto Tecnol¢gico de Nuevo Laredo
. */
5
regs.x.ax=3; return;
/* FUNCION #3 DEL MOUSE */ }
int86(zMOUSE,®s,®s);
/* LLAMA LA INTERRUPCION 33 HEX */ /* FUNCION PARA COLOCAR EL RANGO
Mptr->MouseButton=regs.x.bx; VERTICAL MINIMO Y MAXIMO :
/* 1 (IZQUIERDO) ¢ 2 (DERECHO) */ */
Mptr->MouseX=regs.x.cx; void zMouseVLimit(struct mdata *Mptr)
/* OBTIENE LA COORDENADA EN x */ {
Mptr->MouseY=regs.x.dx; #if zCOMPILER==zQUICKC
/* OBTIENE LA COORDENADA EN y */ inregs.x.ax=8;
#endif inregs.x.cx=Mptr->MouseMinY;
return; inregs.x.dx=Mptr->MouseMaxY;
} int86(zMOUSE,&inregs,&outregs);
#elif zCOMPILER==zTURBOC
/* FUNCION PARA BORRAR LA UBICACION DEL regs.x.ax=8;
CURSOR DEL MOUSE : */ /* FUNCION #8 DEL MOUSE */
void zMousePos(struct mdata *Mptr) regs.x.cx=Mptr->MouseMinY;
{ /* COLOCA LA MINIMA COORDENADA y */
#if zCOMPILER==zQUICKC regs.x.dx=Mptr->MouseMaxY;
inregs.x.ax=4; /* COLOCA LA MAXIMA COORDENADA y */
inregs.x.cx=Mptr->MouseX; int86(zMOUSE,®s,®s);
inregs.x.dx=Mptr->MouseY; /* LLAMA LA INTERRUPCION 33 HEX */
int86(zMOUSE,&inregs,&outregs); #endif
#elif zCOMPILER==zTURBOC return;
regs.x.ax=4; }
/* FUNCION #4 DEL MOUSE */
regs.x.cx=Mptr->MouseX;
/* COLOCA LA COORDENADA EN x */ Fig. 6.- Encabezado LIBMOUSE.H
regs.x.dx=Mptr->MouseY;
/* COLOCA LA COORDENADA EN y */
int86(zMOUSE,®s,®s);
/* LLAMA LA INTERRUPCION 33 HEX */
#endif 6. Bibliografía
return;
}
? Barkakati Nabajyoti. “The Waite
/* FUNCION PARA COLOCAR EL RANGO Group´s. Turbo C Bible”. Howard W.
HORIZONTAL MINIMO Y MAXIMO :
Sams & Company. Estados Unidos.
*/
void zMouseHLimit(struct mdata *Mptr) 1990.
{
#if zCOMPILER==zQUICKC
inregs.x.ax=7; ? García Badell, J. Javier. "Turbo C.
inregs.x.cx=Mptr->MouseMinX; Programación en manejo de
inregs.x.dx=Mptr->MouseMaxX; archivos". Macrobit.
int86(zMOUSE,&inregs,&outregs);
#elif zCOMPILER==zTURBOC
regs.x.ax=7; ? Deitel y Deitel. “C++ Cómo
/* FUNCION #7 DEL MOUSE */
regs.x.cx=Mptr->MouseMinX; programar”. Segunda edición. Pearson-
/* COLOCA LA MINIMA COORDENADA x */ Prentice Hall. Estados Unidos. 1999.
regs.x.dx=Mptr->MouseMaxX;
/* COLOCA LA MAXIMA COORDENADA x */
int86(zMOUSE,®s,®s);
/* LLAMA LA INTERRUPCION 33 HEX */ ? Lafore, Robert. “The Waite
#endif Group´s. Turbo C. Programming
6
for the PC”. Revised Edition.
Howard W. Sams & Company.
Estados Unidos. 1990.