Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: hassuni en 9 Diciembre 2012, 00:18 am



Título: [DUDA]¿Que tipo de programas se pueden crear con ensamblador?
Publicado por: hassuni en 9 Diciembre 2012, 00:18 am
Pues veo que la programacion de ensamblador es bastante rara pero quiero aprender un poco como hobbie asi que quisiera saber que tipo de programas se pueden hacer con ella.

Vi por internet y solo veo que se crear registros o algo asi pero no entiendo, para que sirve y que clase de programas son, osea, cuales son sus funciones.

Ayuda porfavor y mil gracias :D.


Título: Re: [DUDA]¿Que tipo de programas se pueden crear con ensamblador?
Publicado por: Ferno en 9 Diciembre 2012, 00:35 am
Cualquier tipo de programas.
Basta saber que, por ejemplo, un compilador traduce código de alto nivel a Assembly para saber que, por ende, todos los programas que codeás podés hacerlo también en Assembly (obviamente, te cuesta más, puesto que no es tan amigable como un lenguaje de alto nivel. Pero tienes el control cuasi-absoluto de todo :) )


Título: Re: [DUDA]¿Que tipo de programas se pueden crear con ensamblador?
Publicado por: hassuni en 9 Diciembre 2012, 00:38 am
Cualquier tipo de programas.
Basta saber que, por ejemplo, un compilador traduce código de alto nivel a Assembly para saber que, por ende, todos los programas que codeás podés hacerlo también en Assembly (obviamente, te cuesta más, puesto que no es tan amigable como un lenguaje de alto nivel. Pero tienes el control cuasi-absoluto de todo :) )

mm bueno gracias y disculpa la molestia pero me podrias dar algun ejemplo de programa hecho en ensamblador? y como es que se copila? vi un video que decia que era poniendo en el CMD creo que era MSAM o algo asi y el nombre del archivo.asm y luego se creaba el log, luego poniendo link el nombre del archivo.asm y se creaba un .exe y poniendo debug y el nombre del archivo.exe salia algo que no entiendo para que sirve, salian unos codigos que no pude ver bien porque el video estaba en baja calidad.

Disculpa las molestias pero si me puedes ayudar te agradeceria mucho :)


Título: Re: [DUDA]¿Que tipo de programas se pueden crear con ensamblador?
Publicado por: Aberroncho en 15 Diciembre 2012, 12:56 pm
En ensamblador se puede programar cualquier programa: Sistemas operativos, herramientas ofimáticas, juegos, bases de datos, etc.

El problema es que programar en ensamblador requiere mucho conocimiento de lo que estás haciendo, mucho tiempo, y luego es muy costoso de depurar y mantener. Generalmente se programa en lenguajes de más alto nivel como C, C++ o Java, y en ensamblador se programa únicamente aquellas partes críticas que requieren una gran optimización de código: drivers, algunas rutinas críticas de los motores gráficos y cosas así.

A día de hoy creo que nadie en su sano juicio se plantea programar un juego o una aplicación íntegramente en ensamblador.

Simplificando, en un lenguaje de programación alto nivel cada instrucción del lenguaje de programación se transforma en varias instrucciones del procesador. En lenguaje ensamblador una instrucción del lenguaje se corresponde únicamente con una instrucción del procesador. Algo tan sencillo en lenguaje C como escribir una palabra en pantalla, que es 'printf( "Hola" )', en ensamblador requiere varias líneas de código.

Sobre lo que viste en el vídeo:
  • El archivo ".asm" es un archivo de texto con el programa fuente en ensamblador. El fuente de un programa (en cualquier lenguaje) es el archivo que el programador escribe con las instrucciones del programa

  • El MSAM al que llamaban pasando como parámetro el archivo ".asm" es el compilador de ensamblador. El programa encargado de traducir el archivo ".asm" a los 0 y 1 que es capaz de entender el procesador (el código máquina). Lo de llamar primero al CMD es para abrir una consola en Windows y poder trabajar en la línea de comandos.

    Estos dos pasos son iguales en todos los lenguajes de programación compilados: el programador escribe un archivo de texto con las instrucciones el programa, y un compilador lo traduce al código máquina para que el procesador lo entienda.

  • El ".exe" creado es un archivo ejecutable que ya podrías ejecutar en tu PC. Lo de poner "debug" y el nombre del archivo ".exe" es para depurarlo y poder corregir los errores más fácilmente. Los "debug" son programas que te permiten ir ejecutando otros programas paso a paso. Puedes hacer un seguimiento instrucción a instrucción de por donde va ejecutando el programa y que valores van tomando las variables.


Viendo tus post de este hilo yo diría que estás un poco verde para programar en ensamblador. Antes de meterte con el ensamblador deberías aprender primero a programar en un lenguaje de alto nivel para coger la lógica de la programación, y aprender sobre arquitectura de ordenadores y procesadores. En ensamblador no se puede programar sin tener una base de arquitectura de ordenadores y procesadores.


Título: Re: [DUDA]¿Que tipo de programas se pueden crear con ensamblador?
Publicado por: Weeken en 23 Diciembre 2012, 17:55 pm
En ensamblador se puede programar cualquier programa: Sistemas operativos, herramientas ofimáticas, juegos, bases de datos, etc.

El problema es que programar en ensamblador requiere mucho conocimiento de lo que estás haciendo, mucho tiempo, y luego es muy costoso de depurar y mantener. Generalmente se programa en lenguajes de más alto nivel como C, C++ o Java, y en ensamblador se programa únicamente aquellas partes críticas que requieren una gran optimización de código: drivers, algunas rutinas críticas de los motores gráficos y cosas así.

A día de hoy creo que nadie en su sano juicio se plantea programar un juego o una aplicación íntegramente en ensamblador.

Simplificando, en un lenguaje de programación alto nivel cada instrucción del lenguaje de programación se transforma en varias instrucciones del procesador. En lenguaje ensamblador una instrucción del lenguaje se corresponde únicamente con una instrucción del procesador. Algo tan sencillo en lenguaje C como escribir una palabra en pantalla, que es 'printf( "Hola" )', en ensamblador requiere varias líneas de código.

Sobre lo que viste en el vídeo:
  • El archivo ".asm" es un archivo de texto con el programa fuente en ensamblador. El fuente de un programa (en cualquier lenguaje) es el archivo que el programador escribe con las instrucciones del programa

  • El MSAM al que llamaban pasando como parámetro el archivo ".asm" es el compilador de ensamblador. El programa encargado de traducir el archivo ".asm" a los 0 y 1 que es capaz de entender el procesador (el código máquina). Lo de llamar primero al CMD es para abrir una consola en Windows y poder trabajar en la línea de comandos.

    Estos dos pasos son iguales en todos los lenguajes de programación compilados: el programador escribe un archivo de texto con las instrucciones el programa, y un compilador lo traduce al código máquina para que el procesador lo entienda.

  • El ".exe" creado es un archivo ejecutable que ya podrías ejecutar en tu PC. Lo de poner "debug" y el nombre del archivo ".exe" es para depurarlo y poder corregir los errores más fácilmente. Los "debug" son programas que te permiten ir ejecutando otros programas paso a paso. Puedes hacer un seguimiento instrucción a instrucción de por donde va ejecutando el programa y que valores van tomando las variables.


Viendo tus post de este hilo yo diría que estás un poco verde para programar en ensamblador. Antes de meterte con el ensamblador deberías aprender primero a programar en un lenguaje de alto nivel para coger la lógica de la programación, y aprender sobre arquitectura de ordenadores y procesadores. En ensamblador no se puede programar sin tener una base de arquitectura de ordenadores y procesadores.


excelente respuesta  :)