Lenguaje ensamblador

He leído en wikipedia el articulo que amplia el tema.
Pero por ningún lado he encontrado que haya un lenguaje con nombre propio como los lenguajes de alto nivel... Por ejemplo el pascal, el java, el visual, etc...
Un amigo que es bachiller en ingeniería de sistemas me dijo que tomar este curso seria formidable por la demanda laboral, dándome a entender que el no llevo este curso en su universidad.
Bien mi pregunta es:
¿El lenguaje ensamblador es un lenguaje a nuestro alcance? Como lo son el c#, el c++, el visual basic, etc...
¿O a caso es un lenguaje que solo se enseñan en algunas universidades o en algunas partes del mundo?
¿Cuáles serian las bases o requisitos para estudiar este tema? ¿Dominar ciertos lenguajes de programación coniderados de alto nivel?
¿El lenguaje ensamblador posee nombre propio? ¿Cómo decir java? ¿php?
Por ejemplo si yo quiero aprenderlo o informarme acerca de el, puedo ir a un instituto o a una academia, universidad... Etc... Y pedirles información acerca del lenguaje ensamblador, ¿corro el riesgo de que me pregunten de que se trata?
Lo digo porque en el pasado me paso que una vez pregunte por lenguajes de marcación y no me entendían hasta que dije html y entonces todo solucionado...

6 respuestas

Respuesta
1
El lenguaje ensamblador (assembler en ingles) es su propio nombre como me preguntas más adelante, el problema es que no es de alto nivel, de hecho, los lenguajes como C y C++ convierten su código a assembler, es en efecto un lenguaje en una capa intermedia entre el lenguaje máquina y los lenguajes de alto nivel. Para ponerte un ejemplo:
Si tu quisieras mover a una zona de memoria ciertos datos en lenguaje máquina (es lo que entiende el procesador) necesitas el código binario de la instrucción del procesador primero, luego el código binario de la posición de memoria donde van a ir los datos, y la posición de memoria de donde los sacas, todo junto seria algo ininteligible, una cadena de 32 bits (o 64 si tu procesador es de 64 :p) de longitud de 1's y 0's. Para evitar esto, y hacer un poco más legible los lenguajes (en la época que todo esto se empezó a montar) se dijo de crear una especie de instrucciones que se tradujeran a este churro de 0's y 1's, de tal manera en vez de tener un código numérico para identificar el movimiento de datos se eligió la instrucción MOV, se declararon las zonas para los registros del procesador y un conjunto de variables y flags así pues mover de una zona de memoria a otra se convirtió en un simple:
MOV DS:[1000] DS:[1200] por ejemplo. Y esto podría ser en C la asignación de un puntero sobre otro.
En cuanto a la salida laboral, creo que pocas empresas lo usan. La mayoría son empresas que trabajan con periféricos, creo que HP trabajaba con assembler pero son noticias de hace algunos años y ya no estoy muy seguro.
Lo que es seguro es que entenderás muy profundamente el funcionamiento de la compilación de los lenguajes de alto nivel, y el funcionamiento a bajo nivel de procesadores y computadores abriéndote la mente para el aprendizaje de otras disciplinas.
Respuesta
1
El lenguaje ensamblador como cualquier otro lenguaje ocupa de su compilador existen varias versiones como las fabricadas por borland, microsoft, etc. En cuanto a si se enseña en sólo algunas universidades, no sé si profundicen en mayor en ciertas universidad, pero mínimo te deben de dar una pequeña introducción, muchas veces en la curricula no viene el nombre de la materia como tal (ensamblador) puede venir como un tema dentro de otra materia como arquitectura de computadoras, lenguajes de programación (lenguajes de bajo nivel).
Si te interesa conocerlo por tu cuenta, te paso referencias de páginas.
http://homepage.mac.com/eravila/asmix86.html
http://sistemas.itlp.edu.mx/tutoriales/ensamblador/index.htm
Respuesta
1
Pues el lenguaje ensamblador no es un lenguaje de programación en el cual puedas hacer aplicaciones o cosas, es simplemente un lenguaje interpretado por la maquina por ejemplo en java tu escribes en java pero al momento de ejecutarlo la maquina lo interpreta con el lenguaje ensamblador de ahí su nombre, no es precisamente un lenguaje proglamable checate este link aquí y no, no se imparte algún curso bueno que yo sepa en mi país sobre la creación y el manejo de este tipo de lenguajes otro dato es que por ejemplo tu programas = lenguaje de programación (java, c++, etc) lugo la maquina traduce ese código = LENGUAJE ENSAMBLADOR, y luego se convierte en lenguaje de maquina = (00010100111) ok !
Respuesta
1
El nombre del lenguaje es tal como lo mencionas ENSAMBLADOR, es como si preguntaras ¿cómo se llama en el lenguaje pascal? ¿O el lenguaje java?.
el EMSAMBLADOR es un lenguaje de bajo nivel que no es funcional-- al menos en comparativa con lenguajes de alto nivel como java o .net;
Solo se usa para manipular circuitos eléctricos... como el procesador de cualquier computadora o una calculadora.
utiliza Interrupciones y no sentencias como X=x+1.. aqui va un ejemplo:
Para imprimir HOLA MUNDO:
. Model small
. Stack
. Data
   Saludo db "Hola mundo!!!", "$"
