jueves, 15 de diciembre de 2011

Codigo Ensambladror

Este código te muestra las coordenadas de donde se encuentra el cursor al dar click sobre el determinada área de trabajo.

________________________________
org 0100h

jmp inicio
bot dw ?
col dw ?
ren dw ?

numero macro num
mov ax,num ;AX=999d=03E7h
mov bl,100d ;bl=divisor
div bl ;AL=resultado entero=9d
;AH=residuo entero=99d
mov dl,al ;DL=9d
add dl,30h ;DL=39h
push ax ;AX=6309h
mov ah,02h
int 21h ;Se despliega el primer simbolo '9'
pop ax ;se recupera en Ax su valor, osea 6309h
shr ax,8 ;AX=0063h=99d
mov bl,10d
div bl ;AH=9
;AL9
mov dl,al
add dl,30h
push ax
mov ah,02h
int 21h ;Se despliega el segundo simbolo '9'
pop ax
shr ax,8
mov dl,al
add dl,30h
mov ah,02h
int 21h ;Se despliega el tercer simbolo '9'
endm
pos macro c r
mov ah,02h
mov bh,0 ;Numero de pagina de despliegue
mov dh,r ;DH=renglon
mov dl,c ;DL=columna
int 10h
endm

;Inicio del Programa Principal
inicio:
call inigraph ;Iniciliza los graficos
call prende ;Prende el Puntero del Raton
eti4:
mov ax,3d
int 33h ;Detecta coordenadas y boton
mov bot,bx
mov col,cx
mov ren,dx
cmp bot,1d
jne eti4

pos 30 30
numero col
mov ah,02d
mov dl,' '
int 21h
numero ren
jmp eti4

fin:
call apaga
call closegraph
int 20h
;Fin del Programa Principal


;Inicio de los Procedimientos

inigraph proc
mov ah,00h ;Funcion 0 de la INT 10H
mov al,18d ;18=resolucion 640x480 pixeles
int 10h ;Inicializa los graficos
ret
endp
closegraph proc
mov ah,00h
mov al,3d ;3=resolucion 80x25 (modo texto)
int 10h ;Devuelve la pantalla a modo TEXTO
ret
endp
prende proc
mov ax,1d
int 33h ;Prende el puntero del raton
ret
endp
apaga proc
mov ax,2d
int 33h ;Apaga el puntero del raton
ret
endp


= LABETE Prototyp3 =