Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Libro Sobre Ensamblador

Iniciado por Sacrifai, 01 de Enero de 2006, 04:29:16 PM

« anterior - próximo »

Sacrifai

 Buenas gente. Resulta que acabo de leerme el libro que me regalaron en noche buena "Aprenda C++", y me ha gustado bastante. Por eso ahora estoy buscando un libro sobre ensamblador y mas tarde buscare sobre C++ algo más avanzado o práctico. Las cuestiones son:
¿Merece la pena aprender ensamblador a esta altura?
Le echador el ojo a "Ensamblador para DOS, Linux y Windows" de la editorial Anaya. ¿ Me recomedais este libro ? ¿ Conoceis otro mejor ( en español pls XD ) ?

Y eso es todo por hoy, ¡espero respuestas!. Gracias

ethernet

 No vas un poco rápido? Si has aprendido todo lo que dice el libro de C++ en una semana es que eres el puto amo :).

A riesgo de que me linchen , no te recomiendo bajo ningún concepto que mires ningún lenguaje por debajo de C++. Sólamente te recomiendo que mires el ensamblador como forma de entender la arquitectura de una máquina, pero nada más, a estas alturas asm es completamente inútil para programar cualquier cosa.

Snakers

 
Cita de: "Sacrifai"...acabo de leerme el libro que me regalaron en noche buena "Aprenda C++", y me ha gustado bastante.
Para que niveles es?Estoy pensando en comprarmelo,porque lo he visto en la libreria de al lado de mi casa :D ,pero no estoy seguro...

...perdon por irme del tema... :rolleyes:

fiero

 
Cita de: "ethernet"... a estas alturas asm es completamente inútil para programar cualquier cosa.
Hace poco leí una entrada en el blog de Enrique Dans que viene un poco al hilo de este tema http://edans.blogspot.com/2005/12/cosas-qu...-revientan.html El tio explica que compró un juguete para su hija que venia con un CD. En el CD, un simple programilla para imprimir plantillas de dibujos y poco más. Sin embargo, ese programilla tan extremadamente simple, le requería Framework .NET 1.1 y si me apuras hasta aceleradora!!!

Creo los programadores cada vez se complican menos la vida. O quizás habría que decirle al cliente de turno: "no, eso no te lo hago por menos de XXXX €" y hacer el programa en condiciones.

Para un programador de juegos creo que el asm es imprescindible. Ojo!!! no confundir con hacer un juego en ensamblador, lo que digo es que siempre puedes utilizar asm inline en C++ para acelerar algunas cosas. También hay que distinguir entre programar en ensamblador y convertir a ensamblador. Ethernet siempre dice que aunque una cosa se haga en ensamblador no irá más rápido, y tiene razón. Lo que hay que hacer es pensar en ensamblador, no convertirse en un compilador humano, y para eso hacen falta años de experiencia. Pero saber ensamblador te dá todo el control, puedes mantenerte en el nivel más alto (C++) o bajar al más bajo siempre que lo creas conveniente (asm).

Ethernet a la hoguera!!! XD

un saludo
www.videopanoramas.com Videopanoramas 3D player

senior wapo

 Pues yo que llevaba años sin tocar una línea de ensamblador me estoy planteando aprender las instrucciones MMX para acelerar mis rutinas de sprites subpixel con filtro bilineal.

Es un caso muy específico, pero vaya, la diferencia de velocidad entre la implementación C++ y con MMX tiene que ser notable, así que yo no diría que ASM es inútil a dia de hoy. Simplemente, tiene su nicho.

zupervaca

 Utilizar asm en c++ puede conllevar fallos en la optimización del compilador, si en el asm que metes utilizas los registros para algo ten seguro que fuera no lo hará, además solo hay que ver la función que hice hace unos días del MemCpy en c e iba igual de rápida que la del compilador hecha en asm.

Citarinstrucciones MMX
Yo he visto como puedes copiar bloques de memoria con instrucciones MMX y es una pasada (ole)

ethernet

 Tomad la palabra inútil no literalmente. A efectos prácticos, asm está muchísimo más que muerto, aunque no puedo negar que para casos muy particulares puede que sea necesario e incluso recomendable.

