Ayuda, Libro basico para ensamblador?

No os quiero contar un rollo que paseis de leeros y luego no os entre ganas de contestar, quiero aprender a programar, no se nada de programacion, poniendo las miras en programacion para consolas de 16bits:

¿Como se aprender a programar desde cero en ensamblador?

¿Por donde empiezo para coger base?

¿Me meto directamente en ensamblador para consolas?

¿Es mejor coger base con una platafromas como PC con menos limitaciones??

------------------------------------------------------------------------------------------------
Hola, quiero aprender a programar para consolas de 16bits, pero no tengo ni idea de programar en ningun lenguaje, como no creo que exista en español mucha documentacion basica para programar para consolas, creo que deberia empezar a aprender a programar para x86 que supongo que si exisitira documentacion en español desde niveles basicos, y supongo tambien que los conocimientos que aprenda programando para x86 me serviran para mas adelante entender documentacion para consolas.

¿me podriais recomendar algun libro basico en español de programacion en ensamblador?

¿merece la pena programar en ensamblador con respecto a C+ ?

Muchas gracias, espero que me contesteis lo antes posible.
Si ensamblador es tu primera experiencia con programacion, te diria que primero programes en un lenguaje como por ejemplo C ( JAVA me parece demasiado salto atras para pasar a ensamblador ), por que ademas creo que tienes compiladores de C y las librerias en C para algunas consolas de las que tu quieres.

Primero elije una consola y informate de que lenguaje necesitas para ella.

y de ensamblador lo mismo elije un procesador para el que quieras aprender ensamblador.
Hola,

Si no sabes nada de programación, ni se te ocurra meterte de cabeza con el ensamblador!!!

yo en vez de C te recomendaria basic, un BlitzBasic sencillito para aprender a programar en PC, cuando veas que te manejas bien pasate a C.

Si cuando sepas C necesitas mas, entonces pasate a ASM, :P entonces te recomiendo que empieces con un Z80 (spectrum,msx,cpc,gameboy,master system,etc,etc)
Muchas gracias a los dos.

Necesitos mas opiniones, y que me recomendeis algun libro para iniciarse sobre lo que me recomendeis.

una pregunta que a la hora de decidir que leguaje voy a aprender primero me es muy importante ¿que tienen en comun los distintos lenguajes para que sea mejor antes de aprender ensamblador seber C ó Basic?
Yo a personalmente te recomiendo C ,aunque pascal no estaria mal, para que aprendieras a estructurar las cosas y dejarlo claro en plan las variables en un lado las sentencias en otro etc.., pero creo que puedes empezar por C sin problemas,
C yo te lo recomiendo por que le puedes meter ASM de por medio y tienes punteros que te obligara a saber como va la memoria y lo de direcciones de memoria que luego necesitaras para ASM
kYp escribió:C yo te lo recomiendo por que le puedes meter ASM de por medio y tienes punteros que te obligara a saber como va la memoria y lo de direcciones de memoria que luego necesitaras para ASM


no solo en C se puede meter asembler, puedes hacerlo en pascal,basic,etc,etc,etc el que manda es el compilador
Pero nadie es capaz de recomendarme ningun libro y/o web en español sobre el lenguaje que crea que es mejor para aprender, ¿como aprendisteis vosotros?

No se que es eso de meter ensamblador en medio de un programa como C porque no se programar y me liais mas, ¿se entremezcan dos tipos de lenguaje en el mismo codigo fuente?? ni se que son las pilas, los punteros....

saludos.
Sam30 escribió:ni se que son las pilas, los punteros....


No intentes aprender ensamblador.
Primero, aprende a programar. Búscate un programa de desarrollo en código cero para aprender como funcionan los programas. Prueba a hacerte un par de juegos en multimedia fusion o game maker.

Segundo, aprende un lenguaje de programación. Si sabes manejar eventos y has conseguido cambiar el chip, aprender un lenguaje te enseñará cosas múcho más básicas. Por ejemplo, java.

Tercero, aprende c. Te enseñará a relacionarte más con la máquina.

Cuarto, aprende sobre compiladores y lenguaje máquina.

