Programación de Dispositivos
Programación de Dispositivos
1
4.1 El buffer de video en modo texto
El buffer de video en modo texto es una región de la memoria utilizada por la tarjeta de video de
un sistema informático para almacenar los caracteres y sus atributos que se mostrarán en la
pantalla. En modo texto, la pantalla no se maneja pixel a pixel como en los modos gráficos, sino
que se divide en celdas de caracteres, cada una representando un símbolo del conjunto de
caracteres del sistema (como ASCII o Unicode).
En los sistemas basados en DOS, el buffer de video para el modo texto típico (80x25) se encuentra
generalmente en la dirección de memoria 0xB8000. Cada carácter y su atributo correspondiente
suelen ocupar 2 bytes: el primer byte representa el código del carácter, y el segundo byte
representa los atributos (color de texto y fondo).
Por ejemplo, para escribir la letra 'A' en la esquina superior izquierda de la pantalla con texto
blanco sobre fondo negro, un programa podría escribir el valor 0x41 (ASCII de 'A') en la dirección
0xB8000 y el valor 0x07 (atributo de color) en la dirección 0xB8001.
Eficiencia: El modo texto es menos exigente en cuanto a recursos de hardware comparado con los
modos gráficos.
Claridad: El texto es nítido y claro, adecuado para aplicaciones como consolas de comandos y
editores de texto.
2
4.2 Acceso a discos en lenguaje ensamblador
El acceso a discos en lenguaje ensamblador implica interactuar directamente con el hardware del
disco o con el sistema operativo para leer y escribir datos. En los sistemas x86, esto a menudo se
realiza utilizando interrupciones del BIOS o llamadas al sistema operativo. A continuación, se
explica cómo se puede lograr esto, especialmente en un entorno DOS utilizando las interrupciones
del BIOS.
En modo real, puedes usar las interrupciones del BIOS para acceder a los discos. Aquí, se utilizará
la interrupción INT 13h, que es una de las más comunes para este propósito.
Para leer un sector del disco utilizando INT 13h, puedes seguir estos pasos:
Disco duro.
Memoria USB
Disquete
Memoria RAM
Unidad SSD
Memoria Caché
Lector de disco óptico (CD/DVD/HD-DVD ó Blu-ray):
Unidad LS-120
Acceso secuencial:
El método de acceso secuencial es la forma en que la computadora accede a los datos de manera
que es necesario interactuar directamente con los datos ó el espacio físico dónde se encuentran
otros datos.
El acceso secuencial es similar, si la computadora requiere un dato específico, tiene que recorrer el
espacio dónde se encuentra otra información hasta llegar al lugar dónde esta el dato requerido.
Tocadiscos: para reproducir la melodía específica del disco de vinilo, la aguja recorre por lo
menos parte de la anterior canción para que se reproduzca la elegida por el usuario.
Lectora de cintas de respaldo: tanto para leer como para escribir un dato, es necesario que
la cabeza magnética recorra parte de la cinta.
Grabador de discos ópticos (CD, DVD, HD-DVD ó Blu-ray): el proceso de grabado se hace
de manera espiral por medio de un rayo láser, el cuál escribe sobre tal espiral un dato a
continuación del otro.
3
Casetera: tanto para leer como para escribir un dato, es necesario que la cabeza
magnética recorra parte del casete.
4
4.3 Programación del puerto serial
En lenguaje ensamblador se puede utilizar el puerto serial para el intercambio de datos,
para lograrlo, se puede acudir a la interrupción 14H de la ROM-BIOS para configurar, leer,
escribir o simplemente para conocer el estado del puerto; cada una de estas cuatro
opciones es un servicio de la interrupción, y se seleccionan a través del registro AH, como
se ve en la tabla.
En todos los casos, el registro DX debe contener el número del puerto serie; el primero de
ellos, COM1 se especifica como 00h.
Para configurar o inicializar el puerto serie, bastará con utilizar el servicio 00 de la
interrupción, colocando en el registro AL los valores equivalentes a los parámetros, como
se puede observar en las tablas 4.3.2 a 4.3.6. Con este método es posible obtener
frecuencias de transmisión que van desde los 110 hasta los 9600 baudios.
5
4.4 Programación del puerto paralelo
Es necesario saber que antes de utilizarlo, que el puerto paralelo se compone de los
siguientes tipos de pines:
De estado:
Dan información al sistema al igual que el de control.
De datos:
Que son los más importantes, ya que por estos sale información crucial, la cual es la que
se utiliza para mostrar las salidas de datos.
Cada uno de los pines del puerto paralelo cuenta con un identificador y una función como
se puede ver en la figura:
Otra, exigencia, es que el número del puerto sobre el que se va a realizar la transferencia
de datos debe estar señalado por el registro DX, a excepción de los casos en los cuales el
número del puerto es inferior a 255 (FFh), en cuyo caso la instrucción que lee o escribe
puede señalar directamente el puerto.
6
4.5 Programación híbrida
La programación hibrida consiste en mezclar lenguaje ensamblador con lenguajes de alto
nivel, creando programas que aprovechen las ventajas de cada uno de estos, con el fin de
que sean más rápidos y eficientes.
Para el siguiente ejemplo se utilizará lenguaje ensamblador y Turbo Pascal, el cual tiene
compatibilidad directa con Turbo Ensamblador.
Turbo Pascal permite escribir procedimientos y funciones en código ensamblador e
incluirlas como parte de programas escritos en Pascal, para lo cual utiliza dos palabras
reservadas: Assembler y Asm.
Assembler permite indicarle a Turbo Pascal que la rutina o procedimiento que se está
escribiendo está escrita en código ensamblador.
Ejemplo:
Procedure Limpia_Pantalla; → Declaracion del procedimiento en
Pascal.
El código del ejemplo anterior está escrito para Turbo Pascal, a pesar de que parece ser un
programa de ensamblador.
7
4.6 Programación de puerto usb
El Bus Universal en Serie o USB por sus siglas en inglés, es un bus estándar industrial que
define los cables, conectores y protocolos utilizados en bus para conectar, comunicar y
proveer de alimentación eléctrica a dispositivos y periféricos.
Fue creado por las empresas que buscaban unificar la forma de conectar periféricos a los
equipos, y aunque su versión 1.0 se publicó en 1996, no fue sino hasta 1998 con la
especificación 1.1 que se comenzó a utilizar de forma masiva.
La utilización del puerto USB en ensamblador es con los objetivos principales de reorientar
la utilización de los periféricos para que tengan mejor rendimiento y utilizar al máximo sus
capacidades, así como poder crear nuevos periféricos.
Conceptos Básicos de USB
8
Referencias Bibliográficas
https://ittlenguajesdeinterfaz.wordpress.com/4-6-programacion-del-puerto-usb/
https://ittlenguajesdeinterfaz.wordpress.com/4-5-programacion-hibrida/#:~:text=La
%20programaci%C3%B3n%20hibrida%20consiste%20en,sean%20mas%20r%C3%A1pidos
%20y%20eficientes.
https://www.studocu.com/es-mx/document/instituto-tecnologico-de-saltillo/lenguajes-
de-interfaz/unidad-4-parte-3/46084985
https://ittlenguajesdeinterfaz.wordpress.com/4-3-programacion-del-puerto-serial/