Pantalla y letra a color (Turbo assembler)
Programa 1: Cambiar de color la pantalla a verde
Código:
DATOS SEGMENT
MENSAJE DB
'Se ha cambiado el color de la pantalla$'
DATOS ENDS
CODIGO SEGMENT
ASSUME
CS:CODIGO, SS:PILA, DS:DATOS
INICIO:
MOV AH,06H
MOV BH,2FH
MOV CX,0000H
MOV DX,184FH
INT 10H
MOV AH,02H
MOV BH,00H
MOV DX,0000H
INT 10H
MOV AX,DATOS
MOV DS,AX
LEA DX,MENSAJE
MOV AH,9H
INT 21H
MOV AX,4C00H
INT 21H
CODIGO ENDS
END INICIO
Resultado:
Programa 2: Cambiar de color la pantalla mediante opciones
Codigo:
Pila segment stack 'stack' ;Segmento de la pila
db 100h dup (?)
; A partir de la direccion 100 de la pila.
Pila ends
datos segment
titulo db 13,10,' CAMBIAR FONDO
DE PANTALLA ',13,10,'$'
mensaje db 'Presione ENTER si quiere la
pantalla azul ' , ' Si quiere morado, presione 2 ',13,10,' Para salir ', '
Presione cualquier tecla',13,10,'$'
datos ends
codigo segment ;segmento de codigo
assume cs:codigo, ss:pila,
ds:datos
Inicio:
;****************************** PREPARAR PANTALLA
mov ah,0
mov al,3h ; Modo Texto
int 10h ;
Interrupcion de Video
mov ax,0600h ; Limpiar Pantalla
mov bh,0fh ; O Color
de fondo negro, el color de letra blanco
mov cx,0000h
mov dx,184Fh
int 10h
mov ah,02h
mov bh,00
mov dh,00
mov dl,00
int 10h
;****************************** MOSTRAR MENSAJE
mov ax,datos
mov ds,ax
lea dx,titulo
mov ah,9h
int 21h
lea dx,mensaje
mov ah,9h
int 21h
;****************************** CAPTURA DE TECLAS
mov ah,08
; Pausa y captura de datos db espera que el usuario
presiona una tecla
int 21h
cmp al,13
; Verifica al presionar ENTER, el cual tiene un codigo
ascii
je llamarAzul
; Salto Condicional jump equals opcion 1 saltar si es igual a la opcion 1
cmp al,50
; Ascii 50 = numero 2 compara lo que tiene el regisro ah
con el ascii 50 en el reg a1
je llamarMorado
jmp fin
; Si no escoge ni ENTER ni 2, Sale del programa
fin:
; Saca el mensaje por pantalla
mov ax,4c00h
int 21h
llamarAzul:
CALL AZULPROC
llamarMorado:
CALL MORADOPROC
;****************************** STORE PROCEDURE AZUL
AZULPROC PROC NEAR
mov ah,0
mov al,3h ; Modo Texto
int 10h ;
Interrupcion de video
mov ax,0600h ; Limpiar
Pantalla
mov bh,0fh ;
Color de fondo negro, f color de letra blanco
mov cx,0000h
mov dx,184Fh
int 10h
mov ah,02h
mov bh,00
mov dh,00
mov dl,00
int 10h
;//////////////////////////////////////
mov ah,06h
mov bh,1fh ;2fh
mov cx,0000h
mov dx,184fh
int 10h
mov ax,4c00h
int 21h
RET
AZULPROC ENDP
;*****************************************STORED PROCEDURE
MORADO
MORADOPROC PROC NEAR
mov ah,06h
mov bh,5fh
;2fh;3 para azul, 4 para guinda, 5 morado
mov cx,0000h
mov dx,184fh
int 10h
mov ax,4c00h
int 21h
RET
Resultado: