posiciones del cursor en cualquier momento

Búsqueda de ejemplos en Ensamblador
;Autor
;URL

2.datos segment
3.
4.datos ends
5.
6.pila segment stack
7.
8.  db 100 dup('?')
9.
10.pila ends
11.
12.codigo segment
13. assume cs:codigo,ds:datos,ss:pila
14.
15. inicio:
16.          mov ax,datos
17.     mov ds,ax
18.
19.         ;comprobarl la existencia del driver del ratón
20.        
21.          mov ax,0
22.          int 33h
23.          cmp ax,0
24.          je salir
25.        
26.         ;mostrar el cursor
27.        
28.          mov ax,01h
29.          int 33h
30.          
31.      
32.
33.         ; comprobar la pulsación del botón izquierdo
34.
35.
36.  btn_i :  
37.           mov ax,5
38.           mov bx,0
39.           int 33h
40.           cmp bx,1
41.           jae izk
42.           jmp btn_i
43.
44.    
45.
46.  izk :  mov ax,03h
47.         shl cx,3
48.         add cx,1
49.         shl dx,3
50.         add dx,1
51.         mov columna,cx
52.         mov fila ,dx
53.         int 33h
54.      
55.        mov ax,0b800h
56.        mov es,ax
57.        mov byte ptr es:c[fila *160+clumna*2],'A'  ;aqui en principio tengo que pasarle las coordenadas del cursor para mostrar el dato
58.        mov byte ptr es:[fila*160+columna*2+1],00010111b
59.        
60.        mov ax,5
61.        mov bx,0
62.        int 33h
63.        cmp bx,1
64.        jae izk
65.          
66.        jmp salir        
67.
68.          
69.
70.  salir :     mov ax,4ch
71.              int 21h
72.
73.      
74.codigo ends
75.end inicio
76.