Saludos,
el codigo que tengo aqui abajo es el comienzo de un programa que deberia dibujar un cuadrado en la pantalla.
Como se ve, empiezo dibujando el vertice superior izquierdo del cuadrado. El problema es que si pongo las dos lineas del * no me funciona correctamente: el vertice no se me dibuja en la posicion (6,6) (columna, fila) sino en el (0,0).
¿Cual es el problema? He visto la pagina de Brown pero no aparece nada sobre que BX interfiera en las interrupciones que manejo.
.MODEL SMALL
.STACK 100h
.DATA
; Tomando como origen de coordenadas la esquina superior derecha de la ventana.
six DB 06h ; Coordenada x de la esquina superior izquierda del cuadrado
siy DB 06h ; Coordenada y de la esquina superior izquierda del cuadrado
idx DB 0Ah ; Coordenada x de la esquina inferior derecha del cuadrado
idy DB 0Ah ; Coordenada y de la esquina inferior derecha del cuadrado
.CODE
INICIO:
mov ax, @data
mov ds, ax
mov bh, six ; *
mov bl, siy ; *
mov ch, idx
mov cl, idy
mov ax, 03h ; Peticion para limpiar pantalla
int 10h
mov ah, 02h ; colocar el cursor en el vertice superior izquierdo.
mov dh, 06h; y
mov dl, 06h ; x
int 10h ; interrupcion de video
mov dl, 024h; Escribo el caracter "$"
mov ah, 02h
int 21h
FIN:
mov ah, 4ch
int 21h
end INICIO
Un saludo
Javi