Una busqueda en google con _inp nos deja el link a la msdn, imprescindible.
http://msdn.microsoft.com/library/en....2c_._inpd.asp http://msdn.microsoft.com/library/en...2c_._outpd.asp
Estas funciones de entrada y salida establecen una comunicación con dispositivos externos. El canal que se utiliza se denomina puerto y tiene una dirección específica, estos puertos pueden ser de lectura, escritura o ambos.
En ensamblador existen las instrucciones in y out de las cuales estas funciones de VC++ son homologas, el efecto de las mismas depende del pureto en que se escriba y el valor que se escriba.
Código:
char segundos_reloj_bios
{
char ret = 0;
__asm
{
xor al,al ;ponemos el registro al en 0
out 70h, al ;el reloj guarda los segundos en el byte 0
in al,71h ;guardamos los segundos en el registro al
mov ret,at ;le damos el valor de los segundos a la variable ret
}
return ret;
}
Esto sirve para MS-DOS y Win9x, pero se puede hacer mismo con funciones de alto nivel de cualquier sistema operativo. Si queres más información podes buscar en google, pero casi todo es ensamblador.