weno aki te va la funcion del Mouse en ASM
//llamado de la funcion
CambiaPtr(Mano);
//Dibujo de los punteros
unsigned int Reloj[]=
{0x0000,0x0000, 0x0000,0xC003,0xE007,0xF00F,0xF81F,0xFC3F,
0xFC3F,0xF81F,0xF00F,0xE007,0xC003,0x0000,0x0000,0x0000,
0x0000,0x7FFE,0x0000,0x1FF8,0x0FF0,0x0000,0x0000,0x0000,
0x0180,0x0340,0x07E0,0x0E78,0x1818,0x0000,0x7FFE,0x0000};
unsigned int Flecha[]=
{0x9FFF,0x8FFF,0x87FF,0x83FF,0x81FF,0x80FF,0x807F,0x803F,
0x801F,0x800F,0x80FF,0x887F,0x987F,0xFC3F,0xFC3F,0xFE3F,
0x0000,0x2000,0x3000,0x3800,0x3C00,0x3E00,0x3F00,0x3F80,
0x3FC0,0x3E00,0x3600,0x2300,0x0300,0x0180,0x0180,0x0000};
unsigned int Cruz[]=
{0xFFFF,0xFE3F,0xFE3F,0xFE3F,0xFE3F,0xFE3F,0xFE3F,0x8000,
0x8000,0x8000,0xFE3F,0xFE3F,0xFE3F,0xFE3F,0xFE3F,0xFE3F,
0x0000,0x0140,0x0140,0x0140,0x0140,0x0140,0x0140,0x7E3F,
0x0000,0x7E3F,0x0140,0x0140,0x0140,0x0140,0x0140,0x0140};
unsigned int Circulo[]=
{0xF01F,0xE00F,0xC007,0x8003,0x0441,0x0C61,0x0381,0x0381,
0x0381,0x0C61,0x0441,0x8003,0xC007,0xE00F,0xF01F,0xFFFF,
0x0000,0x07C0,0x0920,0x1110,0x2108,0x4004,0x4004,0x783C,
0x4004,0x4004,0x2108,0x1110,0x0920,0x07C0,0x0000,0x0000};
unsigned int Mano[]=
{0xF3FF,0xE1FF,0xE1FF,0xE1FF,0xE1FF,0xE049,0xE000,0x8000,
0x0000,0x0000,0x07FC,0x07F8,0x9FF9,0x8FF1,0xC003,0xE007,
0x0C00,0x1200,0x1200,0x1200,0x1200,0x13B6,0x1249,0x7249,
0x9249,0x9001,0x9001,0x8001,0x4002,0x4002,0x2004,0x1FF8};
unsigned int Martillo[]=
{0x8003,0x0001,0x0001,0x1831,0x1011,0x0001,0x0001,0x8003,
0xF83F,0xF83F,0xF83F,0xF83F,0xF83F,0xF83F,0xF83F,0xF83F,
0x0000,0x3FF8,0x4284,0x4104,0x4284,0x4444,0x3FF8,0x0380,
0x0380,0x0380,0x0380,0x0380,0x0380,0x0380,0x0380,0x0000};
// Cambia la apariencia del cursor del mouse
void CambioPtr(unsigned int *forma)
{
asm mov ax, 09h
asm xor bx, bx
asm xor cx, cx
asm les dx, [forma] // es:dx direccion donde se encuentra el nuevo cursor
asm int 33h // del mouse
}