PROGRAMA 7 COLOR DE FONDO Y COLOR DE TEXTO
Enviado por Blanca Zamorano bernal • 27 de Noviembre de 2020 • Documentos de Investigación • 897 Palabras (4 Páginas) • 99 Visitas
PROGRAMA 7
COLOR DE FONDO Y COLOR DE TEXTO
Introducción
Veremos como se puede modificar el fondo de la pantalla de video del ensamblador, así como el color de texto de cualquier mensaje que enviemos a ella.
Primero debemos saber sobre la interrupción que usaremos:
Interrupción 10h: Que nos permite invocar servicios de video de la ROMBIOS, Manipulando algunas de sus funciones.
Los servicios que nos permite hacer este tipo de cambio de colores son:
02h: Que nos permite controlar la posición de nuestro cursor en la pantalla. Los registros BH, DH Y DL son los que usaremos para indicar la posición en donde debe estar el cursor.
06h: permite inicializar la ventana de video o desplazar su contenido. En este servicio el registro CX indica el pixel donde va a comenzar a cambiar el color y el registro DX indica donde terminara.
Como siguiente punto, debemos saber como es que se representan los colores dentro de nuestro ensamblador.
[pic 1]
Cada uno de los colores al momento de ingresarlos al emulador, podemos representarlo por su parte hexadecimal o binaria:
Los primeros 4 números representa el color que será para el color de la letra, los siguientes 3 representan el color del fondo, el ultimo bit solo es un indicador, si está en 1 el texto completo en pantalla estará parpadeando.
01011110
0: Indicador que nos hará que el texto parpadee o no
101: color de fondo de la pantalla
1110: color del texto en la pantalla
Código ejemplo
.model small
.stack
.data
Nombre db "edith$",10,13
yy DB 12
xx DB 34
.code
mov ax, @data
mov ds, ax
main proc
call color_pantalla
call prosxy
lea dx, nombre
call imprimir
call prosxy2
call salir
color_pantalla PROC
MOV AX,0600H
MOV BH,01011110b
MOV CX,000H
MOV DX,484FH
INT 10H
RET
color_pantalla endp
prosxy proc
MOV AH,02
MOV BH,00
MOV DH,yy
MOV DL,xx
INT 10H
RET
prosxy endp
prosxy2 proc
mov ah,02h
mov bh,00
mov dh,0
mov dl,0
int 10h
ret
prosxy2 endp
...