Cinco, aprende ASM.

En un par de añitos puedes ser un programador decente en ensamblador.
Blue escribió:Primero, aprende a programar. Búscate un programa de desarrollo en código cero para aprender como funcionan los programas. Prueba a hacerte un par de juegos en multimedia fusion o game maker.

Segundo, aprende un lenguaje de programación. Si sabes manejar eventos y has conseguido cambiar el chip, aprender un lenguaje te enseñará cosas múcho más básicas. Por ejemplo, java.

Tercero, aprende c. Te enseñará a relacionarte más con la máquina.

Cuarto, aprende sobre compiladores y lenguaje máquina.

Cinco, aprende ASM.

En un par de añitos puedes ser un programador decente en ensamblador.

+1

Yo empezé justo así, con Game Maker, que recuerdos... xD Luego pasé a C (me salté el 2º paso que dices xD) y la verdad es que ayuda muchísimo a la hora de aprender a programar en ensamblador. De hecho, yo intenté aprender ensamblador de golpe antes de saber nada de C y no me enteraba de absolutamente nada de lo que leía. Una vez que tienes claros los conceptos de punteros y demás, programar en ensamblador no tiene mucha dificultad...

Si no sabes programar en un lenguaje como C o Pascal, ni te molestes en mirar nada de ensamblador, en serio.
Blue escribió:. Búscate un programa de desarrollo en código cero para aprender como funcionan los programas. Prueba a hacerte un par de juegos en multimedia fusion o game maker.

Segundo, aprende un lenguaje de programación. Si sabes manejar eventos y has conseguido cambiar el chip, aprender un lenguaje te enseñará cosas múcho más básicas. Por ejemplo, java.

Tercero, aprende c. Te enseñará a relacionarte más con la máquina.

Cuarto, aprende sobre compiladores y lenguaje máquina.

Cinco, aprende ASM.

En un par de añitos puedes ser un programador decente en ensamblador.



Hola blue. no entiendo bien el orden a seguir que me propones, dices:

Primero, aprende a programar
¿ te refieres a que primero escoja el lenguaje que quiera aprender?

Búscate un programa de desarrollo en código cero
¿que significa esto?

Segundo, aprende un lenguaje de programación.
¿A que te refieres con que primero aprenda a programar y despues aprenda un lenguaje?

En encontrado esta web http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C ¿que os parece?

Tambien estoy "comprando":
Manual programacion en C y C++ (FV)
Programacion en español - Curso C#
Introduccion a la programacion con Python y C
Programacion en C. metodologia, algoritmos y estructuras de datos. McGraw-Hill
Dejate de tanto libro.
Yo aprendí primero Pascal, aunque de eso hace ya 5 años. Las cosas han avanzado bastante y aprender Pascal, a no ser que tengas tiempo libre, no lo recomiendo.
Empieza directamente con este orden: C - JAVA - C++
De esta forma aprenderás aprender un lenguaje estructurado y dos orientados a objetos con bastante facilidad.

Te recomiendo esta web para aprender C: http://www.elrincondelc.com/cursoc/cursoc.html

Un saludo.
Yo me limitaria a aprender a programar con C (busca en google "c con clase") y despues pasar a C++ como que no quiere la cosa (simplemente empezar a meter clases poco a poco hasta hacer diseños completos solo con clases y empaparte de la POO). De ahí en adelante aprender cualquier otro lenguaje de programación es trivial.
Gracias a todos, que claro que si quiero aprender ASM lo mejor es aprender C, ya estoy empezando con Python y despues pasare a C.
Una lastima que Python se interpretado y no compilado, asi que solo lo usare para familiarizarse con los lenguajes.

Esto me va a llebar años, espero no aburrirme antes de empezar a hacer cosas.

saludos.
Si vas a aprender a programar para consolas antiguas, lo importante es el procesador. El mas comun es el motorola 68000.

A diferencia de otros lenguajes de programacion, el ASM no es un lenguaje de programacion unico, si no un conjunto de lenguajes, ya que cada familia de procesadores tiene su propio lenguaje ASM.Incluso dentro de la misma familia he visto caso de diferentes tipos.

