4. Programación de dispositivos



Unidad 4: Dispositivos y Comunicación

4.1 El buffer de video en modo texto

El modo texto utiliza una memoria específica (dirección B800h) para representar caracteres directamente en pantalla.

Simulación: Cada celda de memoria representa un carácter (byte bajo) y su atributo de color (byte alto).

4.2 Acceso a discos en ensamblador

Se realiza principalmente mediante interrupciones de BIOS (INT 13h) para operaciones de lectura/escritura de sectores.

4.3 y 4.4 Programación de Puertos (Serial/Paralelo)

La comunicación se realiza enviando datos a puertos de E/S específicos (ej. 3F8h para COM1).

Concepto clave: El puerto paralelo (LPT) permite transferencia de múltiples bits simultáneamente, mientras que el serial (RS-232) envía bits de forma secuencial.

4.5 Programación híbrida

Consiste en integrar código ensamblador dentro de programas de alto nivel (como C o C++) para optimizar rutinas críticas.

4.6 Programación de puerto USB

Debido a su complejidad, requiere el uso de controladores (drivers) y protocolos de comunicación avanzados (como USB Request Blocks – URB).


Simulador de Buffer de Video (B800h)

Haz clic en una dirección para modificar el contenido:

Dirección seleccionada: B800:0000


Unidad 4: Dispositivos y Comunicación - Plataforma Integral

4.1 El buffer de video en modo texto

Base Teórica:

El modo texto del adaptador de video es un área de memoria mapeada que permite la comunicación directa entre el procesador y la pantalla. La memoria de video comienza en la dirección de segmento B800h. Cada carácter en pantalla se representa mediante dos bytes consecutivos: el primero es el código ASCII del carácter y el segundo es el byte de atributo (color de fuente, color de fondo y parpadeo).

4.2 Acceso a discos en ensamblador

Base Teórica:

El acceso a bajo nivel a dispositivos de almacenamiento se realiza mediante interrupciones del BIOS, específicamente la INT 13h. Este servicio requiere especificar el número de sector, cabeza y cilindro (CHS). A diferencia de los sistemas de archivos de alto nivel (como FAT32 o NTFS), aquí operamos sobre sectores físicos, lo cual es crítico para la recuperación de datos o creación de sistemas operativos.

4.3 y 4.4 Programación de Puertos (Serial y Paralelo)

Base Teórica:

  • Serial (RS-232): Comunicación asíncrona bit a bit. Requiere configurar la UART (8250) mediante el registro de control de línea para establecer la velocidad (Baud Rate).
  • Paralelo (LPT): Comunicación de 8 bits simultáneos. Utiliza señales de control (Strobe, Busy, Ack) para sincronizar el envío de datos entre el emisor y el periférico.

4.5 Programación híbrida

Base Teórica:

Es la técnica de entrelazar código de alto nivel (C/C++) con módulos en lenguaje ensamblador. Se utiliza para optimizar procesos intensivos en CPU donde la latencia es crítica. Los datos se pasan a través de registros o del Stack, siguiendo convenciones de llamada (calling conventions) específicas.

4.6 Programación de puerto USB

Base Teórica:

El USB es un bus serial complejo de alta velocidad. Su programación no se realiza mediante acceso directo a puertos de E/S como en los casos anteriores, sino a través de un stack de controladores (HCD - Host Controller Driver) que gestiona la comunicación basada en descriptores de dispositivos.

Desafío Final: El Buffer de Video

Corrige la instrucción para colocar la letra 'H' (ASCII 48h) en el buffer:

MOV AX, 'Y' ; <--- Error aquí