Anda di halaman 1dari 2

Juan Mendoza Snchez Lenguajes de Interfaz

Programacin de puertos en lenguaje ensamblador

Un puerto es una interfaz mediante la cual se pueden enviar y recibir diferentes


tipos de datos, existen dos tipos de puertos: fsicos (puerto serial, puerto USB,
entre otros), lgicos (puertos que determinado software utiliza para comunicacin,
ejemplo los de redes).
Por ahora solo hablaremos sobre la programacin de puertos fsicos mediante el
uso de lenguaje ensamblador, esto es con la finalidad de poder manipular el envi
de datos a travs de ellos. Y con esto lograr crear programas mucho ms
eficientes en cuanto al consumo de recursos de nuestra computadora.
Primeramente, abordaremos sobre la programacin del puerto serial, para que en
lenguaje ensamblador se pueda se puede manipular este puerto es necesario
hacer uso de una interrupcin, precisamente de la 14H de BIOS, para configurar,
leer, escribir o simplemente o simplemente para conocer el estado del puerto.
Cada una las opciones previamente mencionadas es un servicio de la interrupcin,
y se selecciona la se vaya a utilizar a travs del registro AH. Si se carga 00 indica
que se est inicializando el puerto serie, 01 es el servicio para enviar un dato, 02
servicio para recibir un dato y finalmente, 03 es para obtener el estado del puerto.
Es importante mencionar que en todos los casos el registro DX debe contener el
nmero de puerto serie: el primero de ellos COM1 se especifica con 00h.
Por ejemplo, podemos utilizar el lenguaje ensamblador para configurar el puerto
serial para 1200 baudios, sin bit de paridad, sin bit de parada y 8 bits, realizando el
siguiente programa:
mov ah,0 ;servicio 00 de INT 14h: inicializar puerto
mov a1,83 ;configuracin: 1200 baudios, no paridad, ;un bit de parada, 8 bits de datos
mov dx,00 ;Seleccionar puerto COM1
int 14 ;interrupcin del BIOS
mov ah,4c ;servicio 4ch de INT 21h: terminar
int 21 ;interrupcin servicio del DOS

Otro puerto que puede manipularse es el puerto paralelo. En lenguaje


ensamblador, se puede leer un dato del puerto mediante la instruccin IN o escribir
un dato en el puerto con la instruccin OUT, en ambos casos el registro AL debe
participar activamente en la instruccin, 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
Juan Mendoza Snchez Lenguajes de Interfaz

Otra, exigencia, es que el nmero del puerto sobre el que se va a realizar la


transferencia de datos debe estar sealado por el registro DX, a excepcin de los
casos en los cuales el nmero del puerto es inferior a 255 (FFh), en cuyo caso la
instruccin que lee o escribe puede sealar directamente el puerto.
En general la manipulacin de puertos desde ensamblador es utilizada a la hora
de crear pequeos programas que sirven como intermediarios entre el sistema
operativo y el hardware, estos son mejor conocido como drivers.
Tambin si se utiliza otro tipo de dispositivo, como puede ser un microcontrolador
pueden manipularse directamente sus puertos mediante programacin y al igual
que los puertos en una computadora es necesario definir cules de ellos sern
utilizados como puertos de entrada IN y puertos de salida OUT.
La utilizacin de estos microcontroladores es para crear circuitos electrnicos
complejos y cargando al cerebro(microcontrolador), con cdigo escrito en lenguaje
ensamblador, lo que ahorra los recursos de este, teniendo gran impacto en el
rendimiento ya que son dispositivos con muy pocos recursos.