Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Alumnos:
Sagastume Peate, Victor Salomn
Carnet:
SP11024
SDG-115
INTRODUCCIN.-
Los perifricos sirven para comunicar la computadora con el exterior, estos logran
captar las seales de entrada a travs de un teclado o un ratn y tambin que
muestren los resultados grficamente ya sea en la pantalla o en forma de impresin.
Los perifricos suelen poder conectarse a los distintos puertos de la computadora.
En general, stos pueden conectarse o desconectarse de la computadora, pero la
misma seguira funcionando, aunque con menos capacidades. Las interrupciones
son parte importante de estos sistemas en forma de software ya que permiten al
usuario interactuar con los perifricos.
El presente reporte de laboratorio inicialmente muestra; la explicacin del
procedimiento correspondiente a la prctica de laboratorio que consiste ensamblar,
enlace y verificacin del funcionamiento de los programas asignados tal como se
realiz en las prcticas anteriores; posteriormente la prctica se profundiza en el
uso del ratn y la impresor con ayuda del lenguaje ensamblador y las interrupciones
que facilitan enormemente la tarea por el hecho de que no es necesario trabajar
directamente con instrucciones para la impresora, sino que con los puertos paralelo
a los que estn conectados. No habiendo ms que agregar, se ha preparado el siguiente
reporte.
Laboratorio No 4.
SDG-115
OBJETIVOS.-
OBJETIVO GENERAL:
Reconocer los conocimientos bsicos sobre control de algunos de los perifricos
ms utilizados en una computadora como lo son ratn, impresora, etc.
OBJETIVOS ESPECFICOS:
Laboratorio No 4.
SDG-115
MARCO TERICO.
PROGRAMACIN DE E/S:
Definicin de interrupcin Una interrupcin es un estado en el cual el
microprocesador detiene la ejecucin de un programa para atender una peticin
especial solicitada por el propio programa o por un dispositivo fsico conectado al
microprocesador externamente.
Las interrupciones fueron creadas para facilitar al programador el acceso a los
diferentes dispositivos de la computadora (puertos de comunicaciones, terminales,
impresoras, etc.).Ejecucin de una interrupcin Cuando durante la ejecucin de un
programa se produce una interrupcin, el microprocesador realiza los siguientes
pasos:
1. Detiene la ejecucin del programa.
2. Almacena los registros CS, IP y Banderas en la pila
3. Modifica el CS y el IP para que apunten a la direccin donde se encuentra la
rutina de interrupcin.
4. Ejecuta las instrucciones de la rutina de interrupcin.
5. Restablece usando la instruccin RETI los valores originales de los registros CS,
IP y Banderas.
TIPOS DE INTERRUPCIONES:
El microprocesador puede atender dos tipos de interrupciones: interrupciones por
software e interrupciones por hardware. Las interrupciones por software son
llamadas desde los programas y son proporcionadas por el sistema operativo (MSDOS). Existen dos tipos de estas: las interrupciones del DOS y las interrupciones
del BIOS (Basic Input Output System o Sistema Bsico de Entrada/Salida). Estas
interrupciones son invocadas con la instruccin INT del ensamblador. Por otro lado,
las interrupciones por Hardware son proporcionadas por el propio microprocesador
y tambin existen dos tipos: interrupciones por hardware internas y las
interrupciones por hardware externas.
Las interrupciones internas son invocadas por el microprocesador cuando se
produce alguna operacin incorrecta, como por ejemplo, un intento de dividir por
cero o una transferencia de datos entre registros de diferentes longitudes. Las
interrupciones externas son provocadas por los dispositivos perifricos conectados
al microprocesador. Para lograr esto, a cada dispositivo perifrico se le asigna una
lnea fsica de interrupcin que lo comunica con el microprocesador por medio de
un circuito integrado auxiliar, el cual se conoce como controlador programable de
interrupciones (PIC).
Laboratorio No 4.
SDG-115
Las computadoras basadas en el microprocesador 8086/8088 cuentan solamente
con un PIC, con lo cual pueden proporcionar hasta 8 lneas de interrupcin (IRQ),
las cuales son llamadas IRQ0 a IRQ7, por otro lado, las computadoras basadas en
el microprocesador 80286 y posteriores cuentan con dos chips controladores, con
los cuales pueden proporcionar hasta un mximo de 16 lneas IRQ, las cuales son
llamadas IRQ0 a IRQ15.
La siguiente es una lista de las interrupciones por software disponibles por el
sistema operativo. Interrupciones del BIOS Manejo de dispositivos perifricos
Laboratorio No 4.
SDG-115
DESARROLLO DE LA PRCTICA.1. Digite, ensamble y enlace el programa del anexo A. Verifique el
funcionamiento del programa.
El cdigo utilizado fue el siguiente:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
0DH,0AH,0AH,0AH
9,'Fin',9,'del',9,'texto',0CH
DB 0
DATOS
ENDS
;---------------- Segmento de pila -----------------PILA
SEGMENT PARA STACK 'STACK'
DB
256 DUP (0)
PILA
ENDS
;---------------- Segmento de cdigo ----------------COD
SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:COD,DS:DATOS,SS:PILA
CODIGO
MOV
MOV
MOV
MOV
MOV
SUB
LEA
INT
MOV
INT
CODIGO
COD
END
PROC
FAR
AX,DATOS
DS,AX
AH,40H
BX,4
CX,OFFSET FIN
CX,OFFSET TEXTO
DX,TEXTO
21H
AX,4C00H
21H
ENDP
ENDS
CODIGO
Laboratorio No 4.
SDG-115
Laboratorio No 4.
SDG-115
2. Investigue si su computadora tiene instalado un controlador de ratn
mediante un programa como el procedimiento CHKM en las copias adjuntas.
Si no tiene controlador, es parte de la prctica conseguirlo e instalarlo.
El cdigo utilizado fue el siguiente:
1. ;UN PROGRAMA QUE DESPLIEGA EL NUMERO DE VERSIN DEL
2. ;CONTROLADOR DEL RATON Y EL TIPO DE RATON INSTALADO
3.
4. .MODEL SMALL
5. .DATA
6.
MES1 DB 13,10,'NO MOUSE/MOUSE DRIVER found.$'
7.
MES2 DB 13,10,'Mouse driver versin'
8.
M1
DB '
',13,10,'$'
9.
TYPES DW T1,T2,T3,T4,T5
10.
T1 DB 'Bus$'
11.
T2 DB 'Serial$'
12.
T3 DB 'InPort$'
13.
T4 DB 'PS/2$'
14.
T5 DB 'HP$'
15.
MES3 DB 'mouse installed.',13,10,'$'
16.
17.
.CODE
18.
.STARTUP
19.
CALL CHKM
;Verificacin presencia del ratn
20.
JNC MAIN1
;Si el ratn existe
21.
MOV DX, OFFSET MES1
22.
JMP MAIN2
;Si no hay ratn
23.
MAIN1:
24.
MOV AX,0
25.
INT 33H
;Obtiene la versin del controlador
26.
MOV DI,OFFSET M1
27.
MOV AL,BH
;Guarda versin mayor
28.
CALL DISP
29.
MOV BYTE PTR [DI],'.';Guarda punto
30.
INC DI
31.
MOV AL,BL
;Guarda versin menor
32.
CALL DISP
33.
MOV DX,OFFSET MES2
;Despliega versin
34.
MOV AH,9
35.
INT 21H
36.
MOV SI,OFFSET TYPES ;Apunta hacia tipos
37.
MOV AH,0
38.
MOV AL,CH
39.
DEC AX
40.
ADD SI,AX
41.
ADD SI,AX
42.
MOV DX,[SI]
;Despliega tipos
43.
MOV AH,9
44.
INT 21H
45.
MOV DX,OFFSET MES3
46.
MAIN2:
47.
MOV AH,9
48.
INT 21H
49.
.EXIT
50.
; Un procedimiento que verifica la presencia de un ratn.
Laboratorio No 4.
SDG-115
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
;***Parmetros de salida***
; Acarreo=1, si no hay ratn.
; Acarreo=0, si hay ratn.
CHKM PROC NEAR
MOV AX,3533H
;obtiene el vector INT 33H
INT 21H
;vector en ES:BX
MOV AX,ES
OR AX,BX
;determina si 0000:0000
STC
JZ CHKM1
;si no hay controlador de ratn
CMP BYTE PTR ES: [BX],0CFH
STC
JE CHKM1
;si no hay controlador de ratn
MOV AX,0
INT 33H
;restaura al ratn
CMP AX,0
STC
JZ CHKM1
;si no hay ratn
CLC
CHKM1:
RET
CHKM ENDP
;guarda el numero de versin en el cdigo ASCII
;***Parmetros de entrada***
;AL=versin
;DS:DI=direccin de almacenamiento
;***Parmetros de salida***
;numero de versin ASCII almacenado en DS:DI
DISP PROC NEAR
MOV AH,0
AAM
;convierte a bcd
ADD AX,3030H
CMP AH,30H
;guarda versin ASCII
JE DISP1
;elimina cero
MOV [DI],AH
INC DI
DISP1:
MOV [DI],AL
INC DI
RET
DISP ENDP
END
Laboratorio No 4.
10
SDG-115
Laboratorio No 4.
11
SDG-115
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
12
SDG-115
Laboratorio No 4.
13
SDG-115
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
INT 21H
MOV AX,ES
OR AX,BX
STC
JZ CHKM1
CMP BYTE PTR ES:[BX],0CFH
STC
JE CHKM1
MOV AX,0
INT 33H
CMP AX,0
STC
JZ CHKM1
CLC
CHKM1:
RET
CHKM ENDP
TM_ON PROC NEAR
CALL CHKM
JC TM_ON1
MOV AX,1
INT 33H
CLC
TM_ON1:
RET
TM_ON ENDP
PLACE PROC NEAR
MOV CX,0
MOV BX,10
PLACE1:
MOV DX,0
DIV BX
PUSH DX
INC CX
CMP AX,0
JNE PLACE1
PLACE2:
MOV BX,5
SUB BX,CX
PLACE3:
POP DX
ADD DL,30H
MOV [DI],DL
INC DI
LOOP PLACE3
CMP BX,0
JE PLACE5
MOV CX,BX
PLACE4:
MOV BYTE PTR [DI],20H
INC DI
LOOP PLACE4
PLACE5:
RET
PLACE ENDP
END
Laboratorio No 4.
14
SDG-115
En la figura siguiente se muestra el ensamblado del cdigo del ejemplo 726 y
tambin se muestra el resultado del programa al ejecutarlo; el cual desarrolla un
programa que lee la posicin del ratn mientras se encuentre dentro del terminal,
muestra las coordenadas x e y en la que se encuentra el ratn en ese momento. El
resultado se muestra en la siguiente imagen:
ASIGNACIONES.
Disear un programa que sea capaz de detectar el click derecho, el
click izquierdo u otro del mouse y que imprima en pantalla el nombre
del botn oprimido.
El cdigo es el siguiente:
Laboratorio No 4.
15
SDG-115
Laboratorio No 4.
16
SDG-115
Laboratorio No 4.
17
SDG-115
Laboratorio No 4.
18
SDG-115
Laboratorio No 4.
19
SDG-115
Laboratorio No 4.
20
SDG-115
Laboratorio No 4.
21
SDG-115
Laboratorio No 4.