. Code
main  proc              ;Inicia proceso
   mov   ax,seg saludo     ;hmm ¿seg?
   mov   ds,ax          ;ds = ax = saludo
   mov   ah,09          ;Function(print string)
   lea   dx,saludo         ;DX = String terminated by "$"
   int   21h               ;Interruptions DOS Functions
;mensaje en pantalla
   mov   ax,4c00h       ;Function (Quit with exit code (EXIT))
   int   21h            ;Interruption DOS Functions
main  endp              ;Termina proceso
end main
en c++ seria algo asi:
#include <iostream>
using namespace std; int
main() { cout << "Hola Mundo" << endl;
return 0;
}
en JAVA:
public class HolaMundo {
public static void main(String[] args) {
System.out.println("Hola Mundo");
}
}
En realidad int es que el ensamblador le dirá al procesador que hacer cada interrupción tiene su operación en el procesador, cada procesador (Intel y AMD por ejemplo) funcionan de distinta manera en algunas cosas.
Los lenjuages de alto nivel usan una interfaz gráfica que a la vez el compilador de java por ejemplo, convierte todo ese código en C++ a código ensamblador o a código objeto, y ese código es el que realmente se ejecuta al final en el procesador.
Ahora bien, con esta pequeña lección espero entiendas porque no es viable el uso de aprender ensamblador si los programadores luchan por dejas atrás tener que conocer de cerca el hardware para dedicarse a conocer más sobre el manejo del software mismo.
NOTA IMPORTANTE: los electrónicos e ingenieros en electrónica aun aprenden a usar ensamblador porque las tarjetas de cada computadora (computadora= toda maquina que procesa y da un resultado: calculadora, laptop, teléfono, etc..) usan el ensamblador de cerca y deben saberlo. Ya que en estos aparatos no se usan lenguajes de alto nivel solo el lenguaje ensamblador.
Sugiero leas en Wikipedia un poco de historia sobre el mismo para que complementes lo comentado.
Respuesta
1
Para que te hagas una idea, existen los siguientes lenguajes:
-Lenguaje Máquina: lenguajes de 0's y 1's. Todos los lenguajes, al final, se traducen en este (ficheros .exe, o bien .class de java traducidos a ejecutables en tiempo de ejecución)
-Ensamblador: más cercano al humano, con sentencias como ADD y REMOVE.
-Lenguajes de alto nivel: C, Java, etc, dentro de estos, existe el lenguaje de programación orientado a objetos, y el lenguaje procedural.
Para que te hagas una idea, la informática es como la música. Todo el mundo conoce a Depeche Mode, pero pocos conocen a grupos de menor impacto. Al fin y al cabo lo que se conoce es lo que suena...
Ya sea el Twitter, el faceBook, etc etc, el html... pero de compiladores, pocos sabrán decirte que es.
Desde mi punto de vista, orientado al mercado, los compiladores es algo que está de moda en el mundo productivo laboral, quizá en sectores especializados sí.
Respuesta

Tienes el ensamblador de núcleo Intel, el compilador ASM 51 lo descargas en Amtel gratis .

Lo descargas lo instalas y usas la consola msdos para que compile el ASM 51 los programas, el problema es encontrar ejemplos para trabajarlo un poco.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas