• Jueves 28 de Marzo de 2024, 22:16

Autor Tema:  Colores En Ensamblador  (Leído 44636 veces)

pinguinospn

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Colores En Ensamblador
« en: Lunes 28 de Junio de 2004, 19:47 »
0
:ph34r:   Saludos. ya he leido sus mensajes en este foro y me parecio muy interesante por lo cual me registre para aprender de ustedes un poco mas.


Por ejemplo alguien sabe los colores en ensamblador (masm). necesito almenos 6 colores totalemente distintos.

Muchisimas Gracias

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #1 en: Lunes 28 de Junio de 2004, 19:54 »
0
Colores en donde? En consola?

Para que Sistema Operativo?

 :ph34r:  :comp:  :hola:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #2 en: Martes 29 de Junio de 2004, 06:10 »
0
:alien:  :alien:  :alien:  te refieres a que colores se pueden poner de fondo de pantalla y en las letras ????, si es para eso tienes que utilizar las interrupciones de la bios y los colores que yo se que existen son: negro,blanco,azul,rojo y verde, no se si habran otros, estos son los unicos que he visto.

no se si te referias a eso.

si no es eso me avisas   :kicking:
No basta tener buen ingenio; lo principal es aplicarlo bien.

pinguinospn

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #3 en: Martes 29 de Junio de 2004, 16:34 »
0
Hola.

Lo que pasa es que tengo que hacer un programa en ensamblador que me despliegue un menu en el cual pueda escoger uno de los 3 colores de la letra y aparte  uno de los 3 colores del fondo.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #4 en: Martes 29 de Junio de 2004, 18:02 »
0
Para que Sistema Operativo?

 :whistling:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

pinguinospn

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #5 en: Martes 29 de Junio de 2004, 18:50 »
0
para win 98

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #6 en: Martes 29 de Junio de 2004, 18:55 »
0
Estamos hablando de una aplicación de consola o de una de ventanas?

De cualquiera de las dos maneras, siendo para Windows tenes que usar la API.

 :ph34r:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

pinguinospn

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #7 en: Martes 29 de Junio de 2004, 19:04 »
0
Ok. El codigo lo hacemos por medio del block de notas para despues ejecutarlo en el macro assembler.

Ahora el programa se captura en el block de notas el cual tendrá un menu con dos columnas, en la 1ra columna tendra cambiar de color la letra y al mento de presionar un numero de las opciones, se cambiara el color y en ese instante aparecerá otro mensaje pidiendo que se inserte el numero de la segunda columna del menu para que se cambie el color de fondo.

Esta muy dificil?  La verdad soy principiante de Ensamblador.

Gracias por su comprensión.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #8 en: Martes 29 de Junio de 2004, 19:39 »
0
La verdad no te comprendo totalmente, a ver si es así lo que queres hacer:

una aplicación para Windows que tiene dos menues, (por ejemplo File y Edit).

En File tiene que ser por ejemplo de color rojo la letra, la que diga File, Open, Save, etc; y en Edit el fondo tiene que ser de color verde todos los menues.

Es así??

 :comp:  :smartass:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

pinguinospn

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #9 en: Martes 29 de Junio de 2004, 19:49 »
0
No Creo que te estoy confundiendo.

Imaginate.

Tu estas en tu maquina con win 98 y tu vas a escribir el codigo de un x programa en el block de notas. ok

Se captura en block de notas.

Lo que debe hacer ese programa es desplegar un menu que tenga 2 columnas una donde se pueda cambiar el color de la letra y otra donde se cambie el color del fondo.

se ejecuta en masm.

Espero que no te haya confundido mas.

Gracias

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #10 en: Martes 29 de Junio de 2004, 19:51 »
0
Lo que intenta hacer el programa esa cambiar el color de la letra y el fondo del programa block de notas? (notepad.exe)

 :blink:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

pinguinospn

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #11 en: Martes 29 de Junio de 2004, 19:57 »
0
No.  :D

Olvida el notepad.

Tengo que hacer un programa en masm que tenga un menu y con todo lo demas antes dicho cambiar color de letra y fondo.

Esta muy dificil de hacerlo?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #12 en: Martes 29 de Junio de 2004, 20:59 »
0
Me parece que tendrías que hacer menues owner draw, osea que los pintes vos mismo.

 :ph34r:  :comp:  :hola:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #13 en: Jueves 1 de Julio de 2004, 09:48 »
0
:blink: No se porque se han enredado tanto en esto.
pinguinospn el programa que necesitas es bastante sencillo no te preocupes, como te dije tienes que usar las interrupciones de la bios, aqui te pongo un programita que acabo de hacer,te pongo el codigo fuente para que veas que es lo que le tienes que cambiar y el ejecutable para que veas que si funciona.
es un programa sencillo que solo muestra un mensaje en fondo azul y con letras verdes modificalo para hacer el tuyo.
cualquier pregunta aqui seguimos.
si tienes problema para ensamblarlo avisame y te mando mi version del masm.

lamento no haber escrito antes, y haber evitado este enredo, con todo respeto realmente no tengo idea de lo que esta hablando Eternal Idol jamas he usado lo que esta diciendo en ensamblador :alien:
Citar
  datos segment