Tampoco me voy a meter en una disputa de si asm es mejor que c++ o ese tipo de discusiones que no llevan a nada.

fiero

 Hay cosas que estan ya optimizadas, como la función memcpy de Microsoft. Él código fuente está en la instalación de VC++. Está hecha en un fichero .asm creo recordar y tiene muchas cosas en cuenta como el numero de bytes a copiar, si la cpu tiene MMX o SSE, etc. Para ciertas cosas bastante comunes Microsoft ya ha hecho todo el trabajo.

un saludo

Edito: Para las demás plataformas (no Windows) pasará lo mismo, ciertas funciones del API están ya hechas en ensamblador "de fabrica", por eso no merece mucho la pena rehacerlas.
www.videopanoramas.com Videopanoramas 3D player

Sacrifai

Cita de: "ethernet"No vas un poco rápido? Si has aprendido todo lo que dice el libro de C++ en una semana es que eres el puto amo :).
Lo soy XD. Es broma. Resulta que yo ya sabía algunas cosas de C++ y había programado en C++  :)  . Además el libro es nivel basico-medio ( para Snaker ke preguntó ). Por eso estoy buscando también un libro que me enseñe más aplicaciones y cosas más avanzadas.

Respecto a lo de que asm es inutil ¿ alguna otra opinión ? Quizás a esta altura ya no sea muy util, pero aprender asm me permitiría conocer mejor la estructura del ordenador ¿no?

zupervaca

 Lo que mas te enseña el asm es a optimizar y a pensar las cosas antes de escribir líneas de código en c++ sin mas ya que te imaginas como quedara el código compilado. Programar en asm... buff yo hace mucho que no lo hago ya, además como ya he dicho antes puede que estropees las optimizaciones del compilador de c al usar registros u otras cosas.

dracks

 Vamo a ver, creo que saver ASM no esta nada para mal... pero meter una linia en medio del codigo en ASM no es lo que se tenga que hacer para nada, eso si, si quieres hacer una funcion en ASM para optimizar i esto, pos, perfecto; la otra cosa es hacer como microtorrent, que esta hecho en ASM ocupa una mierda y consume de ram lo mismo... pero, claro... digamos que se devieron tirar unos cuantos segundos haciendo eso (lo de segundos es en tono ironico); vamos, una maldita matada....

Lo dicho, yo creo que es bueno saver ASM y saver programar, tampoco es mala idea... pero quien save... ;)


Suerte!
iempo: dimension del universo en el que vivimos que se caractiza por el hecho que el ser humano sea incapaz de conocer...

ethernet

 Yo estoy radicalmente en contra de programar en asm, pero creo que es _muy conveniente_ saber asm (más que eso la arquitectura)de la máquina sobre la que programas para saber qué estás haciendo.  

seryu

 
Cita de: "Sacrifai"¿Merece la pena aprender ensamblador a esta altura?
No.

Si lo que quieres es hacer juegos (lo supongo porque esto es stratos) es mejor que dediques tu tiempo a aprender DirectX, C# y sobretodo programar aplicaciones.

Si quieres saber como funciona un ordenador pues estudia teoria computacional, el asm no te va a enseñar lo que es una maquina de turing. Asm es solo un lenguaje basico para escribir programas, punto. A menos que te divierta aprender asm de un x86, de un sh, etc.. utilidad real, poca.

Sigue aprendiendo y sobretodo practicando C++. Te ira mejor.

Sacrifai

 Vale, vale, puesto que casi todos pensáis que aprender asm a estas alturas no me va a ayudar habrá que buscar otro libro. ¿Conoceis alguno que lleve la programación de C++ de un nivel medio a uno avanzado?

zupervaca

 Te digo uno muy viejo, no se si quiera aun existira en las tiendas o te lo podran pedir:

Titulo: Programacion orientada a objetos con C++
Escritor: Fco. Javier Ceballos
Editorial: ra-ma
ISBN: 84-7897-118-1 (con este numero deberia valerte)
Nivel: Medio-Avanzado

Este libro te enseña por encima lo que es programacion orientada a objetos y luego se pasa a c++, terminando por enseñarte a programar arboles binarios, listas, etc






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.