2010-08-19 34 views
16

Empiezo la universidad en unas pocas semanas (licenciatura en ingeniería de software) y sé que uno de los módulos que estudiaré en el primer año es 'fundamentos de la arquitectura' o algo similar; Básicamente, está aprendiendo a programar en "ensamblaje".Lenguaje de ensamblaje: ¿hay más de un tipo?

Estoy queriendo hacer algo de aprendizaje de fondo, así que estoy preparado (he hecho lo mismo en algunas otras unidades), pero no sé si hay más de un 'lenguaje ensamblador'. ¿Cuántos hay? ¿Es uno por fabricante, un lenguaje de 32 bits y 64 bits o solo un estándar?

Si hay más de un tipo, ¿cuál es el más "popular" o que se puede enseñar en el nivel universitario?

+1

Si quiere tener una ventaja inicial, le recomiendo ponerse en contacto con alguien de la universidad (el prof o el secretario del departamento) para averiguar qué lenguaje ensamblador se utilizará. Algunas universidades ni siquiera usan un lenguaje ensamblador "real", prefiriendo crear uno sintético para que los estudiantes aprendan. –

+0

@Blair Esa es una buena idea, lo haré. Realmente espero terminar sin usar un lenguaje sintético, eso sería tan decepcionante. –

+2

Mi universidad enseñó el curso equivalente usando MIPS, que es un lenguaje ensamblador RISC (conjunto de instrucciones reducido) relativamente simple. Es muy probable que no enseñen con x86 (el lenguaje ensamblador de 32 bits de Intel y probablemente el compilador más buscado), simplemente porque hay muchas instrucciones arcanas en el conjunto x86 que han evolucionado con el tiempo para proporcionar varias optimizaciones. Aquí hay alguna información sobre MIPS: http://en.wikipedia.org/wiki/MIPS_architecture –

Respuesta

25

Hay muchos, muchos tipos de lenguajes de ensamblaje. Los más populares actualmente son ARM, MIPS y x86. ARM se usa en muchos teléfonos celulares y muchos sistemas integrados. MIPS es popular en las CPU de IBM y se encuentra en sistemas como Macs, algunas consolas de videojuegos y algunas que estoy seguro de que me faltan. El ensamblador x86 se usa en las PC Intel. Cada sabor tiene diferentes versiones que abarcan el gammut de instrucciones de 16 bits a 64 bits. Lo que pasa con el ensamblaje es que las arquitecturas antiguas tienden a morir y aparecen otras nuevas, pero las cosas fundamentales que hacen los sistemas de estilo RISC son básicamente las mismas. Solo se trata de aprender la mnemotecnia entre sistemas. Move, Mov, Load, etc. todos cargan un registro con un valor. Es como cualquier otro idioma realmente. Una vez que aprendes uno, es bastante fácil elegir uno más nuevo. Algunos de los más antiguos con los que se puede encontrar son Z80, 68000, 6502 y 6510, dependiendo de la distancia que retroceda en el camino de regreso de la máquina a la que desea ir.

Espero que ayude.

+2

Está confundiendo el MIPS (no relacionado con Motorola) con el PowerPC de IBM (utilizado por los antiguos Mac, Xbox 360, PS3, Gamecube/Wii/WiiU). – rmmh

+0

El código de operación de una instrucción es de 6 bits en MIPS. Cada instrucción es siempre de 32 bits. –

6

pero no se sabe si hay más de un 'lenguaje ensamblador'

diferentes ensambladores (por ejemplo GNU de Microsoft y de) para la misma CPU pueden tener diferentes sintaxis del lenguaje ensamblador; pero la diferencia es trivial, porque ambos apuntan a la misma CPU, y hay una asignación de 1 a 1 (si ignoras las macros) entre las instrucciones de ensamblaje y los códigos de operación de la CPU.

La diferencia más grande es entre diferentes tipos de CPU.

A veces, diferentes CPU admiten los mismos códigos de operación (y, por lo tanto, pueden ser el objetivo de los mismos ensambladores), ya que están diseñados para ser compatibles o competitivos entre sí, ejecutando el mismo lenguaje de máquina.

Pero a veces son diferentes: vea List of Instruction Set Architectures.

Cuestiones relacionadas