Eso sucede porque a diferencia de los lenguajes de alto nivel, el ASM tiene que hablar directamente con el hardware.

Asi que busca tutoriales especificos para el procesador de la consola en la que te interesa programar, eso o sigue dandole guerra al basic... XD XD
Si quieres aprender a programar en ensamblador para consolas de 16bits, el primer lenguaje que te recomiendo que aprenas es el INGLES.
A partir de ahi te resultara mucho mas facil encontrar documentacion sobre los procesadores de las consoloas y todo eso.
Ademas, las ordenes en ensamblador son "mnemonicos" (vamos abreviaturas) de la funcion de esa orden en ingles, de verdad, ayuda mucho.
Le dare guerra al basic con tu ayuda XD

obcourse what englis hep, but no is cuestion de aprender inglis only for asamble [carcajad]
puedes coger el libro de estructura 1 de cualquier universidad de ingenieria informatica, en la uned se trata en ensamblador el 68000 precisamente, muy usado ( como por ejemplo en el amiga 500 ), como dicen aqui aprender un lenguaje ayudaría, pascal o derivados estan bien para empezar, no son tan utiles como c , pero en una semana estarás tirando lineas.Para el amstrad cpc y para el sinclair hay miles de paginas con googlear es mas que suficiente para encontrar muchisima información muy util.
Decirte que te metes en un terreno muy pantanoso y complicado, no se si sin tener ni idea podrán comprender los problemas para afrontar registros, rotaciones, operaciones logicas, punteros, etc etc.
Y al fin al cabo en c se puede hacer lo mismo ya que ha dia de hoy existen compiladores para casi cualquier sistema(hace poco encontré uno para cpc).Eso si el conocimiento de ensamblador te daría una visión muy buena para programar, pero lo veo excesivo para empezar.
conozco una pagina que tiene muchisimos ejemplos en ensamblador para arquitectura x86
solo teneis que poner masm32 en un buscador

y aparte lo que se deberia buscar es el manual del fabricante del procesador que vas programar
como dicen mas arriba no es lo mismo un 6800 que un 8086 y sus variantes

si estas interesado en arquitectura x86 lo mejor es tener esto
http://www.cs.princeton.edu/courses/archive/spr07/cos217/reading/ia32vol2.pdf
como se puede comprobar es una literatura bastante espesa,demasiado tecnica y enfocada al c/c++
En asm yo leí en su dia cuando estudiaba un libro del "Jon Beltran de Heredia", uno de los 3 principales creadores del comandos 2. Se llama "lenguaje ensamblador de los 80x86" de anaya.
si quieres aprender ensmblador y solo ensmblador empieza por algo sencillo de 8 bits como un PIC.cogeras soltura y empezaras a manejar el codigo, despues puedes pasar a algo mayor.yo e empezado por un libro que escribio mi profesor, PIC16F84A, es bastante sencillo y muy explicativo, perfecto para empezar.es de la editorial Ra-Ma y uno de sus autores es Fernndo Remiro un magnifico profesional de esto
socram8888 está baneado por "incumplimiento términos y condiciones de uso"
Yo he pasado del BASIC, uno de los de más alto nivel, al assembler de 68k de la Sega Megadrive.

Si entiendes inglés: http://www.tigernt.com/onlineDoc/68000.pdf , es el primer resultado que sale si buscas "68000 assembler" en Google, y el documento que yo uso.

Si vas a usar la Sega Megadrive, a parte de conocer ensamblador de la susodicha arquitectura, debes conocer el "memory map", es decir, las localizaciones de cada cosa. En http://en.wikibooks.org/wiki/Genesis_Programming tienes más o menos algunas cosas que debes conocer.

En http://devster.proboards.com/ tienes una comunidad que se centra en esta consola y en su desarrollo, tanto en BEX (BasiEgaXorz, dialecto de QBASIC, muy útil. Se puede usar QBASIC mezclado con ensamblador, y así, por ejemplo, usar ensablador para las funciones, las cuales requieren velocidad, y usar QBASIC para el resto)

Saludos
(mensaje borrado)
23 respuestas