Iniciación del mouse El servicio utilizado es el 00, este servicio inicializa el controlador del mouse como sigue:

Documentos relacionados
[etiqueta:] REP MOVSn

Operaciones para Pantalla II

62/8&,21(6$/(;$0(1'( /$%25$725,2'((6758&785$6'(/26&20387$'25(6 &8562)(%5(52

Arquitectura de Computadores II 8086 Parte II

SISTEMAS BASADOS EN MICROPROCESADOR 2º Grado Ingeniería Informática (EPS UAM) EXAMEN FINAL EXTRAORDINARIO JULIO 2013 ENUNCIADO DEL PROBLEMA

SISTEMAS BASADOS EN MICROPROCESADORES

Pregunta correcta= 0,3 Pregunta no contestada= 0 Pregunta incorrecta (tipo test)= -0,15

Conceptos de Arquitectura de Computadoras Curso 2015

Arquitectura (Procesador familia 80 x 86 )

MANEJO DEL MOUSE EN LENGUAJE C++

Tema 4. Lenguaje máquina y lenguaje ensamblador

PRACTICA #1. Aprender a programar una interrupción software empleando C y/o Ensamblador.

P1.- Para facilitar la tarea, suponemos definido en el segmento de datos lo siguiente:

SISTEMAS BASADOS EN MICROPROCESADORES

Práctica 4. Lenguaje máquina y lenguaje ensamblador

LENGUAJE ENSAMBLADOR PRÁCTICA 11 PRÁCTICA 11 CUATRO OPERACIONES FUNDAMENTALES EN NÚMEROS DE 8 BYTES

Tema 5: La pila, las macros y los procedimientos

Tema 4. Lenguaje máquina y lenguaje ensamblador

LABORATORIOS DE: DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA. MEMORIAS Y PERIFÉRICOS. PRÁCTICA #9 EL RATÓN DE UNA COMPUTADORA

Intel 8086 modelo básico (primera parte) Registros:

Buses y Periféricos 2006/2007 Práctica 3. Ensamblador

Tema 5.1: Presentación de datos en pantalla

Desarrollo de Programas Residentes en base a un TSR genérico

Apellidos Nombre DNI

Tema 9 Periféricos de Entrada

Intel Arquitectura. Programación en Ensamblador Ing. Marcelo Tosini

Tema 5. Presentación de datos por pantalla

Práctica 2. Registros y posiciones de memoria

6-REGISTROS DEL 8086 Y DEL 80286

Tema 2. Presentación de datos por pantalla. La ROM-BIOS

LENGUAJE ENSAMBLADOR PRÁCTICA 16 PRÁCTICA 16

Sobre cómo dividir un programa ensamblador x86 (modo Real) en módulos compilables por separado.

Arquitectura intel Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

MÓDULO III PROGRAMACIÓN DEL MICROPROCESADOR

Trabajo Práctico Nro 3: Assembler

ENSAMBLADOR DE ARCHIVO TASM MASM NASM GAS. Características de un Ensamblador de Archivo

Manual de Programación X86 sobre plataforma FPGA.

2 de septiembre de 2010 Hoja: 1 / 10. Solamente existe una opción válida en las preguntas de respuesta múltiple.

LENGUAJE ENSAMBLADOR DEL MICROPROCESADOR

Examen de Arquitectura de Computadores 2 22 de febrero del 2011

DIRECTIVAS DEL ASM86

Tema 4: Lenguaje máquina - Lenguaje ensamblador

CAPÍTULO 3 PROGRAMACIÓN EN AMBIENTE DE PC

Objetivo. Introducción. Tema: GENERACION DE CODIGO. Compiladores, Guía 11 1

Instrucciones de Control de Flujo y Usos de la Pila

SISTEMAS BASADOS EN MICROPROCESADORES

Instrucción De Salto Incondicional

Parámetro de entrada. Un parámetro pasado del procedimiento que hace la llamada al procedimiento invocado.

INTRODUCCIÓN. Interrupciones.

Alternativas de programación

ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA

SISTEMAS BASADOS EN MICROPROCESADORES (2º - GRADO ING. INFORMÁTICA) EJERCICIO CLASE

Resumen de las instrucciones del 8086/8088

Práctica 3: El teclado del PC

Conmutación de Tareas

Programas Residentes En Lenguaje Ensamblador

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp

Ejemplo del uso de las subrutinas

ENTORNO DE TRABAJO DE WORD 2007

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

Introducción al ensamblador 80x86

La arquitectura del 8086/8088

control de Luces por el Puerto Paralelo 378H (16 Luces 4 bloques de 4)

Tabla de contenido. Revistas de la Edad de Plata. Ayuda

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Crear un lienzo Nuevo.

Introducción al NASM. Convenciones de colores

Trabajar con diapositivas

MANUAL DE PROGRAMACIÓN EN ENSAMBLADOR 8086

UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD REGIONAL SAN NICOLÁS INGENIERIA EN ELECTRÓNICA

El Diseño de un Lenguaje Máquina

F O R M U L A R I O S FORMULARIOS

Fig. 1: Tipos de datos que puede manejar el procesador

REPERTORIO DE INSTRUCCIONES DEL MICROPROCESADOR 8086

Fundamentos de Word. Identificar los elementos de la interfaz de usuario que puede usar para realizar las tareas básicas.

Guía Laboratorio Número 1

EL EMU8086 Y EL MICROPROCESADOR 8086.

Mod. I, Unid. 1, Obj. 1 CRITERIO DE DOMINIO 1/1

Pl_Editor. 25 de enero de 2016

Procesadores de 64 bits

ARQUITECTURA DEL MICROPROCESADOR 8086

Nombre del módulo: Instalación de Sistemas Microprocesados. Guía sobre Programación en Ensamblador usando Emulador (emu8086)

APUNTES DE WINDOWS. Windows y sus Elementos INSTITUTO DE CAPACITACIÓN PROFESIONAL. Elementos de Windows

Fundamentos de Informática 2. Conceptos Básicos. El ordenador. Contenidos. El ordenador. El ordenador. El ordenador. Tema 2.

Draw. Dibujo vectorial

8.4. El software en los μprocesadores

UNIVERSIDAD NACIONAL DE INGENIERIA. Programación en Lenguaje Ensamblador

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

ESTRUCTURA DE COMPUTADORES I (Capítulo 14: DIRECTIVAS) 1/32 14-DIRECTIVAS

Laboratorio de Física Universitaria II. FISI 3014 Primer semestre del año académico Departamento de Física y Electrónica de la UPR-H

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Práctica 1 Introducción general al SPRING

SOFTWARE COMUNICACIÓN - CONEXIÓN DEL DISPOSITIVO...

Este grupo es una continuación del anterior, incluye las siguientes instrucciones:

3.2 Operaciones aritmético-lógicas en Pascal

1. La nueva interfaz del programa

Curso básico de computación para principiantes

Microsoft Office Picture Manager

Transcripción:

Esta es una interrupción de DOS y ayuda a controlar el uso del mouse. Se puede establecer el uso del ratón en modo texto y en modo gráfico. Para hacer uso del mouse se debe establecer el modo de video, inicializar mouse, mostrar el puntero, realizar acciones de desplazamiento, selección, etc., y al final ocultar el puntero. Iniciación del mouse El servicio utilizado es el 00, este servicio inicializa el controlador del mouse como sigue: Establece el puntero en el centro de la pantalla Si esta visible el apuntador lo oculta Fija la pagina de despliegue del apuntador del ratón en cero Establece el puntero de acuerdo al modo de video Modo texto: rectángulo, color inverso Modo grafico: forma de flecha Establece la razón mickey a píxel Razón hor: 8 a 8 Razón Vert: 16 a 8 Establece los limites horizontal y vertical para el puntero máximo y mínimo Establece el umbral de velocidad doble a 64 mickey por segundo Registro Valor Retorna Servicio:00 Registro Valor 0000h, si no está disponible controlador FFFFFh, si esta disponible BX Número de botones del ratón Despliegue del puntero del mouse Servicio utilizado 01,para mostrar el puntero del mouse Registro Servicio:01 Valor Oculta el puntero del mouse Servicio utilizado 02, se utiliza al final de la ejecución del programa.

Registro Servicio:02 Valor Obtiene el estado del botón y la posición del puntero del mouse Servicio utilizado 03, retorna información útil para el manejo del mouse. Registro Valor Retorna Servicio:03 Registro Valor BX Estado de los botones de acuerdo a la posición del bit, como sigue: Bit 0: botón izquierdo, donde 0= arriba, 1= abajo Bit 1: botón derecho, donde 0= arriba, 1= abajo Bit 2: botón central, donde 0= arriba, 1= abajo Bits 3-15: reservados CX Coordenada horizontal: x DX Coordenada vertical: y Nota: Las coordenadas son expresadas en términos de píxeles, aun en modo texto (8 x byte para modo video 03) Establece la posición del puntero del mouse Servicio utilizado 04, coloca el puntero en la nueva posición, ajustando como sea necesario si está fuera de los límites mínimo y máximo. Registro CX DX Servicio:04 Posición horizontal Posición vertical Valor Obtiene información de la pulsación de los botones del mouse Servicio utilizado 05, retorna el estado arriba-debajo de todos los botones, el conteo de las presiones y posición del botón requerido.

Registro Valor Retorna Servicio:05 BX Número del Registro Valor botón: 0 = izquierdo 1 = derecho 2 = central Estado de los botones de a cuerdo a la posición del bit como sigue: Bit 0: botón izquierdo, donde 0= arriba, 1= abajo Bit 1: botón derecho, donde 0= arriba, 1= abajo Bit 2: botón central, donde 0= arriba, 1= abajo Bits 3-15: reservados BX Contador de presiones del botón CX Coordenada horizontal de la última presión del botón DX Coordenada vertical de la última presión del botón Nota: La operación restablece el contador de presiones del botón en cero. Fija los limites horizontales para el puntero del mouse Servicio utilizado 07, fija los límites horizontales mínimo y máximo para el puntero. CX DX Registro Valor Servicio:07 Límite inferior Límite superior Nota: Si el número mínimo es mayor que el máximo, la operación intercambia los números, también la operación mueve al puntero al área nueva. Fija los limites verticales para el puntero del mouse Servicio utilizado 08, fija los límites verticales mínimo y máximo para el puntero. CX DX Registro Valor Servicio:08 Límite inferior Límite superior Nota: Si el número mínimo es mayor que el máximo, la operación intercambia los números, también la operación mueve al puntero al área nueva.

;------------------------------------------------ MANEJO DEL MOUSE EN MODO TEXTO ;------------------------------------------------.MODEL SMALL.STACK 100H.DATA MEN1 DB ' MOUSE NO DETECTADO$'.CODE MAIN PROC FAR ; Protocolo PUSH DS SUB, MOV, @DATA MOV DS, ; Protocolo (End) ; Inicializacion del mouse (begin) CALL INIT_MOUSE CMP,00 JE ERROR CALL SHOW_CURSOR MOV CX, 320 MOV DX, 240 CALL PUT_CURSOR JMP EXIT ; Inicializacion del mouse (end) ERROR: LEA DX,MEN1 CALL MENSAJE CALL LEE JMP SALTE EXIT: CALL LEE CALL OCULTA_MOUSE CALL RESTAURA SALTE: CALL SAL_DOS MAIN RESTAURA PROC MOV AH, 00H MOV AL, 03H INT 10H RESTAURA SAL_DOS PROC MOV AH,4CH SAL_DOS INIT_MOUSE MOV, 00H INIT_MOUSE

OCULTA_MOUSE MOV, 02H OCULTA_MOUSE SHOW_CURSOR MOV, 01H SHOW_CURSOR PUT_CURSOR MOV, 04H PUT_CURSOR END MAIN LEE PROC MOV AH,01 LEE MENSAJE PROC MOV AH,09H MENSAJE

;------------------------------------------------ MANEJO DEL MOUSE EN MODO GRAFICO ;------------------------------------------------.MODEL SMALL.STACK 100H.DATA MEN1 DB 'NO MOUSE DETECTADO$'.CODE MAIN PROC FAR ; Protocolo PUSH DS SUB, MOV, @DATA MOV DS, ; Protocolo (End) CALL GRAFICO ; Inicializacion del mouse CALL INIT_MOUSE CMP,0000 JE ERROR CALL SHOW_CURSOR MOV CX, 620 MOV DX, 410 CALL PUT_CURSOR JMP EXIT ERROR: LEA DX,MEN1 CALL MENSAJE CALL LEE JMP SALTE EXIT: CALL LEE CALL OCULTA_MOUSE SALTE: CALL RESTAURA CALL SAL_DOS MAIN RESTAURA PROC MOV AH, 00H MOV AL, 03H INT 10H RESTAURA SAL_DOS PROC MOV AH,4CH SAL_DOS GRAFICO ; Inicializa modo grafico 640x480x16 (Begin) MOV AH, 00H MOV AL, 12H

INT 10H ; Inicializa modo grafico 640x480x16 (End) GRAFICO INIT_MOUSE MOV, 00H INIT_MOUSE OCULTA_MOUSE MOV, 02H OCULTA_MOUSE SHOW_CURSOR MOV, 01H SHOW_CURSOR PUT_CURSOR MOV, 04H PUT_CURSOR END MAIN LEE PROC MOV AH,01 LEE MENSAJE PROC MOV AH,09H MENSAJE

;------------------------------------------------ MUESTRA LAS COORDENADAS DE LA POSICIÓN ACTUAL DEL PUNTERO DEL MOUSE USO DE INT 21, SERVICIO 40 ;------------------------------------------------.MODEL SMALL.STACK 100H.DATA XB DW 00 YB DW 00 VALASC DW 00 MEN1 DB 'Mouse no disponible...$' DESPDATO LABEL BYTE XMEN DB 'x= ' XASCII DW? YMEN YASCII DW? YXI DW 00 YXF DW 00 FPP DB 00.CODE MAIN DB ' y= ' PROC FAR ;PROTOCOLO PUSH DS SUB, MOV,@DATA MOV DS, MOV ES, ;FIN PROTOCOLO CALL INITTEXT MOV FPP,3EH MOV YXI,00H MOV YXF,184FH CALL TEXTBACKGROUND CALL I_MOUSE CMP,00 JE ERROR CALL M_MOUSE MOV YXI,1843H OTRO: CALL P_MOUSE ; SERVICIO 03 CMP BX,01 JE EXIT CALL GOTOXY MOV,XB CALL CONV MOV,VALASC MOV XASCII, MOV,YB CALL CONV MOV,VALASC MOV YASCII, CALL DESPLIEGA ;SERVICIO 40 DE LA INT 21 JMP OTRO ERROR: LEA DX,MEN1 CALL PRINTF EXIT: CALL F_MOUSE MOV FPP,07H MOV YXI,00H MOV YXF,184FH

MAIN CALL TEXTBACKGROUND MOV,4C00H I_MOUSE I_MOUSE M_MOUSE M_MOUSE C_MOUSE C_MOUSE F_MOUSE MOV,00 MOV,01H MOV,04H MOV,02H F_MOUSE POP C_CURSOR C_CURSOR P_MOUSE MOV AH,02 MOV BH,00 MOV DH,00 MOV DL,25 INT 10H ;La subrutina devuelve XB,YB SAL3: MOV,03 ;ORNA BX = Edo DE LOS BOTONES Y ;ORNA CX= COORD X, DX= COORD Y CMP BX,01 ; SI SE PULSO BOTON IZQ. JE SAL1 MOV,CX ; AUXILIAR DE LA COORDENADA HOR MOV CL,3 SHR,CL ;DIVIDE COORDENDA X / 8 SHR DX,CL ;DIVIDE COORDENDA Y / 8 MOV CX, ;RECUPERANDO LA COORDENADA PARA MODO TEXTO CMP CX,XB ; si EXISTE MOVIMIEMTO?

JNE SAL2 ; SI CMP DX,YB JE SAL3 ;NO SAL2: MOV XB,CX ;REFRESCO DE COORDENADAS MOV YB,DX SAL1: P_MOUSE CONV MOV VALASC,2020H ;LIMPIANDO VALASC MOV CX,10 ; FACTOR DE DIVISIÓN LEA SI,VALASC+1 CMP,CX ; CONTIENE LA COORDENADA JB C1 ; SI ES MENOR DIV CL ; SI MAYOR DIVIDE OR AH,30H ;RESIDUO MOV [SI],AH DEC SI C1: OR AL,30H ;COCIIENTE MOV [SI],AL CONV DESPLIEGA ; Servicio 40h :manejador de archivo para despliegue en pantalla DESPLIEGA MOV AH,40H MOV BX,01 ;Número de dispositivo: 1 = pantalla MOV CX,11 ;Total de caracteres a desplegar LEA DX,DESPDATO ; Area a desplegar INITTEXT MOV AH,00H MOV AL,03H INT 10H INITTEXT PRINTF MOV AH,09H PRINTF TEXTBACKGROUND PUSH BX PUSH CX PUSH DX MOV,0600H MOV BH,FPP MOV CX,YXI MOV DX,YXF

INT 10H POP DX POP CX POP BX TEXTBACKGROUND GOTOXY PUSH BX PUSH DX MOV AH,02H MOV BH,00H MOV DX,YXI INT 10H POP DX POP BX GOTOXY END MAIN