Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ensamblador

Estas en el tema de Ensamblador en el foro de Programación General en Foros del Web. que tal, bueno pues, ya estoy apunto de salir a vacaciones de verano, y ahora si estoy decidido a aprender ensamblador como Dios manda, ya ...
  #1 (permalink)  
Antiguo 05/05/2005, 01:56
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Ensamblador

que tal,
bueno pues, ya estoy apunto de salir a vacaciones de verano, y ahora si estoy decidido a aprender ensamblador como Dios manda, ya que con los proyectos de la escuela en realidad nunca aprendi y ya no me acuerdo (ni siquiera como hacer un hola mundo de ninguna manera).

Trabajo bajo windows, y tengo algunas dudas (no pienso hacer ports a linux).:

-Que me recomiendan mas, MASM o NASM? y por que?. (quiero que sean EXE, no COM).
- Me recomiendan que use algun IDE como RadAsm o visualAsm , o simplemente trabajar con mi poderosísimo Notepad? y por que?
-Tengo el libro de "Ensamblador para DOS,Linux y Windows" (editorial anayamultimedia),y he visto los tutoriales de iczelion y "el universo digital del....." (http://atc.ugr.es/docencia/udigital/index.html), creen que con eso sea suficiente para un novato como yo?

En general mi objetivo final de aprender ASM no es hacer todo con el (claro que si quiero aprenderlo "bien"), sino porderlo mezclar con C/C++ a la hora de hacer programas, para poder optimizar al maximo mi codigo, y poder entender mas que es lo que realmente esta pasando.

Espero sus recomendaciones,
gracias de antemano.
  #2 (permalink)  
Antiguo 05/05/2005, 02:22
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
MASM, por MASM32 mas que nada, un 'package' con todo lo que necesitas para programar aplicaciones 100% asm para Windows.

Si vas a trabajar en Linux te recomiendo que aprendas NASM que esta disponible para MS-DOS, Linux y Windows.

Notepad o Visual Studio, yo suelo editar con el Visual Studio, claro que no es un RAD para eso

El libro esta muy bien para empezar, yo lo tengo, pero los capitulos de Windows y Linux son bastante cortos. Para Windows si le sumas los tutoriales de Iczelion y algunas investigaciones propias vas a estar bastante bien, para Linux no se porque no es mi campo.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 05/05/2005, 02:42
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
muchas gracias por la pronta respuesta, pero ahora me surgen otras dudas:

Cita:
Iniciado por Eternal Idol
MASM, por MASM32 mas que nada, un 'package' con todo lo que necesitas para programar aplicaciones 100% asm para Windows.
que tan dificil es portar los codigos hechos en NASM a MASM (bajo windows claro), ya que en el libro que comente (que tu tambien tienes) , y del cual es con el que voy a empezar, los ejemplos vienen en NASM bajo DOS. Para alguien que como quien dice no sabe nada, es "dificil" portarlos a MASM?, que tanto varia?

Cita:
Iniciado por Eternal Idol
Notepad o Visual Studio, yo suelo editar con el Visual Studio, claro que no es un RAD para eso
con visual studio puedes hacer que se distingan los colores de las palabras reservadas?,si es asi, como?.
Es que a mi me gusta como se ve, me facilita la lectura del codigo . (y mas como apenas estare reaprendiendo jeje).

Saludos,
  #4 (permalink)  
Antiguo 05/05/2005, 03:16
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Cita:
Iniciado por blackwind
que tan dificil es portar los codigos hechos en NASM a MASM (bajo windows claro), ya que en el libro que comente (que tu tambien tienes) , y del cual es con el que voy a empezar, los ejemplos vienen en NASM bajo DOS. Para alguien que como quien dice no sabe nada, es "dificil" portarlos a MASM?, que tanto varia?
No demasiado, solo cambian algunas cosas en la sintaxis.

Cita:
Iniciado por blackwind
con visual studio puedes hacer que se distingan los colores de las palabras reservadas?,si es asi, como?.
Es que a mi me gusta como se ve, me facilita la lectura del codigo . (y mas como apenas estare reaprendiendo jeje)
http://msdn.microsoft.com/library/de...sInVisualC.asp


Con eso lo maximo que consegui fue tener syntax highlite en archivos .c/.cpp con algunos opcodes tipo push, pop, mov, ret, call. Hay que hacer un archivo con un 'keyword' por linea y ponerlo en donde este devenv.exe, bueno ahi esta explicado.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 05/05/2005, 06:08
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
¿Ahora te metes con ASM? Hombre, mezclar ASM con C/C++ es en casos muy especiales... proyectos grandes, etc... Realmente te diría que no gastases más tiempo en ASM del que gastes en C/C++.
  #6 (permalink)  
Antiguo 05/05/2005, 06:30
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Ahora estoy haciendo un driver en asm
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 05/05/2005, 10:31
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Jejeje. Asm es muy poderoso. Desafortunadamente no se asm para pc x86 solo para gb-z80, y pues la verdad con ese ensamblador es muy facil tener el control de todo, la desventaja es que tienes que conocer mcho mas a fondo tu PC en este caso x86.
Hay un excelente tutorial en ingles que te enseña TODO sobre ensamblador por si te interesa: http://webster.cs.ucr.edu/
Es un libro que se publica en linea dode te dicen un buen de cosas intereantes de ASM.

De todas maneras tambien te recomiendo el libro: "Los Microprocesadores Intel. Arquitectura, programacion e interfaz de los procesadores 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, Pentium Pro y Pentium II." Quinta Edicion Editorial Prentice HALL(Pearson Education). Seguro que lo encuentras, si no, esta tambien su version en ingles en alguna libreria de libros en ingles.
Este libro te explica muy muy a fondo todo sobre los cpus, hasta como pudedes usarlos para poder armar tu propio dispositivo, como trabajn todos los purtos de tu PC(AGP, PCI, USB, etc etc)
Te enseña ensabladro de 16 y 32 bits. Te enseña como combinar ensablador con C/C++ usando Visual Studio y mil cosas mas.

Espero que te sirva.

Saludos

PD: Concuerdo con tu firma, asi que maxextreme, cualquies "tu, imbecil, no sabes" es perdida de tiempo para ti.....
  #8 (permalink)  
Antiguo 05/05/2005, 13:36
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
gracias por el link. Parece que es lo que hare, o si no, usar algun editor visual especial para ASM (el RADAsm se ve muy bueno).
Por cierto, no creen que en visual studio deberian de incluir tambien su "visual asm" ?? , estaria bueno (creo).

Cita:
Iniciado por MaxExtreme
¿Ahora te metes con ASM? Hombre, mezclar ASM con C/C++ es en casos muy especiales... proyectos grandes, etc...
no necesariamente. Hace como 2 semanas, cuando estaba haciendo mi miniversion de libreria 3D para una tarea y leyendo tutoriales sobre eso, en casi todos usaban ASM, sobre todo para optimizar algunos algoritmos como el trazo de lineas. Y eso que era algo muy pequeño. Y la verdad es que no entendi que hacian, desde ese momento decidi que debo aprender ASM bien, sobre todo si me quiero dedicar a esto (programacion en 3D).

Cita:
Iniciado por Instru
Hay un excelente tutorial en ingles que te enseña TODO sobre ensamblador por si te interesa: http://webster.cs.ucr.edu/
gracias por el link Instru, esta muy bueno, ya lo puse en favoritos

Por cierto, una duda mas
Me dijiste (eternal idol) que usara MASM en lugar de NASM, sobre todo por el paquete de MASM32, ya lo baje, pero cual es la ventaja de ese sobre NASM?, que hace o que tiene que NASM no tenga?
  #9 (permalink)  
Antiguo 05/05/2005, 13:57
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Cita:
Iniciado por blackwind
gracias por el link. Parece que es lo que hare, o si no, usar algun editor visual especial para ASM (el RADAsm se ve muy bueno).
Por cierto, no creen que en visual studio deberian de incluir tambien su "visual asm" ?? , estaria bueno (creo).
Si, no estaria mal, pero como ya sabes Microsoft apunta a .NET lamentablemente y no a assembly.

Cita:
Iniciado por blackwind
Por cierto, una duda mas
Me dijiste (eternal idol) que usara MASM en lugar de NASM, sobre todo por el paquete de MASM32, ya lo baje, pero cual es la ventaja de ese sobre NASM?, que hace o que tiene que NASM no tenga?
MASM32 es un paquete que tiene (practicamente) todas las definiciones que vienen en el SDK de Windows ya sean, estructuras, constantes o funciones.
Si conseguis MASM tambien podes escribirlas, una a una a mano, a veces lo hago para proyectos chicos pero es bastante cansador.

Por ejemplo para cada una de las funciones de la API de Windows tendrias que hacer algo asi para poder llamarlas con invoke:

GetWindowsDirectoryA PROTO :DWORD, :DWORD

En MASM32 vienen archivos .inc que son como el equivalente a los .h del SDK.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #10 (permalink)  
Antiguo 05/05/2005, 14:51
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
Cita:
Iniciado por blackwind
Y la verdad es que no entendi que hacian, desde ese momento decidi que debo aprender ASM bien, sobre todo si me quiero dedicar a esto (programacion en 3D).
El problema es que para programar en 3D no necesitas ASM tú solo, porque para eso ya hay gente muy metida en ello que programa las partes claves de la librería. Tú debes manejar la librería, no hacerla. Cierto que es bueno saber cómo va, pero o te dedicas a programar sobre una buena librería como Direct3D o te metes a ASM como profesional para eso.
  #11 (permalink)  
Antiguo 05/05/2005, 17:04
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Muchas gracias por las respuestas Eternal Idol.

Cita:
Iniciado por MaxExtreme
El problema es que para programar en 3D no necesitas ASM tú solo, porque para eso ya hay gente muy metida en ello que programa las partes claves de la librería. Tú debes manejar la librería, no hacerla. Cierto que es bueno saber cómo va, pero o te dedicas a programar sobre una buena librería como Direct3D o te metes a ASM como profesional para eso.
Si, pero es que quiero tener al menos los conceptos basicos de todas las areas (incluso las que no tienen que ver con programacion), y ya despues me especializare en alguna, ya que si no, no me daria tiempo.

Saludos.
  #12 (permalink)  
Antiguo 05/05/2005, 23:28
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Cita:
Iniciado por blackwind
Muchas gracias por las respuestas Eternal Idol.
De nadas, para eso estamos aca
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #13 (permalink)  
Antiguo 06/05/2005, 06:49
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Si, es interesante lo que quieres hacer blackwind.

Por ahi te va otro libro que es muy probable que encuentres por alla.
"Programcion Avanzada con Ensamblador y Turbo Pascal"
Ese es el nombre mas omenos, y viene exactamente lo que quieres hacer, 3D, efectos especiales y cosas muyavanzadas con ASM y un poco de turbo pascal.

Ahi nos vemos

Saludos
  #14 (permalink)  
Antiguo 06/05/2005, 12:40
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
chida

por cierto, me ha surgido una duda mas.
Y va mas para Eternal Idol:
como te acordaras, el libro que mencione todos los ejemplos vienen en NASM y para DOS(salvo uno que otro) , la pregunta es:
Consideras que es bueno que aprenda NASM (para mas facil, ya que veo que el libro esta MUY bien explicado), y de ahi ya que entienda bien ensamblador, me pase a MASM?.

Por cierto, no entiendo bien algo, el linkeo es diferente cuando programa para DOS? , aun cuando este en windows?
O cual es la diferencia si uso por ejemplo el Command prompt?
  #15 (permalink)  
Antiguo 06/05/2005, 12:47
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
No se que decirte, la parte de MS-DOS no es fundamental ni mucho menos, te enseña a usar los servicios del Sistema Operativo mas que nada.

El enlazado es diferente en todos los Sistemas Operativos ya que estos tres (DOS, Linux y Windows) tienen diferentes formatos de archivos objeto y ejecutables.
Desde la linea de comandos de Windows XP, por ejemplo, podes compilar y enlazar programas para MS-DOS tambien, con las respectivas herramientas que vienen en el CD que acompaña al libro.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #16 (permalink)  
Antiguo 06/05/2005, 16:43
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
ok,muchas gracias, ya vere que hago.
Lo mas seguro es que use el RADAsm para el codigo, y lo ensamble NASM y linkee con su linkeador jeje (no recuerdo como se llama).
Ahi se me atoro vendre a molestar de nuevo
  #17 (permalink)  
Antiguo 06/05/2005, 16:49
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
No problem
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:30.