Programación General > ASM (Ensamblador)

 Problemilla Con Bx

(1/1)

tirengarfio:
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.




--- Código: Text ---  .MODEL SMALL  .STACK 100h  .DATA  ; Tomando como origen de coordenadas la esquina superior derecha de la ventana.   six  DB 06h   &#59; Coordenada x de la esquina superior izquierda del cuadrado siy  DB 06h  &#59; Coordenada y de la esquina superior izquierda del cuadrado idx  DB 0Ah  &#59; Coordenada x de la esquina inferior derecha del cuadrado idy  DB 0Ah  &#59; Coordenada y de la esquina inferior derecha del cuadrado    .CODE  INICIO:   mov ax, @data      mov ds, ax    mov bh, six    &#59; *  mov bl, siy  &#59; *   mov ch, idx  mov cl, idy          mov ax, 03h &#59; Peticion para limpiar pantalla  int 10h    mov ah, 02h &#59; colocar el cursor en el vertice superior izquierdo.  mov dh, 06h&#59; y    mov dl, 06h &#59; x  int 10h &#59; interrupcion de video    mov dl, 024h&#59; Escribo el caracter "$"  mov ah, 02h  int 21h    FIN:   mov ah, 4ch  int 21h  end INICIO 
Un saludo

Javi

Eternal Idol:
No miraste muy bien:

VIDEO - SET CURSOR POSITION

AH = 02h
BH = page number
0-3 in modes 2&3
0-7 in modes 0&1
0 in graphics modes
DH = row (00h is top)
DL = column (00h is left)

http://www.ctyme.com/intr/rb-0087.htm

Navegación

[0] Índice de Mensajes

Ir a la versión completa