es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo cambiar el atributo de color a blanco sobre negro.

Quiero usar ah, 9h para escribir un mensaje en la pantalla. Pero cuando limpio la pantalla, el atributo del texto cambia y el texto se vuelve negro sobre negro. ¿A qué valor debo cambiar la variable clean screen proc. para que el texto sea visible? Gracias.

DATASEG
message db 'GAME OVER$'

La función cleanscreen:

proc cleanscreen ; limpia la pantalla
    push cx bx
    mov cx, 2000d
    mov bx, 0
    clean:
        mov [WORD ptr es:bx], 00 ; el valor que debe ser cambiado
        add bx, 2
    loop clean
    pop cx bx
    ret
endp cleanscreen

La llamada en el “main”:

call cleanscreen
mov dx, offset message
mov ah, 9h
int 21h
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para hacer que el texto sea visible después de limpiar la pantalla, el valor que debe cambiarse en el procedimiento “cleanscreen” es “mov [WORD ptr es:bx], 07h”. Este valor establece el atributo de texto en gris claro sobre negro, lo que hace que el texto sea visible en la pantalla. Por lo tanto, el procedimiento “cleanscreen” actualizado debe ser:

    proc cleanscreen ; limpia la pantalla
    push cx bx
    mov cx,2000d
    mov bx,0
    limpiar:
    mov [WORD ptr es:bx],07h
    add bx,2
    loop limpiar
    pop cx bx
    ret
    endp cleanscreen

    Este cambio establece el color del texto en gris claro sobre negro, lo que hace que el texto sea visible en la pantalla después de la limpieza.

Comments are closed.