4.4 Programación del puerto paralelo
Sueizen Janeth Valles Gómez | 17111955
Sueizen Janeth Valles Gómez | 17111955
El puerto paralelo se identifica por su dirección de E/S y en sistemas MS-DOS por el numero LPT.
Cuando la computadora arranca, la BIOS se encarga de buscar puertos paralelos por medio de direcciones especificas de E/S, una vez que hace esto, lleva a cabo la construcción de una tabla con las direcciones encontradas en la posición de memoria 40h:8h.
Las direcciones base estándar para los puertos paralelos son:
03BCh.
0378h.
0278h.
El puerto paralelo se compone de tres tipos de registros, los cuales son los siguientes:
De estado.
De datos.
De control.
Los pines de estado son los que se encargan de brindarle información al sistema, mientras que los pines de datos son los que se encargan de mostrar las salidas de datos.
Estos registros se definen de la siguiente manera:
Estos registros corresponden a los registros de datos.
Al escribir un dato en el registro, este dato aparecerá en los pines del 2 al 9; y una vez que el registro se lea, se leerá el ultimo dato que fue escrito.
Este registro es el que corresponde al registro de estado; es solo de lectura y se encarga de dar la lectura para saber el estado de sus cinco pines.
Este corresponde al registro de control; se trata de un registro de lectura/escritura.
Los cuatro bits inferiores corresponden a salidas y cuando se lleva a cabo la lectura, lo que nos devuelve es lo ultimo que se escribió en dichos bits.
También es posible colocar estos 4 bits como entradas pero para hacerlo es necesario escribir 4h en el registro LPT_BASE+2.
Para leer un dato del puerto en lenguaje ensamblador se puede hacer uso de la instrucción IN y para escribir un dato en el puerto se hace uso de la instrucción OUT; al usar estas instrucciones es necesario que estén acompañadas del registro AL, en caso de que se este llevando a cabo una operación de escritura su papel sera el de fuente, por el contrario, si se trata de una operación de lectura su papel sera el de destino.
OUT DX, AL: Lleva al puerto DX el contenido del registro AL.
IN AL,DX: Lleva al registro AL, el contenido del puerto DX.
TITLE PARALELO
.MODEL SMALL
.STACK
.DATA
.CODE
inicio:
MOV AX,@DATA
MOV DS,AX
enciende:
MOV AL,1
MOV DX,378h
OUT DX,AL
SALIR:
MOV AX,4c00h
INT 21h
END