0% encontró este documento útil (0 votos)
256 vistas10 páginas

Programación de Dispositivos

Este documento describe diferentes formas de programar dispositivos como el buffer de video, puertos seriales y paralelos utilizando lenguaje ensamblador. Explica conceptos como el acceso a discos y programación híbrida combinando ensamblador con otros lenguajes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
256 vistas10 páginas

Programación de Dispositivos

Este documento describe diferentes formas de programar dispositivos como el buffer de video, puertos seriales y paralelos utilizando lenguaje ensamblador. Explica conceptos como el acceso a discos y programación híbrida combinando ensamblador con otros lenguajes.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

Programación de dispositivos

Jose Luis Ramos Guerrero


Unidad 4
ing. sistemas computacionales |
Lenguajez de interfaz - docente: M.I. JOSE YAHVEH CONTRERAS DE LOS REYES
Programación de dispositivos Índice
Página 2 4.1 El buffer de video en modo texto
Página 3 4.2 Acceso a discos en lenguaje
ensamblador
Página 4 4.3 Programación del puerto serial
Página 5 4.4 Programación del puerto paralelo
Página 6 4.5 Programación híbrida
Página 7 4.6 Programación de puerto usb
Página 8 Referencias Bibliográficas

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).

Funciones y características del buffer de video en modo texto:

 Almacenamiento de caracteres: Cada celda del buffer contiene información sobre el


carácter que debe mostrarse en esa posición específica de la pantalla.
 Atributos del carácter: Además del carácter en sí, cada celda también puede contener
atributos adicionales, como el color del texto y el color de fondo.
 Organización de la memoria: El buffer de video en modo texto está organizado de manera
que corresponda directamente a la disposición de la pantalla. Por ejemplo, en una pantalla
de 80 columnas por 25 filas (un modo de texto común), el buffer contendrá 2000 celdas
(80 x 25).
 Acceso directo: En muchos sistemas, especialmente en los sistemas operativos antiguos
como DOS, los programas podían acceder directamente al buffer de video escribiendo
datos en la memoria correspondiente. Esto permitía un control rápido y eficiente sobre lo
que se mostraba en la pantalla sin necesidad de pasar por capas adicionales de software.

Ejemplo en sistemas DOS

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.

Ventajas del modo texto

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.

Simplicidad: La gestión de la pantalla es más simple y directa en modo texto, facilitando el


desarrollo de software básico de interfaz de usuario.

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.

Acceso a Discos con BIOS en Lenguaje Ensamblador

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.

Leer un Sector del Disco

Para leer un sector del disco utilizando INT 13h, puedes seguir estos pasos:

 Configurar los registros con los parámetros adecuados.


 Invocar INT 13h con la función 02h (leer sectores).

Dispositivos donde se realiza este modo de acceso:

 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.

Dispositivos en el que se realiza este modo de acceso.

 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:

En lenguaje ensamblador, se puede leer un dato del puerto mediante la instrucción IN ó


escribir un dato en el puerto con la instrucción OUT , en ambos casos el registro AL debe
participar activamente en la instrucción, bien sea como fuente (en operaciones de
escritura) o destino (en operaciones de lectura) del dato, como en los siguientes casos:

 out DX, AL → Lleva al puerto DX el contenido del registro AL


 in AL,DX → Lleva al registro AL, el contenido del puerto DX

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.

Assembler; → Instrucción que indica que el código


estará escrito en ensamblador.

AsmMov AX,0600h → Mover 0600h al registro AX.

Int 10h → Iniciar servicio 06h de la interrupción


10h, es decir, limpiar pantalla.

End → Fin del procedimiento.

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

 Controladores USB: Los controladores de dispositivo USB son responsables de


gestionar la comunicación entre el hardware USB y el sistema operativo.
 Descriptores USB: Los dispositivos USB se describen a sí mismos mediante
estructuras de datos llamadas descriptores, que incluyen información como el tipo
de dispositivo, fabricante, producto, etc.
 Transferencias USB: Hay varios tipos de transferencias USB, incluyendo control,
interrupción, bulk (masiva) e isócrona.

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/

También podría gustarte