LABORATORIO4 [FINALIZADO]

download LABORATORIO4 [FINALIZADO]

of 50

Transcript of LABORATORIO4 [FINALIZADO]

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    1/50

    Universidad de El SalvadorEscuela de Ingeniera Elctrica

    Sistemas Digitales Programables I

    Laboratorio #4

    I mpresora y Ratn

    Profesor: Ing. Ricardo Cortez.

    Instructor: Br. Guillermo Alexander Escobar Romero

    Responsable del trabajo:

    Arriola Surez, Jaime Javier AS08005

    Ciudad Universitaria 18 de mayo de 2012

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    2/50

    INTRODUCCION

    Nuestra computadora esta repleta de tantos dispositivos de E/S como nuestras necesidades de

    trabajo nos lo demanden, as pues para algunos un scanner podra ser sumamente importante y

    vital y para otros ni siquiera tendra utilidad alguna, pero independiente si utilizamos algunosperifricos que otros usan o no existen algunos dispositivos E/S que sin lugar a dudas son

    fundamentales para cualquier persona que utiliza una computadora y desee tanto brindarle

    informacin de su equipo y as mismo obtener resultados de manera tangible a partir de su

    esquipo. De manera que dos de los perifricos mas importantes que nos permiten recibir y

    brindarle informacin a la computadora sern de nuestro particular inters en la presenta

    practica, adems de utilizarlos en el MS-DOS, se le agrega el hecho de poder recolectar

    informacin sobre dichos dispositivos que son el ratn y la impresora, por consiguiente lo que

    buscaremos obtener a travs de la implementacin de programas en ensamblador ser la

    informacin pertinente sobre la ubicacin en el mapa de memoria de nuestra computadora de los

    anteriores dispositivos mencionados,a travs de ello nos introducimos al tema de el manejo de

    estos perifricos debido a que posteriormente se desarrollara un proyecto donde el manejo de

    puertos ser un tema esencial, con el desarrollo de la presente practica se empezara a formar la

    base de conocimientos que nos sern necesarios implementar en nuestro proyecto, razn por lo

    cual esta practica es de suma importancia para la correcta implementacin de nuestro proyecto.

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    3/50

    OBJETIVOS

    OBJETIVO GENERAL

    Aplicar los conceptos vistos en clase sobre el trato de los perifricos: mouse e impresorade manera que se logre la recoleccin de datos relacionados a dichos perifricos.

    OBJETIVOS ESPECIFICOS

    Indagar sobre las interrupciones disponibles para el mouse y la impresora y aplicar dichosconocimientos en el desarrollo de los problemas planteados como asignacin

    Implementar un programa en ensamblador para obtener los datos pertinentes respecto alratn sobre su ubicacin (coordenadas X, Y).

    Implementar un programa para obtener datos sobe la versin de driver de nuestro mouse.

    Implementar un programa que imprima la portada del reporte en la impresora virtual delEMU 8086 V4.05 en delante.

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    4/50

    PROCEDIMIENTO DE LA PRACTICA

    1. Digite, ensamble y enlace el programa del anexo A. Verifique el funcionamiento del programa

    Debido a que no contamos con una impresora matricial para la cual este programa estadiseado incluimos la correspondiente captura de la impresora simulada por el EMU 8086 enla cual podemos observar el correcto funcionamiento del programa del anexo A, que pruebalas capacidades de la impresora.

    ACLARACION: TODOS LOS ARCHIVOS .LST solicitados se han incluido en un anexo paraevitar una mala apariencia del reporte al tenerlo incrustados en la explicacin y realizacin delos correspondientes programas asignados.

    Dicho lo anterior pasamos al procedimiento de la practica.

    A. Pasamos el programa del Anexo A a un editor de texto y lo guardamos enC:\MASM611\BIN como .ASM

    B. Pasamos A EL MASM donde ensamblamos y linkeamos el archivo .ASM , generando depaso los correspondientes archivos .OBJ , .LST y .EXE , dicho paso es mostrado en lasiguiente imagen

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    5/50

    C. Luego de generado el archivo debemos tener en cuenta lo mencionado antes, esteprograma requiere una impresora matricial para poder funcionar adecuadamente portanto la corrida del archivo .ASM se ha hecho en el EMU 8086 generando la siguienteimagen:

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    6/50

    2. Investigue si su computadora tiene instalado un controlador de ratn mediante un programacomo el procedimiento CHKM en las copias adjuntas. Si no tiene controlador, es parte de la prctica conseguirlo e instalarlo.

    CODIGO SOLUCION1. ;Universidad de El Salvador2. ;Escuela de IngenieraElctrica3. ;Sistemas Digitales Programables I4. ;Arriola Suarez, Jaime Javier AS080055. ;programa que da informacin sobre el mouse6. .MODEL SMALL7. .DATA8. M1 DB 10,13,'NO TIENE UN CONTROLADOR DE MOUSE!!$'9. M2 DB 10,13,'SU VERSION DE DRIVER ES:$'10. M3 DB ' ',10,13,'$'11. M4 DW T1,T2,T3,T4,T512. T1 DB 'BUS$'13. T2 DB 'SERIAL$'14. T3 DB 'INPORT$'15. T4 DB 'PS/2$'16. T5 DB 'HP$'17. M5 DB 'MOUSE INSTALADO',13,10,'$'18. .CODE19. .STARTUP20. CALL CHEK ;VERIFICAMOS SI HAY RATON21. JNC MAIN1;SI HAY VAMOS A MAIN122. LEA DX,M123. JMP MAIN2;SI NO HAY VAMOS A MAIN224. MAIN1:25. MOV AX,24H;OBTIENE VERSION DEL DRIVER26. INT 33H27. LEA DI,M328. MOV AL,BH;GUARDA VERSION MAYOR29. CALL DISP30. MOV BYTE PTR [DI],'.'31. MOV AL,BL;GUARDA VERSION MENOR32. CALL DISP33. LEA DX,M534. MOV AH,09H35. INT 21H36. LEA DX,M2;DESPLIEGA VERSION37. MOV AH,09H38. INT 21H

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    7/50

    39. LEA SI,M4;APUNTA A LA TABLA DE TIPOS40. MOV AH,041. MOV AL,CH42. DEC AX43. ADD SI,AX

    44. ADD SI,AX45. MOV DX,[SI];DESPLIEGA TIPO46. MOV AH,09H47. INT 21H48. LEA DX,M349. MAIN2:50. MOV AH,09H51. INT 21H52. .EXIT53. ;PROCEDIMIENTO QUE VERIFICA EXISTENCIA DE RATON54. ;**PARAMETROS DE SALIDA**55. ;ACARREO =1 NO HAY RATON56. ;ACARREO =0 SI HAY RATON57. CHEK PROC NEAR58. MOV AX,3533H;OBTIENE VECTOR INT 33H59. INT 21H ;VECTOR EN ES:DX60. MOV AX,ES61. OR BX,AX;COMPRUEBA SI 0000:000062. STC63. JZ CHEK1;SI NO HAY DRIVER DE RATON64. CMP BYTE PTR ES:[BX],0CFH65. STC66. JE CHEK1;SI NO HAY DRIVER67. MOV AX,0 ;RESTAURA RATON68. INT 33H69. CMP AX,070. STC71. JZ CHEK1;SI NO HAY RATON72. CLC73. CHEK1:74. RET75. CHEK ENDP76. ;GUARDA EL NUMERO DE VERSION EN ASCII77. ;**PARAMETROS DE ENTRADA**78. ;AL=VERSION79. ;DS:DI=DIRECCION DE ALMACENAMIENTO80. DISP PROC NEAR

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    8/50

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    9/50

    3. Repita el procedimiento del paso anterior para el programa del anexo B.

    A. Primero copiamos el anexo B a un editor de texto y lo guardamos en la carpetaC:\MASM611\BIN, generando de esa forma el archivo.ASM

    B. Luego pasamos al MASM donde lo ensamblamos y likeamos generando asi mismo loscorrespondientes archivos.OBJ, .LST y .EXE

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    10/50

    C. Los archivos generados estarn disponibles en la carpeta C:\MASM611\BIN como semuestra en la imagen.

    D. Por ltimo pasamos de nuevo al MASM donde corremos el programa digitando ANEXB.EXEy al presionar el botn derecho del raton obtendremos los correspondientes resultadosque ser el mensaje SE DETECTO EL BOTON DERECHO DEL RATON , caso contario no semostrara el mensaje si no hasta presionar el botn y similarmente el programa noterminara su ejecucin si no hasta que el botn derecho se presione.

    4. Describa qu sucede al ejecutar el programa controlador del ratn desde una ventana deWINDOWS y desde el MS-DOS. Hay alguna diferencia?

    Lo que sucede sencillamente es lo siguiente:Cuando tenemos activa la ventana del DOS y hacemos click izquierdo o derecho el programadetecta dicha accin y hace lo que hemos predispuesto har, para el caso utilice el programa delanexo B por que lo que nos interesa saber es nicamente saber que pasa al ejecutar sobre unaventana Windows o una de DOS, as pues las siguientes capturas muestran lo ocurrido:

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    11/50

    En la primer imagen se puede apreciar la ventana de Windows seleccionada y sobre se hace clickizquierdo no obtenindose respuesta alguna de parte del programa RATON.EXEEn la siguiente imagen se ha seleccionado la ventana del DOS y sobre ella se hace click izquierdoobtenindose como respuesta el mensaje SE DETECTO BOTON DERECHO DEL RATON Por tanto podemos concluir que solo en la venta de DOS se puede hacer uso de este programa y noal tener activa una ventana de Windows .

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    12/50

    DESARROLLO DE LA ASIGNACION

    1. Programa que sea capaz de obtener toda la informacin posible de su ratn(como elejemplo 7-26 ) y que adems pueda desplegarla en pantalla al oprimir alguno de sus botones, as como permita la salida del programa al presionar otro botn del ratn.

    CODIGO SOLUCION1) ;UNIVERSIDAD DE EL SALVADOR2) ;ESCUELA DE INGENIERAELCTRICA3) ;SISTEMAS DIGITALES PROGRAMABLES I4) ;ARRIOLA SUAREZ, JAIME JAVIER AS080055) ;PROGRAMA QUE PROPORCIONA INFORMACIN SOBRE EL MOUSE:6) ;NUMERO DE BOTONES,POSICION Y TIPO DE MOUSE INSTALADO.7) .MODEL SMALL8) .DATA9) M1 DB 'HA SELECCIONADO NO OBTENER INFORMACION DEL MOUSE!!$'10) M2 DB 10,13,'SU VERSION DE DRIVER ES:$'

    11) M3 DB ' ',10,13,'$'12) M4 DW T1,T2,T3,T4,T513) T1 DB 'BUS$'14) T2 DB 'SERIAL$'15) T3 DB 'INPORT$'16) T4 DB 'PS/2$'17) T5 DB 'HP$'18) M5 DB 'MOUSE INSTALADO!!$'19) M6 DB 'COORDENADA X:',10,13,'$'20) POSX DB ' ',10,1321) DB 'COORDENADA Y:',10,13,'$'22) POSY DB ' $'

    23) IZ EQU 024) DER EQU 125) VISIBLE DB 026) BOTONES DB 10,13,'EL NUMERO DE BOTONES ES: ','$'27) .CODE28) .STARTUP29) CALL HABILITAME30) JC FINALIZA31) LAZO:32) MOV AX,03H ;GUARDA EN CX POSICION HORIZONTAL Y EN DX POSICION

    VERTICAL33) INT 33H

    34) MOV AX,CX35) AAM

    36) OR AX,3030H37) LEA SI,POSX38) MOV DS:[si],AX39) MOV AX,DX40) AAM41) OR AX,3030H42) LEA SI,POSY

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    13/50

    43) MOV DS:[si],AX44) MOV AX,05H;Sale del programa al dar click izquierdo45) MOV BX,00H46) INT 33H47) CMP BL,148) JZ FIN149) JNZ OTRO50) FIN1:51) LEA DX,M152) MOV AH,09H53) INT 21H54) JMP FINALIZA55) OTRO:56) MOV AX,05H;mostrar i informacin al dar click derecho57) MOV BX,01H58) INT 33H59) CMP BL,160) JZ MOSTRAR

    61) JMP LAZO62) MOSTRAR:63) CALL INFORMAME;MUESTRO TODA LA INFORMACION64) FINALIZA:65) MOV AX,02 ;OCULTO RATON66) INT 33H67) .EXIT68) HABILITAME PROC NEAR69) CALL CHEKA70) JC NADA71) MOV AX,172) INT 33H

    73) CLC74) NADA:75) RET76) HABILITAME ENDP77) CHEKA PROC NEAR78) MOV AX,3533H79) INT 21H80) MOV AX,ES81) OR AX,BX82) STC83) JZ CHEKA184) CMP BYTE PTR ES:[BX],0CFH

    85) STC86) JE CHEKA187) MOV AX,088) INT 33H89) CMP AX,090) STC91) JZ CHEKA192) CLC93) CHEKA1:

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    14/50

    94) RET95) CHEKA ENDP96) INFORMAME PROC NEAR97) MOV AX,0;INICIALIZA EL MOUSE98) INT 33H;DEJA EN EL BL EL NUMERO DE BOTONES99) MOV AL,BL100) AAM101) OR AL,30H102) LEA SI,BOTONES103) MOV [SI+26],AL104) MOV AX,24H;OBTIENE VERSION DEL DRIVER105) INT 33H106) LEA DI,M3107) MOV AL,BH;GUARDA VERSION MAYOR108) CALL DISP109) MOV BYTE PTR [DI],'.'110) MOV AL,BL;GUARDA VERSION MENOR111) CALL DISP

    112) LEA DX,M5113) MOV AH,09H114) INT 21H115) LEA DX,M2;DESPLIEGA VERSION116) INT 21H117) LEA SI,M4;APUNTA A LA TABLA DE TIPOS118) MOV AH,0119) MOV AL,CH120) DEC AX121) ADD SI,AX122) ADD SI,AX123) MOV AH,09H

    124) MOV DX,[SI];DESPLIEGA TIPO125) INT 21H126) LEA DX,M3127) INT 21H128) LEA DX,M6129) INT 21H130) LEA DX,POSX131) INT 21H132) LEA DX,POSY133) INT 21H134) LEA DX,BOTONES135) INT 21H

    136) INFORMAME ENDP137) DISP PROC NEAR138) MOV AH,0139) AAM ;CONVIERTE A BCD140) ADD AX,3030H141) CMP AH,30H ;GUARDA VERSION ASCII142) JE DISP1 ;ELIMINA 0143) MOV [DI],AH144) INC DI

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    15/50

    145) DISP1:146) MOV [DI],AL147) INC DI148) RET149) DISP ENDP150) END

    CAPTURAS DE ENSAMBLE, LINKEO Y CORRIDA DEL PROGRAMA

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    16/50

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    17/50

    2. Programa que imprima la portada de su reporte. Deber desplegar en pantalla cul es el puerto al que se encuentra conectado su impresor.

    CODIGO SOLUCION1) .MODEL SMALL2) .DATA3) M1 DB 77 dup (02Ah)4) DB 10,13,42,75 DUP (' '),425) DB 10,13,42,25 DUP (' '),'UNIVERSIDAD DE EL SALVADOR',24 DUP (' '),426) DB 10,13,42,22 DUP (' '),'ESCUELA DE INGENIERIA ELECTRICA',22 DUP (' '),427) DB 10,13,42,21 DUP (' '),'SISTEMAS DIGITALES PROGRAMABLES I',21 DUP ('

    '), 428) DB 10,13,42,75 DUP (' '),429) DB 10,13,42,' Laboratorio # 4 "Impresora y raton"',39 DUP (' '),4210) DB 10,13,42,75 DUP (' '),4211) DB 10,13,42,' Profesor: Ing. Ricardo Cortez.',44 DUP (' '),4212) DB 10,13,42,75 DUP (' '),4213) DB 10,13,42,' Instructor:Br. Guillermo Alexander Escobar Romero',25 DUP (' '),42

    14) DB 10,13,42,75 DUP (' '),4215) DB 10,13,42,' Responsable del trabajo: Jaime Javier Arriola Suarez AS08005',13 DUP(' '),42

    16) DB 10,13,42,75 DUP (' '),4217) DB 10,13,42,75 DUP (' '),4218) DB 10,13,42,20 DUP (' '),'Ciudad Universitaria 17 de mayo 2012',19 DUP (' '),4219) DB 10,13,42,75 DUP (' '),4220) DB 10,13,42,75 DUP (' '),4221) DB 10,13,42,75 DUP (' '),4222) DB 10,13,42,75 DUP (' '),4223) DB 10,13,77 dup (02Ah),'$'24) PUERTO DB 0AH,0DH,'EL PUERTO DE LA IMPRESORA ES: LPT$'

    25) DIR DB 0AH,0DH,'lA DIRECCION DEL PUERTO ES: $'26) ERROR DB 0AH,0DH,'USTED NO TIENE INSTALADA UNA IMPRESORA ENSU SISTEMA O NO ESTA ENCENDIDA$',0AH

    27) FIN DB 028) .CODE29) .STARTUP30) ESTADO:31) CMP SI,332) JE FALLO33) MOV AH,0234) MOV DX,SI35) INT 17H

    36) INC SI37) TEST AH,00101001B38) JNZ ESTADO39) DEC SI40) MOV AH,09H41) MOV DX,OFFSET PUERTO42) INT 21H43) MOV DX,SI44) ADD DL,30H

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    18/50

    45) MOV AH,0246) INT 21H47) MOV AH,948) MOV DX,OFFSET DIR49) INT 21H50) SIGUIENTE:51) MOV AX,ES:LPT[SI]52) INC SI53) CMP AX,054) JE SIGUIENTE55) MOV BX,AX56) MOV AL,AH57) MOV AH,058) ADD AX,3030H59) MOV DL,AH60) MOV AH,0261) PUSH AX62) INT 21H

    63) POP AX64) MOV DL,AL65) INT 21H66) MOV AX,BX67) MOV AH,068) ADD AX,0690H69) AAA70) ADD AX,3030H71) MOV DL,AH72) MOV AH,0273) PUSH AX74) INT 21H

    75) POP AX76) MOV DL,AL77) INT 21H78) MOV AH,40H79) MOV BX,480) JMP EXIT81) FALLO:82) MOV AH,983) MOV DX,OFFSET ERROR84) INT 21H85) EXIT:86) PORTADA:

    87) MOV CX,165788) MOV BX,489) LEA DX,M190) MOV AH,40H91) INT 21H92) MOV AH,4CH93) INT 21H94) .EXIT95) END

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    19/50

    CAPTURAS DE ENSAMBLE, LINKEO Y CORRIDA DEL PROGRAMA

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    20/50

    CONCLUSIONES

    El manejo de puertos es sin duda alguna una tarea que amerita de nuestra especialatencin ya que a travs de estos nuestros programas interactan con el mundo exterior

    en el caso con el usuario de una manera mas amigable recibiendo datos no solo a travsdel teclado si no tambin del mouse y de otros tantos dispositivos para los cuales harfalta conocer su puerto de conexin como as mismo las acciones que este realizara,similarmente con los puertos o dispositivos de salida obtenemos una manera de podertener en fsico los resultados de nuestros programas en el caso nos interesara imprimirlos,la limitante es nicamente que para los programas aqu planteados se necesitara unaimpresora matricial.

    Nuevamente el uso de las interrupciones vuelve a ser un factor que no debe faltar dadoque sin ellas no podramos lograr la comunicacin con el mundo exterior aunquetuviramos los puertos en nuestro sistema, as que es necesario que podamos acceder a lainformacin respectiva de las interrupciones de cada dispositivo para poder utilizarlo, ypor cierto esa fue en esencia la dificultad mas grande en este laboratorio el poder indagarlas diferentes interrupciones tanto para el mouse como para la impresora, pero con eseinconveniente resuelto todo es cuestin de lgica de programacin.

    Los programas en cuanto mas control tratan de obtener del hardware tienden a serlgicamente mas extensos y complicados de entender si estos no se documentanadecuadamente, razn por lo cual hubo un programa llamado MUSE.EXE para el cual serecurri una buena cantidad de procedimientos los cuales facilitaron en gran medida lacomprensin de lo que se estaba haciendo , sobre todo al momento de depurar loserrores que presento el programa en el proceso de la escritura del mismo , puesto quesolo se corra el cdigo en el EMU 8086 y se poda identificar el procedimiento quegeneraba los resultados no deseados.

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    21/50

    ANEXO

    1. ARCHIVO .LST APENDICE A Microsoft (R) Macro Assembler Version 6.11 05/16/12 14:45:08APENA.ASM Page 1 - 1

    ; Programa que prueba las capacidades del impresora.

    ;---------------- Segmento de datos ----------------

    0000 DATOS SEGMENT PARA PUBLIC 'DATA'

    0000 45 73 74 65 20 6D TEXTO DB 'Este mensaje debe aparecer en laimpresora.',0DH,0AH,0AH

    65 6E 73 61 6A 6520 64 65 62 65 2061 70 61 72 65 6365 72 20 65 6E 206C 61 20 69 6D 7072 65 73 6F 72 612E 0D 0A 0A

    002E 41 64 65 6D E1 73 DB 'Adems, este otro mensaje debe aparecer en el siguienterengln'

    2C 20 65 73 74 65

    20 6F 74 72 6F 206D 65 6E 73 61 6A65 20 64 65 62 6520 61 70 61 72 6563 65 72 20 65 6E20 65 6C 20 73 6967 75 69 65 6E 7465 20 72 65 6E 676C F3 6E

    006D 0D 0A 0A 0A DB 0DH,0AH,0AH,0AH

    0071 09 46 69 6E 09 64 DB 9,'Fin',9,'del',9,'texto',0CH65 6C 09 74 65 7874 6F 0C

    0080 00 FIN DB 0

    0081 DATOS ENDS

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    22/50

    ;---------------- Segmento de pila ------------------

    0000 PILA SEGMENT PARA STACK 'STACK'

    0000 0100 [ DB 256 DUP (0)

    00]

    0100 PILA ENDS

    ;---------------- Segmento de cdigo -----------------

    0000 COD SEGMENT PARA PUBLIC 'CODE'ASSUME CS:COD,DS:DATOS,SS:PILA

    0000 CODIGO PROC FAR

    0000 B8 ---- R MOV AX,DATOS0003 8E D8 MOV DS,AX

    0005 B4 40 MOV AH,40H0007 BB 0004 MOV BX,4000A B9 0080 R MOV CX,OFFSET FIN000D 81 E9 0000 R SUB CX,OFFSET TEXTO0011 8D 16 0000 R LEA DX,TEXTO0015 CD 21 INT 21H

    0017 B8 4C00 MOV AX,4C00H001A CD 21 INT 21H

    001C CODIGO ENDP

    001C COD ENDS

    END CODIGO

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    23/50

    Microsoft (R) Macro Assembler Version 6.11 05/16/12 14:45:08APENA.ASM Symbols 2 - 1

    Segments and Groups:

    N a m e Size Length Align Combine Class

    COD . . . . . . . . . . . . . . 16 Bit 001C Para Public 'CODE'DATOS . . . . . . . . . . . . . 16 Bit 0081 Para Public 'DATA'PILA . . . . . . . . . . . . . . 16 Bit 0100 Para Stack 'STACK'

    Procedures, parameters and locals:

    N a m e Type Value Attr

    CODIGO . . . . . . . . . . . . . P Far 0000 COD Length= 001C Private

    Symbols:

    N a m e Type Value Attr

    FIN . . . . . . . . . . . . . . Byte 0080 DATOSTEXTO . . . . . . . . . . . . . Byte 0000 DATOS

    0 Warnings0 Errors

    2. ARCHIVO .LST APENDICE B

    Microsoft (R) Macro Assembler Version 6.11 05/18/12 07:12:45ANEXB.ASM Page 1 - 1

    ; Programa que prueba las capacidades del ratn.

    = 0000 IZ EQU 0= 0001 DER EQU 1

    ;---------------- Segmento de datos ----------------

    0000 DATOS SEGMENT PARA PUBLIC 'DATA'

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    24/50

    0000 45 52 52 4F 52 3A MENSAJE DB 'ERROR: El ratn no estdisponible.',0AH,0DH,'$'

    20 45 6C 20 72 6174 F3 6E 20 6E 6F20 65 73 74 E1 20

    64 69 73 70 6F 6E69 62 6C 65 2E 0A0D 24

    0026 00 VISIBLE DB 0

    0027 DATOS ENDS

    ;---------------- Segmento de pila ------------------

    0000 PILA SEGMENT PARA STACK 'STACK'

    0000 0100 [ DB 256 DUP (0)00]

    0100 PILA ENDS

    ;---------------- Segmento de cdigo -----------------

    0000 COD SEGMENT PARA PUBLIC 'CODE'ASSUME CS:COD,DS:DATOS,SS:PILA

    0000 CODIGO PROC FAR0000 B8 ---- R MOV AX,DATOS0003 8E D8 MOV DS,AX

    0005 B8 0000 MOV AX,0 ; Inicializar el ratn.0008 CD 33 INT 33H

    000A 83 F8 00 CMP AX,0 ; No se inicializ el ratn exitosamente?000D 75 0A JNE SALTO ; Si hubo xito, saltar.

    000F B4 09 MOV AH,90011 8D 16 0000 R LEA DX,MENSAJE0015 CD 21 INT 21H ; Desplegar mensaje de error.

    0017 EB 3F JMP SALIR ; Saltar al fin del programa.

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    25/50

    0019 B8 0001 SALTO:MOV AX,1 ; hacer visible el apuntador.001C CD 33 INT 33H001E FE 06 0026 R INC VISIBLE

    0022 B8 0005 LAZO: MOV AX,5 ; Obtener informacin sobre pulsacin delratn.0025 BB 0000 MOV BX,IZ ; Botn a detectar: izquierdo.0028 CD 33 INT 33H

    002A 80 FB 01 CMP BL,1 ; Se presion el botn izquierdo ?002D 75 15 JNZ PRUEBA2 ; Si no es as, saltar a la otraprueba.

    002F 80 26 0026 R 01 AND VISIBLE,1 ; Borrar lodos los bits de la variable; VISIBLE menos el primero.

    0034 74 05 JZ MOSTRAR ; Si el puntero es invisible,mostrarlo.

    0036 B8 0002 MOV AX,2 ; Funcin para ocultar el ratn.0039 EB 03 JMP SALTO2

    003B B8 0001 MOSTRAR:MOV AX,1 ; Funcin para mostrar elratn.

    003E CD 33 SALTO2:INT 33H0040 FE 06 0026 R INC VISIBLE

    0044 B8 0006 PRUEBA2:MOV AX,6 ; Obtener informacin sobre liberacin debotn.0047 BB 0001 MOV BX,DER ; Botn a detectar: derecho.004A CD 33 INT 33H

    004C 80 FB 01 CMP BL,1 ; Se liber el botn derecho?004F 74 02 JZ OCULTAR ; Si es as, salir del programa.

    0051 EB CF JMP LAZO

    0053 B8 0002 OCULTAR:MOV AX,2 ; Oculta el ratn.0056 CD 33 INT 33H0058 B8 4C00 SALIR: MOV AX,4C00H005B CD 21 INT 21H

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    26/50

    005D CODIGO ENDP

    005D COD ENDS

    END CODIGO

    3. ARCHIVO .LST DEL PROGRAMA MOUKSE.EXE

    Microsoft (R) Macro Assembler Version 6.11 05/15/12 18:42:28MOUKSE.ASM Page 1 - 1

    ;Universidad de El Salvador;Escuela de Ingenieria Electrica;Sistemas Digitales Programables I;Arriola Suarez,Jaime Javier AS08005;programa que da informacion sobre el mouse.MODEL SMALL

    0000 .DATA0000 0A 0D 4E 4F 20 54 M1 DB 10,13,'NO TIENE UN CONTROLADOR DEMOUSE!!$'

    49 45 4E 45 20 554E 20 43 4F 4E 5452 4F 4C 41 44 4F52 20 44 45 20 4D4F 55 53 45 21 2124

    0025 0A 0D 53 55 20 56 M2 DB 10,13,'SU VERSION DE DRIVER ES:$'45 52 53 49 4F 4E20 44 45 20 44 5249 56 45 52 20 4553 3A 24

    0040 20 20 20 20 20 20 M3 DB ' ',10,13,'$'20 0A 0D 24

    004A 0054 R 0058 R 005F R M4 DW T1,T2,T3,T4,T50066 R 006B R

    0054 42 55 53 24 T1 DB 'BUS$'0058 53 45 52 49 41 4C T2 DB 'SERIAL$'

    24005F 49 4E 50 4F 52 54 T3 DB 'INPORT$'

    240066 50 53 2F 32 24 T4 DB 'PS/2$'006B 48 50 24 T5 DB 'HP$'

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    27/50

    006E 4D 4F 55 53 45 20 M5 DB 'MOUSE INSTALADO',13,10,'$'49 4E 53 54 41 4C41 44 4F 0D 0A 24

    0000 .CODE.STARTUP

    0017 E8 004D CALL CHEK ;VERIFICAMOS SI HAY RATON001A 73 06 JNC MAIN1;SI HAY VAMOS A MAIN1001C 8D 16 0000 R LEA DX,M10020 EB 3D JMP MAIN2;SI NO HAY VAMOS A MAIN20022 MAIN1:0022 B8 0024 MOV AX,24H;OBTIENE VERSION DEL DRIVER0025 CD 33 INT 33H

    0027 8D 3E 0040 R LEA DI,M3002B 8A C7 MOV AL,BH;GUARDA VERSION MAYOR002D E8 0057 CALL DISP0030 C6 05 2E MOV BYTE PTR [DI],'.'

    0033 8A C3 MOV AL,BL;GUARDA VERSION MENOR0035 E8 004F CALL DISP0038 8D 16 006E R LEA DX,M5003C B4 09 MOV AH,09H003E CD 21 INT 21H0040 8D 16 0025 R LEA DX,M2;DESPLIEGA VERSION0044 B4 09 MOV AH,09H0046 CD 21 INT 21H

    0048 8D 36 004A R LEA SI,M4;APUNTA A LA TABLA DE TIPOS004C B4 00 MOV AH,0004E 8A C5 MOV AL,CH0050 48 DEC AX0051 03 F0 ADD SI,AX0053 03 F0 ADD SI,AX0055 8B 14 MOV DX,[SI];DESPLIEGA TIPO0057 B4 09 MOV AH,09H0059 CD 21 INT 21H005B 8D 16 0040 R LEA DX,M3005F MAIN2:005F B4 09 MOV AH,09H0061 CD 21 INT 21H

    .EXIT;PROCEDIMIENTO QUE VERIFICA EXISTENCIA DE RATON

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    28/50

    ;**PARAMETROS DE SALIDA**;ACARREO =1 NO HAY RATON;ACARREO =0 SI HAY RATON

    0067 CHEK PROC NEAR

    0067 B8 3533 MOV AX,3533H;OBTIENE VECTOR INT 33H006A CD 21 INT 21H ;VECTOR EN ES:DX

    006C 8C C0 MOV AX,ES006E 0B D8 OR BX,AX;COMPRUEBA SI 0000:00000070 F9 STC0071 74 13 JZ CHEK1;SI NO HAY DRIVER DE RATON

    0073 26: 80 3F CF CMP BYTE PTR ES:[BX],0CFH0077 F9 STC0078 74 0C JE CHEK1;SI NO HAY DRIVER

    007A B8 0000 MOV AX,0 ;RESTAURA RATON007D CD 33 INT 33H007F 83 F8 00 CMP AX,00082 F9 STC0083 74 01 JZ CHEK1;SI NO HAY RATON0085 F8 CLC0086 CHEK1:0086 C3 RET0087 CHEK ENDP

    ;GUARDA EL NUMERO DE VERSION EN ASCII;**PARAMETROS DE ENTRADA**;AL=VERSION;DS:DI=DIRECCION DE ALMACENAMIENTO;

    0087 DISP PROC NEAR

    0087 B4 00 MOV AH,00089 D4 0A AAM ;CONVIERTE A BCD008B 05 3030 ADD AX,3030H008E 80 FC 30 CMP AH,30H ;GUARDA VERSION ASCII0091 74 03 JE DISP1 ;ELIMINA 00093 88 25 MOV [DI],AH0095 47 INC DI0096 DISP1:

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    29/50

    0096 88 05 MOV [DI],AL0098 47 INC DI0099 C3 RET

    009A DISP ENDP

    ENDMicrosoft (R) Macro Assembler Version 6.11 05/15/12 18:42:28MOUKSE.ASM Symbols 2 - 1

    Segments and Groups:

    N a m e Size Length Align Combine Class

    DGROUP . . . . . . . . . . . . . GROUP _DATA . . . . . . . . . . . . . 16 Bit 0080 Word Public 'DATA' _TEXT . . . . . . . . . . . . . 16 Bit 009A Word Public 'CODE'

    Procedures, parameters and locals:

    N a m e Type Value Attr

    CHEK . . . . . . . . . . . . . . P Near 0067 _TEXT Length= 0020 PrivateDISP . . . . . . . . . . . . . . P Near 0087 _TEXT Length= 0013 Private

    Symbols:

    N a m e Type Value Attr

    @CodeSize . . . . . . . . . . . Number 0000h@DataSize . . . . . . . . . . . Number 0000h@Interface . . . . . . . . . . . Number 0000h@Model . . . . . . . . . . . . . Number 0002h@Startup . . . . . . . . . . . . L Near 0000 _TEXT@code . . . . . . . . . . . . . Text _TEXT@data . . . . . . . . . . . . . Text DGROUP@fardata? . . . . . . . . . . . Text FAR_BSS@fardata . . . . . . . . . . . . Text FAR_DATA@stack . . . . . . . . . . . . . Text DGROUPCHEK1 . . . . . . . . . . . . . L Near 0086 _TEXTDISP1 . . . . . . . . . . . . . L Near 0096 _TEXTM1 . . . . . . . . . . . . . . . Byte 0000 _DATAM2 . . . . . . . . . . . . . . . Byte 0025 _DATA

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    30/50

    M3 . . . . . . . . . . . . . . . Byte 0040 _DATAM4 . . . . . . . . . . . . . . . Word 004A _DATAM5 . . . . . . . . . . . . . . . Byte 006E _DATAMAIN1 . . . . . . . . . . . . . L Near 0022 _TEXTMAIN2 . . . . . . . . . . . . . L Near 005F _TEXT

    T1 . . . . . . . . . . . . . . . Byte 0054 _DATAT2 . . . . . . . . . . . . . . . Byte 0058 _DATAT3 . . . . . . . . . . . . . . . Byte 005F _DATAT4 . . . . . . . . . . . . . . . Byte 0066 _DATAT5 . . . . . . . . . . . . . . . Byte 006B _DATA

    0 Warnings0 Errors

    Microsoft (R) Macro Assembler Version 6.11 05/18/12 07:12:45ANEXB.ASM Symbols 2 - 1

    Segments and Groups:

    N a m e Size Length Align Combine Class

    COD . . . . . . . . . . . . . . 16 Bit 005D Para Public 'CODE'DATOS . . . . . . . . . . . . . 16 Bit 0027 Para Public 'DATA'PILA . . . . . . . . . . . . . . 16 Bit 0100 Para Stack 'STACK'

    Procedures, parameters and locals:

    N a m e Type Value Attr

    CODIGO . . . . . . . . . . . . . P Far 0000 COD Length= 005D Private

    Symbols:

    N a m e Type Value Attr

    DER . . . . . . . . . . . . . . Number 0001hIZ . . . . . . . . . . . . . . . Number 0000hLAZO . . . . . . . . . . . . . . L Near 0022 CODMENSAJE . . . . . . . . . . . . Byte 0000 DATOSMOSTRAR . . . . . . . . . . . . L Near 003B CODOCULTAR . . . . . . . . . . . . L Near 0053 CODPRUEBA2 . . . . . . . . . . . . L Near 0044 COD

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    31/50

    SALIR . . . . . . . . . . . . . L Near 0058 CODSALTO2 . . . . . . . . . . . . . L Near 003E CODSALTO . . . . . . . . . . . . . L Near 0019 CODVISIBLE . . . . . . . . . . . . Byte 0026 DATOS

    0 Warnings0 Errors

    4. Archivo .LST DEL PROGRAMA MUSE.EXE

    Microsoft (R) Macro Assembler Version 6.11 05/18/12 05:25:16

    MUSE.ASM Page 1 - 1

    .MODEL SMALL

    0000 .DATA

    0000 48 41 20 53 45 4C M1 DB 'HA SELECCIONADO NO OBTENERINFORMACION DEL MOUSE!!$'

    45 43 43 49 4F 4E

    41 44 4F 20 4E 4F

    20 4F 42 54 45 4E

    45 52 20 49 4E 46

    4F 52 4D 41 43 49

    4F 4E 20 44 45 4C

    20 4D 4F 55 53 45

    21 21 24

    0033 0A 0D 53 55 20 56 M2 DB 10,13,'SU VERSION DE DRIVER ES:$'

    45 52 53 49 4F 4E

    20 44 45 20 44 52

    49 56 45 52 20 45

    53 3A 24

    004E 20 20 20 20 20 20 M3 DB ' ',10,13,'$'

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    32/50

    20 0A 0D 24

    0058 0062 R 0066 R 006D R M4 DW T1,T2,T3,T4,T5

    0074 R 0079 R

    0062 42 55 53 24 T1 DB 'BUS$'

    0066 53 45 52 49 41 4C T2 DB 'SERIAL$'

    24

    006D 49 4E 50 4F 52 54 T3 DB 'INPORT$'

    24

    0074 50 53 2F 32 24 T4 DB 'PS/2$'

    0079 48 50 24 T5 DB 'HP$'

    007C 4D 4F 55 53 45 20 M5 DB 'MOUSE INSTALADO!!$'

    49 4E 53 54 41 4C

    41 44 4F 21 21 24

    008E 43 4F 4F 52 44 45 M6 DB 'COORDENADA X:',10,13,'$'

    4E 41 44 41 20 58

    3A 0A 0D 24

    009E 20 20 20 20 20 20 POSX DB ' ',10,13

    0A 0D

    00A6 43 4F 4F 52 44 45 DB 'COORDENADA Y:',10,13,'$'

    4E 41 44 41 20 59

    3A 0A 0D 24

    00B6 20 20 20 20 20 20 POSY DB ' $'

    20 24

    = 0000 IZ EQU 0

    = 0001 DER EQU 1

    00BE 00 VISIBLE DB 0

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    33/50

    00BF 0A 0D 45 4C 20 4E BOTONES DB 10,13,'EL NUMERO DE BOTONES ES:','$'

    55 4D 45 52 4F 20

    44 45 20 42 4F 54

    4F 4E 45 53 20 45

    53 3A 20 20 20 24

    0000 .CODE

    .STARTUP

    0017 E8 0055 CALL HABILITAME

    001A 72 4A JC FINALIZA

    001C LAZO:

    001C B8 0003 MOV AX,03H ;GUARDA EN CX POSICION HORIZONTAL Y ENDX POSICION VERTICAL

    001F CD 33 INT 33H

    0021 8B C1 MOV AX,CX

    0023 D4 0A AAM

    0025 0D 3030 OR AX,3030H

    0028 8D 36 009E R LEA si,POSX

    002C 89 04 MOV DS:[si],ax

    002E 8B C2 MOV AX,DX

    0030 D4 0A AAM

    0032 0D 3030 OR AX,3030H

    0035 8D 36 00B6 R LEA si,POSY

    0039 89 04 mov DS:[si],ax

    003B B8 0005 MOV AX,05H;Sale del programa al dar click izquierdo

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    34/50

    003E BB 0000 MOV BX,00H

    0041 CD 33 INT 33H

    0043 80 FB 01 CMP BL,1

    0046 74 02 JZ FIN1

    0048 75 0A JNZ OTRO

    004A FIN1:

    004A 8D 16 0000 R LEA DX,M1

    004E B4 09 MOV AH,09H

    0050 CD 21 INT 21H

    0052 EB 12 JMP FINALIZA

    0054 OTRO:

    0054 B8 0005 MOV AX,05H;mostrar informacion al dar click derecho

    0057 BB 0001 MOV BX,01H

    005A CD 33 INT 33H

    005C 80 FB 01 CMP BL,1

    005F 74 02 JZ MOSTRAR

    0061 EB B9 JMP LAZO

    0063 MOSTRAR:

    0063 E8 0035 CALL INFORMAME;MUESTRO TODA LA INFORMACION

    0066 FINALIZA:

    0066 B8 0002 MOV AX,02 ;OCULTO RATON

    0069 CD 33 INT 33H

    .EXIT

    006F HABILITAME PROC NEAR

    006F E8 0009 CALL CHEKA

    0072 72 06 JC NADA

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    35/50

    0074 B8 0001 MOV AX,1

    0077 CD 33 INT 33H

    0079 F8 CLC

    007A NADA:

    007A C3 RET

    007B HABILITAME ENDP

    007B CHEKA PROC NEAR

    007B B8 3533 MOV AX,3533H

    007E CD 21 INT 21H

    0080 8C C0 MOV AX,ES

    0082 0B C3 OR AX,BX

    0084 F9 STC

    0085 74 13 JZ CHEKA1

    0087 26: 80 3F CF CMP BYTE PTR ES:[BX],0CFH

    008B F9 STC

    008C 74 0C JE CHEKA1

    008E B8 0000 MOV AX,0

    0091 CD 33 INT 33H

    0093 83 F8 00 CMP AX,0

    0096 F9 STC

    0097 74 01 JZ CHEKA1

    0099 F8 CLC

    009A CHEKA1:

    009A C3 RET

    009B CHEKA ENDP

    009B INFORMAME PROC NEAR

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    36/50

    009B B8 0000 MOV AX,0;INICIALIZA EL MOUSE

    009E CD 33 INT 33H;DEJA EN EL BL EL NUMERO DE BOTONES

    00A0 8A C3 MOV AL,BL

    00A2 D4 0A AAM

    00A4 0C 30 OR AL,30H

    00A6 8D 36 00BF R LEA SI,BOTONES

    00AA 88 44 1A MOV [SI+26],AL

    00AD B8 0024 MOV AX,24H;OBTIENE VERSION DEL DRIVER

    00B0 CD 33 INT 33H

    00B2 8D 3E 004E R LEA DI,M3

    00B6 8A C7 MOV AL,BH;GUARDA VERSION MAYOR

    00B8 E8 0047 CALL DISP

    00BB C6 05 2E MOV BYTE PTR [DI],'.'

    00BE 8A C3 MOV AL,BL;GUARDA VERSION MENOR

    00C0 E8 003F CALL DISP

    00C3 8D 16 007C R LEA DX,M5

    00C7 B4 09 MOV AH,09H

    00C9 CD 21 INT 21H

    00CB 8D 16 0033 R LEA DX,M2;DESPLIEGA VERSION

    00CF CD 21 INT 21H

    00D1 8D 36 0058 R LEA SI,M4;APUNTA A LA TABLA DE TIPOS

    00D5 B4 00 MOV AH,0

    00D7 8A C5 MOV AL,CH

    00D9 48 DEC AX

    00DA 03 F0 ADD SI,AX

    00DC 03 F0 ADD SI,AX

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    37/50

    00DE B4 09 MOV AH,09H

    00E0 8B 14 MOV DX,[SI];DESPLIEGA TIPO

    00E2 CD 21 INT 21H

    00E4 8D 16 004E R LEA DX,M3

    00E8 CD 21 INT 21H

    00EA 8D 16 008E R LEA DX,M6

    00EE CD 21 INT 21H

    00F0 8D 16 009E R LEA DX,POSX

    00F4 CD 21 INT 21H

    00F6 8D 16 00B6 R LEA DX,POSY

    00FA CD 21 INT 21H

    00FC 8D 16 00BF R LEA DX,BOTONES

    0100 CD 21 INT 21H

    0102 INFORMAME ENDP

    0102 DISP PROC NEAR

    0102 B4 00 MOV AH,0

    0104 D4 0A AAM ;CONVIERTE A BCD

    0106 05 3030 ADD AX,3030H

    0109 80 FC 30 CMP AH,30H ;GUARDA VERSION ASCII

    010C 74 03 JE DISP1 ;ELIMINA 0

    010E 88 25 MOV [DI],AH

    0110 47 INC DI

    0111 DISP1:

    0111 88 05 MOV [DI],AL

    0113 47 INC DI

    0114 C3 RET

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    38/50

    0115 DISP ENDP

    END

    Microsoft (R) Macro Assembler Version 6.11 05/18/12 05:25:16

    MUSE.ASM Symbols 2 - 1

    Segments and Groups:

    N a m e Size Length Align Combine Class

    DGROUP . . . . . . . . . . . . . GROUP

    _DATA . . . . . . . . . . . . . 16 Bit 00DD Word Public 'DATA'

    _TEXT . . . . . . . . . . . . . 16 Bit 0115 Word Public 'CODE'

    Procedures, parameters and locals:

    N a m e Type Value Attr

    CHEKA . . . . . . . . . . . . . P Near 007B _TEXT Length= 0020 Private

    DISP . . . . . . . . . . . . . . P Near 0102 _TEXT Length= 0013 Private

    HABILITAME . . . . . . . . . . . P Near 006F _TEXT Length= 000C Private

    INFORMAME . . . . . . . . . . . P Near 009B _TEXT Length= 0067 Private

    Symbols:

    N a m e Type Value Attr

    @CodeSize . . . . . . . . . . . Number 0000h

    @DataSize . . . . . . . . . . . Number 0000h

    @Interface . . . . . . . . . . . Number 0000h

    @Model . . . . . . . . . . . . . Number 0002h

    @Startup . . . . . . . . . . . . L Near 0000 _TEXT

    @code . . . . . . . . . . . . . Text _TEXT

    @data . . . . . . . . . . . . . Text DGROUP

    @fardata? . . . . . . . . . . . Text FAR_BSS

    @fardata . . . . . . . . . . . . Text FAR_DATA

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    39/50

    @stack . . . . . . . . . . . . . Text DGROUP

    BOTONES . . . . . . . . . . . . Byte 00BF _DATA

    CHEKA1 . . . . . . . . . . . . . L Near 009A _TEXT

    DER . . . . . . . . . . . . . . Number 0001h

    DISP1 . . . . . . . . . . . . . L Near 0111 _TEXT

    FIN1 . . . . . . . . . . . . . . L Near 004A _TEXT

    FINALIZA . . . . . . . . . . . . L Near 0066 _TEXT

    IZ . . . . . . . . . . . . . . . Number 0000h

    LAZO . . . . . . . . . . . . . . L Near 001C _TEXT

    M1 . . . . . . . . . . . . . . . Byte 0000 _DATA

    M2 . . . . . . . . . . . . . . . Byte 0033 _DATA

    M3 . . . . . . . . . . . . . . . Byte 004E _DATA

    M4 . . . . . . . . . . . . . . . Word 0058 _DATA

    M5 . . . . . . . . . . . . . . . Byte 007C _DATA

    M6 . . . . . . . . . . . . . . . Byte 008E _DATA

    MOSTRAR . . . . . . . . . . . . L Near 0063 _TEXT

    NADA . . . . . . . . . . . . . . L Near 007A _TEXT

    OTRO . . . . . . . . . . . . . . L Near 0054 _TEXT

    POSX . . . . . . . . . . . . . . Byte 009E _DATA

    POSY . . . . . . . . . . . . . . Byte 00B6 _DATA

    T1 . . . . . . . . . . . . . . . Byte 0062 _DATA

    T2 . . . . . . . . . . . . . . . Byte 0066 _DATA

    T3 . . . . . . . . . . . . . . . Byte 006D _DATA

    T4 . . . . . . . . . . . . . . . Byte 0074 _DATA

    T5 . . . . . . . . . . . . . . . Byte 0079 _DATA

    VISIBLE . . . . . . . . . . . . Byte 00BE _DATA

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    40/50

    0 Warnings

    0 Errors

    5. ARCHIVO .LST DEL PROGRAMA PORTADA.EXE

    Microsoft (R) Macro Assembler Version 6.11 05/18/12 06:47:57

    PORTADA.ASM Page 1 - 1

    .MODEL SMALL

    0000 .DATA

    0000 004D [ M1 DB 77 dup (02Ah)

    2A

    ]

    004D 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    009C 0A 0D 2A DB 10,13,42,25 DUP (' '),'UNIVERSIDAD DE ELSALVADOR',24 DUP (' '),42

    0019 [

    20

    ] 55 4E 49 56 45

    52 53 49 44 41 44

    20 44 45 20 45 4C

    20 53 41 4C 56 41

    44 4F 52

    0018 [

    20

    ] 2A

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    41/50

    00EB 0A 0D 2A DB 10,13,42,22 DUP (' '),'ESCUELA DE INGENIERIAELECTRICA',22 DUP (' '),42

    0016 [

    20

    ] 45 53 43 55 45

    4C 41 20 44 45 20

    49 4E 47 45 4E 49

    45 52 49 41 20 45

    4C 45 43 54 52 49

    43 41

    0016 [

    20

    ] 2A

    013A 0A 0D 2A DB 10,13,42,21 DUP (' '),'SISTEMAS DIGITALESPROGRAMABLES I',21 DUP (' '), 42

    0015 [

    20

    ] 53 49 53 54 45

    4D 41 53 20 44 49

    47 49 54 41 4C 45

    53 20 50 52 4F 47

    52 41 4D 41 42 4C

    45 53 20 49

    0015 [

    20

    ] 2A

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    42/50

    0189 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    01D8 0A 0D 2A 20 4C 61 DB 10,13,42,' Laboratorio # 4 "Impresora y raton"',39 DUP (' '),42

    62 6F 72 61 74 6F

    72 69 6F 20 23 20

    34 20 22 49 6D 70

    72 65 73 6F 72 61

    20 79 20 72 61 74

    6F 6E 22

    0027 [

    20

    ] 2A

    0227 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    0276 0A 0D 2A 20 50 72 DB 10,13,42,' Profesor: Ing. Ricardo Cortez.',44 DUP (' '),42

    6F 66 65 73 6F 72

    3A 20 49 6E 67 2E

    20 52 69 63 61 72

    64 6F 20 43 6F 72

    74 65 7A 2E

    002C [

    20

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    43/50

    ] 2A

    02C5 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    0314 0A 0D 2A 20 49 6E DB 10,13,42,' Instructor:Br. Guillermo Alexander EscobarRomero',25 DUP (' '),42

    73 74 72 75 63 74

    6F 72 3A 42 72 2E

    20 47 75 69 6C 6C

    65 72 6D 6F 20 41

    6C 65 78 61 6E 64

    65 72 20 45 73 63

    6F 62 61 72 20 52

    6F 6D 65 72 6F

    0019 [

    20

    ] 2A

    0363 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    03B2 0A 0D 2A 20 52 65 DB 10,13,42,' Responsable del trabajo: Jaime Javier ArriolaSuarez AS08005',13 DUP (' '),42

    73 70 6F 6E 73 61

    62 6C 65 20 64 65

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    44/50

    6C 20 74 72 61 62

    61 6A 6F 3A 20 20

    4A 61 69 6D 65 20

    4A 61 76 69 65 72

    20 41 72 72 69 6F

    6C 61 20 53 75 61

    72 65 7A 20 41 53

    30 38 30 30 35

    000D [

    20

    ] 2A

    0401 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    0450 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    049F 0A 0D 2A DB 10,13,42,20 DUP (' '),'Ciudad Universitaria 17 demayo 2012',19 DUP (' '),42

    0014 [

    20

    ] 43 69 75 64 61

    64 20 55 6E 69 76

    65 72 73 69 74 61

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    45/50

    72 69 61 20 31 37

    20 64 65 20 6D 61

    79 6F 20 32 30 31

    32

    0013 [

    20

    ] 2A

    04EE 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    053D 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    058C 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    05DB 0A 0D 2A DB 10,13,42,75 DUP (' '),42

    004B [

    20

    ] 2A

    062A 0A 0D DB 10,13,77 dup (02Ah),'$'

    004D [

    2A

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    46/50

    ] 24

    067A 0A 0D 45 4C 20 50 PUERTO DB 0AH,0DH,'EL PUERTO DE LA IMPRESORA ES:LPT$'

    55 45 52 54 4F 20

    44 45 20 4C 41 20

    49 4D 50 52 45 53

    4F 52 41 20 45 53

    3A 20 4C 50 54 24

    069E 0A 0D 6C 41 20 44 DIR DB 0AH,0DH,'lA DIRECCION DEL PUERTO ES: $'

    49 52 45 43 43 49

    4F 4E 20 44 45 4C

    20 50 55 45 52 54

    4F 20 45 53 3A 20

    24

    06BD 0A 0D 55 53 54 45 ERROR DB 0AH,0DH,'USTED NO TIENE INSTALADA UNAIMPRESORA EN SU SISTEMA O NO ESTA ENCENDIDA$',0AH

    44 20 4E 4F 20 54

    49 45 4E 45 20 49

    4E 53 54 41 4C 41

    44 41 20 55 4E 41

    20 49 4D 50 52 45

    53 4F 52 41 20 45

    4E 20 53 55 20 53

    49 53 54 45 4D 41

    20 4F 20 4E 4F 20

    45 53 54 41 20 45

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    47/50

    4E 43 45 4E 44 49

    44 41 24 0A

    0709 00 FIN DB 0

    0000 .CODE

    .STARTUP

    0017 ESTADO:

    0017 83 FE 03 CMP SI,3

    001A 74 68 JE FALLO

    001C B4 02 MOV AH,02

    001E 8B D6 MOV DX,SI

    0020 CD 17 INT 17H

    0022 46 INC SI

    0023 F6 C4 29 TEST AH,00101001B

    0026 75 EF JNZ ESTADO

    0028 4E DEC SI

    0029 B4 09 MOV AH,09H

    002B BA 067A R MOV DX,OFFSET PUERTO

    002E CD 21 INT 21H

    0030 8B D6 MOV DX,SI

    0032 80 C2 30 ADD DL,30H

    0035 B4 02 MOV AH,02

    0037 CD 21 INT 21H

    0039 B4 09 MOV AH,9

    003B BA 069E R MOV DX,OFFSET DIR

    003E CD 21 INT 21H

    0040 SIGUIENTE:

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    48/50

    MOV AX,ES:LPT[SI]

    PORTADA.ASM(51): error A2006: undefined symbol : LPT

    0040 46 INC SI

    0041 83 F8 00 CMP AX,0

    0044 74 FA JE SIGUIENTE

    0046 8B D8 MOV BX,AX

    0048 8A C4 MOV AL,AH

    004A B4 00 MOV AH,0

    004C 05 3030 ADD AX,3030H

    004F 8A D4 MOV DL,AH

    0051 B4 02 MOV AH,02

    0053 50 PUSH AX

    0054 CD 21 INT 21H

    0056 58 POP AX

    0057 8A D0 MOV DL,AL

    0059 CD 21 INT 21H

    005B 8B C3 MOV AX,BX

    005D B4 00 MOV AH,0

    005F 05 0690 ADD AX,0690H

    0062 37 AAA

    0063 05 3030 ADD AX,3030H

    0066 8A D4 MOV DL,AH

    0068 B4 02 MOV AH,02

    006A 50 PUSH AX

    006B CD 21 INT 21H

    006D 58 POP AX

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    49/50

    006E 8A D0 MOV DL,AL

    0070 CD 21 INT 21H

    0072 B4 40 MOV AH,40H

    0074 BB 0004 MOV BX,4

    0077 EB 12 JMP EXIT

    0084 FALLO:

    0084 B4 09 MOV AH,9

    0086 BA 06BD R MOV DX,OFFSET ERROR

    0089 CD 21 INT 21H

    008B EXIT:

    008B PORTADA:

    008B B9 0679 MOV CX,1657

    008E BB 0004 MOV BX,4

    0091 8D 16 0000 R LEA DX,M1

    0095 B4 40 MOV AH,40H

    0097 CD 21 INT 21H

    0099 B4 4C MOV AH,4CH

    009B CD 21 INT 21H

    .EXIT

    END Microsoft (R) Macro Assembler Version 6.1105/18/12 06:47:57

    PORTADA.ASM Symbols 2 - 1

    Segments and Groups:

    N a m e Size Length Align Combine Class

    DGROUP . . . . . . . . . . . . . GROUP

    _DATA . . . . . . . . . . . . . 16 Bit 070A Word Public 'DATA'

  • 7/26/2019 LABORATORIO4 [FINALIZADO]

    50/50

    _TEXT . . . . . . . . . . . . . 16 Bit 00A1 Word Public 'CODE'

    Symbols:

    N a m e Type Value Attr

    @CodeSize . . . . . . . . . . . Number 0000h

    @DataSize . . . . . . . . . . . Number 0000h

    @Interface . . . . . . . . . . . Number 0000h

    @Model . . . . . . . . . . . . . Number 0002h

    @Startup . . . . . . . . . . . . L Near 0000 _TEXT

    @code . . . . . . . . . . . . . Text _TEXT

    @data . . . . . . . . . . . . . Text DGROUP

    @fardata? . . . . . . . . . . . Text FAR_BSS

    @fardata . . . . . . . . . . . . Text FAR_DATA

    @stack . . . . . . . . . . . . . Text DGROUP

    DIR . . . . . . . . . . . . . . Byte 069E _DATA

    ERROR . . . . . . . . . . . . . Byte 06BD _DATA

    ESTADO . . . . . . . . . . . . . L Near 0017 _TEXT

    EXIT . . . . . . . . . . . . . . L Near 008B _TEXT

    FALLO . . . . . . . . . . . . . L Near 0084 _TEXT

    FIN . . . . . . . . . . . . . . Byte 0709 _DATA

    M1 . . . . . . . . . . . . . . . Byte 0000 _DATA

    PORTADA . . . . . . . . . . . . L Near 008B _TEXT

    PUERTO . . . . . . . . . . . . . Byte 067A _DATA

    SIGUIENTE . . . . . . . . . . . L Near 0040 _TEXT

    0 Warnings