Programación General > ASM (Ensamblador)
Color Para Modo Texto
fORU-:
hola que tal!!!
quisiera saber como puedo hacerle para utilizar un color diferente para cadena.
digamos:
msg db 'colorRojo',0
msg1 db 'colorAma',0
lo trate con la int 10, que tiene la siguiente estructura:
MOV BH,0eH
MOV CX,0000
MOV DX,184FH
INT 10H
pero no me sirvio. para que se den una idea de lo que intente hacer ahi les va mi
codigo ahi si me pueden echar la mano diciendome que otra interrupcion puedo
usar se los agradeceria.
MODEL small
.STACK 100h
extrn clrscr:near
extrn putchar:near
extrn puts:near
extrn getchar:near
extrn getch:near
extrn gotoxy:near
extrn kbhit:near ; AH=0 si no hay tecla AH=1 si hay tecla; AL=TECLA
LOCALS
.DATA
msg db 'colorR',0
msg1 db 'colorA',0
.CODE
PRIN PROC
mov ax,@data
mov ds,ax
call clrscr
call amar
call getch
mov bh,0fh ;/// coordenadas para
mov bl,1h ;/// para el gotoxy
call gotoxy
call rojo
mov ah,04ch
mov al,0
int 21h
ret
endp
rojo PROC ;//// procedimiento para pintar el mensaje en rojo
MOV BH,0cH
MOV CX,0000
MOV DX,2045H
INT 10H
mov bx,0a00h
mov dx,offset msg
call puts
ret
endp
amar PROC ;/////////////procedimiento para pintar el mensaje en amarillo
MOV BH,0eH
MOV CX,0000
MOV DX,2045H
INT 10H
mov dx,offset msg1
call puts
ret
endp
Toph:
--- Cita de: "fORU-" ---hola que tal!!!
quisiera saber como puedo hacerle para utilizar un color diferente para cadena.
digamos:
msg db 'colorRojo',0
msg1 db 'colorAma',0
lo trate con la int 10, que tiene la siguiente estructura:
MOV BH,0eH
MOV CX,0000
MOV DX,184FH
INT 10H
pero no me sirvio
--- Fin de la cita ---
para que funcione correctamente te hace falta poner mov AX,0600h
para que se te pinte de amarillo:
--- Código: Text ---MOV CX,0000;rango que tendra fondo negro letras amarillas MOV DX,184FH;segun tu programa de 0000 a 184Fmov BH,0Eh;fondo negro letras amarillasmov AX,0600h int 10h
y lo mismo para pintarse de rojo solo que MOV BH,0Ch;fondo negro letras rojas
saludos :hola:
fORU-:
ea ea encontre otra interrupcion es la 10h
mov al,141 ; caracter a pintar
mov ah,09h
mov bh,00h ; numero de pagina por lo regular siempre se esta en al 0
mov bl,0eh ; bl 0=color fondo e=color caracter
mov cx,01h ;numero de veces a mostar el caracter
int 10h
nota:no se ocupa putchar ni puts para desplegar el caracter pintado
fORU-:
--- Cita de: "Toph" ---para que funcione correctamente te hace falta poner mov AX,0600h
para que se te pinte de amarillo:
--- Código: Text ---MOV CX,0000;rango que tendra fondo negro letras amarillas MOV DX,184FH;segun tu programa de 0000 a 184Fmov BH,0Eh;fondo negro letras amarillasmov AX,0600h int 10h
y lo mismo para pintarse de rojo solo que MOV BH,0Ch;fondo negro letras rojas
--- Fin de la cita ---
hola compañera, ahora que me acuerdo nunca le di las gracias, asi que GRACIAS
De Eternal Idol: te lo edito, la proxima no cites tu propio mensaje, solo el de la persona a la cual le queres responder ;)
Eternal Idol:
--- Cita de: "fORU-" --- ea ea encontre otra interrupcion es la 10h
mov al,141 ; caracter a pintar
mov ah,09h
mov bh,00h ; numero de pagina por lo regular siempre se esta en al 0
mov bl,0eh ; bl 0=color fondo e=color caracter
mov cx,01h ;numero de veces a mostar el caracter
int 10h
nota:no se ocupa putchar ni puts para desplegar el caracter pintado
--- Fin de la cita ---
Esa no es otra interrupcion sin un servicio diferente de la misma interrupcion (10h), mas informacion aca:
http://www.ctyme.com/intr/rb-0099.htm
Navegación
[#] Página Siguiente
Ir a la versión completa