4. Programación de dispositivos
https://ofortiz.my.canva.site/tutorial-de-pr-cticas-puertos-y-acceso
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í
https://ofortiz.my.canva.site/p-gina-web-interactiva-puertos-y-discos