Hola,
el siguiente codigo imprime inicialmente un simbolo $ en mitad de la pantalla.
Despues, si presionas la letra "i", se imprime otro $ encima del primero, y si presionas de nuevo la "i", se deberia imprimir otro $ encima del segundo $, pero ese tercer $ no se imprime...
¿Por qué?
Bueno, a decir verdad, ese tercer $ se imprime, pero cuando pulso "i" una tercera vez... Mi objetivo es que se imprima cuando le doy a la "i" la segunda vez, no la tercera.
DOSSEG
.MODEL SMALL
.STACK 100h
.DATA
.CODE
INICIO:
mov ax, @data
mov ds, ax
mov ax, 03h; Peticion para limpiar pantalla
int 10h
;funcion de la interrupcion que nos permite posicionarnos
mov ah, 02h; colocar el cursor en una posicion definida
mov dh, 0Ah; fila
mov dl, 019h; columna
int 10h; interrupcion de video
bucle:
mov dl, 024h; Escribo el caracter "$"
mov ah, 02h
int 21h
bucle2:
mov ah, 08h; Leo un caracter del teclado sin reproducirlo en la pantalla.
int 21h
cmp al, 069h; Compruebo si el caracter pulsado es la letra "i".
je arriba
cmp al, 06Bh; Compruebo si el caracter pulsado es la letra "k".
je abajo
jmp bucle2
arriba:
mov ah, 02h; Colocar el cursor en una posicion definida
sub dh, 1
mov dl, 026h; columna
mov bh,0; pagina de video activa generalmente la cero
int 10h
jmp bucle
abajo:
mov ah, 02h; Colocar el cursor en una posicion definida
add dh, 1
mov dl, 026h; columna
mov bh,0; pagina de video activa generalmente la cero
int 10h
jmp bucle
FIN:
mov ah, 4ch
int 21h
end INICIO
Un saludo
JAvi