dibujo  db '                     ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»' ,13,10
           db '                     º        PRESIONE 0 PARA SALIR º',13,10
           db '                     ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ',13,10,'$'
   datos ends

pila segment stack

        db 128 dup ('pila')

                   pila ends
codigo segment

                assume cs:codigo, ss:pila, ds:datos




    PANTA  PROC NEAR              
 
                PUSH AX          ;la clave esta en esta rutina, por eso solo te voy
                PUSH BX          ; a explicar esta
   PUSH CX
   PUSH DX
   MOV CX,0
   MOV DX,2479h
   MOV BH,12h   ;es justamente aqui en BH que se especifica eso   
                                     ;ese 12h indica 1=fondo azul 2=letras verdes
                                ; si fuera 21h seria 2=fondo verde =letras azules
   ;4= es rojo 0=es negro , si pones 04 fondo negro letras rojas
                ;7 = es blanco
                MOV AX,0600H
                INT 10h         
   POP DX
   POP CX
   POP BX
   POP AX
        RET
   PANTA  ENDP

    CURSOR PROC NEAR
        PUSH AX
        PUSH BX
        PUSH CX
        MOV BH,00
        MOV AH,02
        INT 10h
        POP CX
        POP BX
        POP AX
        RET
    CURSOR ENDP
 
    STRING PROC NEAR
        PUSH AX
        PUSH BX
        PUSH CX
        MOV AH,09
        INT 21h
        POP CX
        POP BX
        POP AX
        RET  

     STRING ENDP

     PROGRA PROC FAR

INICIO: push ds
        sub ax,ax       ;para regresar al sistema operativo
        push ax

   
       mov ax,datos
       mov ds,ax       ;inicializa el ds al segmento de datos
 
        MOV AX,0000
        MOV BX,0000
        MOV CX,0000
        MOV DX,0000
      
        CALL PANTA
        MOV DX,0600h
        CALL CURSOR
        LEA DX,dibujo
        CALL STRING
        MOV AH,01
        INT 21h
        CMP AL,30h
        jz fin
        JMP INICIO
fin:    MOV AX,4C00h
        INT 21h
     PROGRA ENDP

codigo ends

end PROGRA


END    

adios y hasta pronto  :hola:

 :comp:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
No basta tener buen ingenio; lo principal es aplicarlo bien.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #14 en: Jueves 1 de Julio de 2004, 10:44 »
0
Programaste para Windows alguna vez en ensamblador?

Porque me parece que eso no es código de 32 bits ...

 :whistling:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

pinguinospn

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #15 en: Jueves 1 de Julio de 2004, 18:11 »
0
Muchisimas Gracias a los Dos  :D

Saben ustedes demasiado  :comp:

Mil Gracias

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #16 en: Viernes 2 de Julio de 2004, 08:15 »
0
pinguinospn me alegro que te sirviera el programa y como ves Eternal Idol eso es lo que necesitaba el necesitaba un programa para microprocesador 8086 que es de 16 bits ¿a que horas dijo el que necesitaba uno de 32 bits?  :alien: y  como no es mi intencion iniciar una discucion, ya que no tengo tiempo para ello  doy por cerrado el tema.


adios y cuidense  :hola:



 :hippi:
No basta tener buen ingenio; lo principal es aplicarlo bien.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #17 en: Viernes 2 de Julio de 2004, 08:45 »
0
Cita de: "pinguinospn"
para win 98
En esa misma frase.

 :ph34r:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

DarkSombra

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #18 en: Miércoles 21 de Julio de 2004, 07:56 »
0
:kicking:

Joer q mantas Hay tan dos haber q pex!! Ha el sistema operativo no importa es la configuracion del bios es decir para SO 8082

FUNC_CICL PROC NEAR                          ;AVANZA ATRAVEZ DE LA PANTALLA
             MOV BH,71H                             ;BLANCO SOBRE AZUL
             MOV CX,0000  
             MOV DX,184FH                          ;PANTALLA ENTERA
             INT 10H
             RET
FUNC_CICL ENDP
 :scream:
 :lightsabre:
COLOR PROC NEAR
     MOV AX,0600H
     CALL RECORRIDO
     RET
COLOR ENDP

RECORRIDO PROC NEAR
       MOV BH,71H            ;GRIS
       MOV CX,0000
       MOV DX,184FH         ;PANTALLA COMPLETA
       INT 10H
       RET
RECORRIDO ENDP

DarkSombra

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #19 en: Miércoles 21 de Julio de 2004, 08:00 »
0
:kicking:

Joer q mantas Hay tan dos haber q pex!! Ha el sistema operativo no importa es la configuracion del bios es decir para SO 8086

FUNC_CICL PROC NEAR                          ;AVANZA ATRAVEZ DE LA PANTALLA
             MOV BH,71H                             ;BLANCO SOBRE AZUL
             MOV CX,0000  
             MOV DX,184FH                          ;PANTALLA ENTERA
             INT 10H
             RET
FUNC_CICL ENDP
 :scream:
 :lightsabre:
COLOR PROC NEAR
     MOV AX,0600H
     CALL RECORRIDO
     RET
COLOR ENDP

RECORRIDO PROC NEAR
       MOV BH,71H            ;GRIS
       MOV CX,0000
       MOV DX,184FH         ;PANTALLA COMPLETA
       INT 10H
       RET
RECORRIDO ENDP

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #20 en: Miércoles 21 de Julio de 2004, 11:32 »
0
Repito la pregunta pero ahora a vos DarkSombra, programaste para Windows alguna vez en ensamblador?

Que es el SO 8086?

No creo que Windows te permita un acceso directo al hardware y usar interrupciones en un programa en ring 3.

 :ph34r:  :whistling:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

ORDENALPHABETIX

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #21 en: Sábado 21 de Agosto de 2004, 14:14 »
0
Buenas,


A ver, haya paz. Estoy con [Eternal Idol]. No tenemos que mezclar cosas. Por un lado esta la plataforma/micro sobre el que vamos a programar. Todos son x86, pero luego hay matices:

- 8086/880186/80286 no pueden manejar instrucciones de 32 bits. Sistema operativo habitual: MS-DOS (incluyo Windows 3.X aunque no viene al cuento)

- 80386/80486/Pentium /II/III/IV/AMD Athlon/AMD Athlon XP, etc. son procesadores que si soportan instrucciones de 32 bits. Sistema operativo habitual Windows (95/98/98SE/ME/NT/XP) aunque tambien OS/2 y Linux.

Sobre el sistema operativo, ha dejado bien claro que es Windows 98. Sobre este sistema operativo no se pueden lanzar INT XX como quien no quiere la cosa, puesto que en modo claro, "te manda al carajo". Hay que emplear la API de Windows que son un conjunto se funciones que realizan operaciones en Windows como en MS-DOS se utilizan las INT 21 y demas. Ademas, se han de seguir unas pautas de inicio y final de programa que no se han de realizar en MS-DOS.
-----------------------------------------------------------------------------------------

Respecto al problema original, tampoco termino de comprender lo que quieres realizar.  A ver si es esto: Poder capturar un texto de un programa como puede ser el Wordpad y por medio del programa escrito en ensamblador, por medio de un menu, cambiar el color de fondo, etc. del texto capturado. No se si me habre equivocado, pero si es esto, ¿para que programar algo que el propio Wordpad ya hace?

    Un saludo, sin acritud... :blink:

ORDENALPHABETIX

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #22 en: Sábado 21 de Agosto de 2004, 14:34 »
0
Sobre el codigo que has publicado [DarkSombra], pues que quieres que te diga....¿ya hace algo?


FUNC_CICL PROC NEAR ;AVANZA ATRAVEZ DE LA PANTALLA
MOV BH,71H ;BLANCO SOBRE AZUL
MOV CX,0000
MOV DX,184FH ;PANTALLA ENTERA
INT 10H
RET
FUNC_CICL ENDP

COLOR PROC NEAR
MOV AX,0600H
CALL RECORRIDO
RET
COLOR ENDP

RECORRIDO PROC NEAR
MOV BH,71H ;GRIS
MOV CX,0000
MOV DX,184FH ;PANTALLA COMPLETA
INT 10H
RET
RECORRIDO ENDP


¿Como se come esto? Lo puedes meter todo en un solo PROC, que no avanza por la pantalla, si no que:


    INT 10H Función 06H  
    Desplazar líneas de texto hacia arriba
    LLAMADA:

        AH = 06H
        AL = Número de líneas a desplazar. Si AL=0, se borra toda la ventana seleccionada mediante los registros CX y DX
        BH = Atributo a usar en las líneas borradas.
        CH = Línea donde comienza la ventana de texto.
        CL = Columna donde comienza la ventana de texto.
        DH = Línea donde acaba la ventana de texto.
        DL = Columna donde acaba la ventana de texto.

    DEVUELVE:

        NADA.

    EFECTO:
    Desplaza hacia arriba un número determinado de líneas en la ventana especificada mediante los registros CX y DX. Las líneas desplazadas, quedan vacías, rellenándose con blancos. El color utilizado en estas líneas vacías se indica mediante el registro BH.



No se trata de copiar y pegar un texto sin sentido.      :scream:

Mr_Kracker

  • Nuevo Miembro
  • *
  • Mensajes: 10
    • Ver Perfil
Re: Colores En Ensamblador
« Respuesta #23 en: Domingo 22 de Agosto de 2004, 03:00 »
0
:lightsabre:  Tanto lio para cambiar el color y la fuente mira en los Tutoriales de Iczelion sobre Programación en Ensamblador para Win32, si no me equivoco en el tuto nº03 o 04 hasta la respuesta a tu interrogante aqui te pongo el link de los tutos:

http://mipagina.cantv.net/numetorl869/tut_es.htm


y en los ejemplos que vienen con el masm alli tambien puedes encontrar como cambiar el color de fondo de la pantalla de tu exe, menus con iconos y cosas por el estilo, dales una ojeada

saludos:
 :angry: