Ensayo - Manuel Elias Berzunza Perez
Ensayo - Manuel Elias Berzunza Perez
6”A”
18070013
Lenguajes de Interfaz.
Puertos Seriales.
Comunicación serial en lenguaje ensamblador. En lenguaje ensamblador, se
puede acudir a la interrupción 14H de la ROMBIOS 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. La figura 1 muestra los valores que debe contener el registro AH para invocar
cada uno de los servicios. En todos los casos, el registro DX debe contener el
número del puerto serie; el primero de ellos, COM1 se especifica como 00h.
Ejemplo:
En este ejemplo se utiliza 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: inicializa el puerto
mov a1,83 → configuración: 1200 baudios, no paridad, sin bit de parada, 8 bits
de datos
mov dx,00 → Selecciona el puerto COM1
int 14 → Interrupción del BIOS
mov ah,4c → Servicio 4ch de INT 21h: terminar
int 21 → Interrupción servicio del DOS
Puerto Paralelo
El puerto paralelo del pc dispone de un conector subD de 25 pines hembra al que
normalmente conectamos un cable Centronics de impresora que en un extremo
tiene el conector SubD 25 pines macho y por el otro un conector Centronics de 36
pines. La asignación de pines, tanto en el conector D-25 como en el Centronics es
la siguiente:
Pin
Pin
Nº
Nº(Centronics Línea Puerto SPP Dirección Registro(bit)
(D-
)
25)
Entrada/
1 1 -Strobe Control(0)
Salida
2 2 D0 Salida Datos(0)
Datos(1)
3 3 D1 Salida
4
4 D2 Salida Datos(2)
5
5 D3 Salida Datos(3)
6
6 D4 Salida Datos(4)
7
7 D5 Salida Datos(5)
8
8 D6 Salida Datos(6)
9
9 D7 Salida Datos(7)
10
10 -Ack Entrada Estado(6)
11
11 Busy Entrada Estado(7)
12
12 Paper-out Entrada Estado(5)
13
13 Select Entrada Estado(4)
14 Entrada/
14 -Auto-Linefeed Control(1)
Salida
15
32 -Error Entrada Estado(3)
16 Entrada/
31 -Initialize Control(2)
Salida
17 Entrada/
36 -SelecPrinter Control(3)
Salida
18-
25 19-30 GND TIERRA
Para el control de estas líneas utilizamos tres puertos que están direccionados
según la siguiente tabla:
Puerto Dirección Dirección
LPT1 LPT2
Datos 378H 278H
Estado 379H 279H
Control 37AH 27AH
Con estas dos tablas podemos modificar o leer cualquiera de las líneas del puerto
paralelo mediante el uso de las instrucciones de acceso a puerto, para C++ estas
son outportb e inportb, para Delphi no hay, por lo que tendrás que usar los dos
procedimientos siguientes:
Ejemplo:
Este es un programa para enviar distintas secuencias al puerto paralelo y así
tener efectos con Leds.
MOV AH,06
MOV DL,0DH
INT 21H
MOV AH,06H
MOV DL,0AH
INT 21H
POP DX
POP AX
RET
ESCRIBIR ENDP
Rutina de salida
ADIOS:
Se escribe un return o alimentacion de linea
MOV AH,06
MOV DL,0DH
INT 21H
MOV AH,06H
MOV DL,0AH
INT 21H
Se escribe adiós.
MOV MENSAJE,OFFSET MES3
CALL ESCRIBIR
La funcio 4CH de la inte 21HF devuelve el control al sistema operativo
MOV AH,4CH
INT 21H
COD ENDS
END MAIN
Programación Híbrida o puerto hibrido
Ejemplo:
Procedimiento híbrido:
Procedure Limpia_Pantalla;
Assembler;
AsmMov AX,0600h
Mov
BH,18h
Mov CX,0000h
Mov DX,184Fh
Int 10h
End;
El procedimiento del listado 23 utiliza la función 06h de la Int 10h del BIOS para
limpiar la pantalla, este procedimiento es análogo al procedimiento ClrScr de la
unidad CRT de Turbo Pascal.
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.
Puerto USB.
CONCLUSIONES
También creo que el lenguaje ensamblador a pesar de ser más rápido es eficaz
a la hora de implementarlo claro que se debe saber del tema; por ejemplo, la
electrónica donde los recursos de los aparatos son limitados y es necesario
utilizar lenguaje ensamblador.
Después
de esto se puede decir que como se tiene acceso a casi todo el hardware de la
computadora vía interrupciones de software, tiene posibilidades que se puedan
programar virus.
Bibliografía:
http://es.scribd.com/doc/120689070/Ensamblador
http://bbeltran.cs.buap.mx/EnsambladorDisco.pdf
http://www.ramonmedina.name/files/universidad/ac/ac0001.PDF
http://es.scribd.com/doc/120689070/Ensamblador#download
http://www.mcbtec.com/programacion_del_dspic.htm
http://lenguajes-interfaz-2013.blogspot.mx/