Académique Documents
Professionnel Documents
Culture Documents
Manel Ribau
Naim Rahmouni
M5
IES Carles Vallbona
Curs 2017/18
Índice
Descripción y historia 2
Historia 2
Paradigma de programación 4
Forma d'execució 5
Tipatge 7
Ejemplo de código 8
Webgrafia 9
1
Descripción y historia
El lenguaje de ensamblador o Assembler (en Inglés), es un lenguaje de
programación de bajo nivel para los computadores, microprocesadores,
microcontroladores y otros circuitos integrados programables. Implementa una
representación simbólica de los códigos de máquina binarios y otras constantes
necesarias para programar una arquitectura dada de CPU y constituye la
representación más directa del código máquina específico para cada arquitectura
legible por un programador. Esta representación es usualmente definida por el
fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos
de procesamiento (las instrucciones), los registros del procesador, las posiciones de
memoria y otras características del lenguaje. Un lenguaje ensamblador es por lo
tanto específico de cierta arquitectura de computador física (o virtual). Esto está en
contraste con la mayoría de los lenguajes de programación de alto nivel, que
idealmente son portátiles.
Historia
2
ENIAC
Esto llegó a ser muy complicado debido a que se debían aprender una serie
enormes de códigos binarios para realizar operaciones. Por ejemplo:
Para realizar la suma se tenía una instrucción binaria muy similar a
"00101010010100101". Es por eso que se complicaba demasiado manejar este tipo
de programación.
Actualmente manejamos lenguajes de Alto nivel que son relativamente sencillos a
comparación con el lenguaje máquina. Pero no se llegó al alto nivel desde el código
binario, existe un lenguaje que nació para facilitar el binary code.
Nivel de abstracción
Pertenece al bajo nivel donde la programación se realiza teniendo muy en cuenta
las características del procesador. Es el más cercano al código máquin
3
Paradigma de programación
Un paradigma de programación es una propuesta tecnológica adoptada por una
comunidad de programadores y desarrolladores cuyo núcleo central es
incuestionable en cuanto que únicamente trata de resolver uno o varios problemas
claramente delimitados; la resolución de estos problemas debe suponer
consecuentemente un avance significativo en al menos un parámetro que afecte a la
ingeniería de software.
4
Forma d'execució
La forma de ejecución del lenguaje ensamblador depende del sistema operativo
utilizado, explicaremos la manera de hacerlo mediante linux y dentro de este
mediante sus respectivas etapas:
Para esta etapa, necesitaremos que el programa Nasm esté instalado en nuestra
máquina. Si estás bajo Debian o Ubuntu, simplemente escribe el comando:
sudo apt-get install nasm
Si utilizas otra distribución Linux, deberás utilizar el gestor de paquetes de tu
distribución (por ejemplo urpmi, yum, emerge etc...)o compilar nasm descargando el
fichero desde el sitio oficial.
Pasemos ahora al ensamblado del fichero fuente.
Dirígete en línea de comandos a la carpeta donde se encuentra el fichero fuente al
que llamaremos por ejemplo test.asm. La línea a escribir es:
nasm -f elf test.asm
Esto creará un fichero llamado test.o en el directorio actual. Este fichero aun no es
ejecutable, únicamente es un fichero objeto, es decir un fichero que es necesario
leer con las bibliotecas de las que depende como por ejemplo la biblioteca standard
libc.
Ahora que ya tenemos nuestro fichero objeto llamado test.o vamos a crear nuestro
ejecutable.
Aquí se presentan dos casos:
● El programa inicia con un procedimiento llamado “_start”. Esto significa
que el programa posee su propio punto de entrada sin utilizar la función
main. Esto no cambia mucho, sin embargo necesitarás utilizar el comando
"ld" para crear el ejecutable:
● ld test.o -o test
5
● El programa inicia con un procedimiento llamado “main”. Entonces
necesitarás utilizar gcc para crear el ejecutable:
● gcc test.o -o test
Y listo el ejecutable ha sido creado, se llama test y se ubica en el directorio actual.
Para ejecutar nuestro programa llamado “test”, basta con escribir este comando:
./test
También podemos utilizar un depurador para observar la ejecución. Para ello
podemos utilizar gdb que se utiliza en línea de comandos. Si deseas un depurador
más visual, existen interfaces gráficas que utilizan gdb en segundo plano como por
ejemplo Insight.
6
Tipatge
El ensamblador MPASM (distribuido por Microchip) soporta los sistemas de numeración
decimal, hexadecimal, octal, binario y ASCII, no contiene datos, trabaja a bajo nivel.
El programa escrito en lenguaje ensamblador se denomina código fuente (*.asm). El
programa ensamblador proporciona a partir de este fichero el correspondiente código
máquina, que suele tener la extensión *.hex.
7
Ejemplo de código
8
Webgrafia
http://brevehistoriacomputacion.blogspot.es/tags/assembler/
https://qbitacora.wordpress.com/2007/09/21/clasificacion-de-lenguajes-de-programacion/
https://es.wikipedia.org/wiki/Lenguaje_ensamblador