Estimado:
1) Tenía entendido que como primer paso en el main se hace un disable() para deshabilitar las interrupciones ya que se va a inicializar las variables que corresponde y demás para poder usarlas, y luego de hecho esto habilitarlas. ¿es correcto esto?, porque no lo he visto así en las soluciones de los exámenes.
Es correcto. A veces lo que hacemos es que como el sistema inicia con las interrupciones deshabilitadas, si el problema trata de una máquina dedicada, asumimos que nadie habilitó las interrupciones aún (porque nosotros escribimos el main) y nos ahorramos el disable, pero nunca está mal ponerlo. Es obligatorio ponerlo cuando se trata de una máquina no dedicada.
2) En algunas soluciones se pone como comentario "//Instalar interrupciones", mientras que en otras soluciones encuentro "instalarInterrupciones()", ¿A que corresponde esta "etapa" del main? y ¿El comentario viene a dar la idea de que en ese paso de debe instalar las interrupciones, es decir, es lo mismo poner el comentario o ponerlo como si fuera una función?
La instalación de interrupciones consiste en cargar las estructuras de datos del sistema de interrupciones. En general lo ponemos como comentario, pero es lo mismo, sí.
3) Al utilizar la instrucción OUT para modificar, por ejemplo, el bit 0 de un determinado lugar de memoria, he encontrado soluciones donde se escribe OUT(lugar, IN(lugar) | 01H) mientras que en otras modifican directamente el lugar poniendo OUT(lugar, 01H) ¿no hay problema con modificar todo el lugar o se debería tener el cuidado de modificar únicamente ese bit?
Depende del registro. Si es un registro de lectura y escritura, lo correcto es modificar únicamente los bits que queremos (porque en general no sabemos el uso de los demás bits). Si el bit es de solo escritura y no sabemos el valor del registro, no tenemos otra que escribir con algo el resto de los bits.Saludos,
Federico