lunes, 6 de febrero de 2012

Lenguaje Ensamblador

Introduccion Lenguaje Ensamblador



Introduccion al Lenguaje Ensamblador

El Lenguaje Ensamblador es equivalente al lenguaje Maquina, pero con códigos de operacion, datos y referencias simbólicas

Entonces el lenguaje ensamblador expresa las intrucciones de una forma mas natural al hombre y a la vez muy cercana al microcontrolador y microprocesador, ya que cada una de estas instrucciones corresponde con otra en codigo maquina

El Lenguaje Ensamblador trabaja con nemónicos, que son grupos de caracteres alfanumericos que simbolizan las ordenes o tareas a realizar


* Operaciones:Códigos Nemotécnicos
* Datos y Referencias: Nombres Simbolicos

La traduccion de los nemonicos a codigo maquina la lleva a cabo un programa ensamblador

El programa escrito en lenguaje ensamblador tiene una extension (.asm). El programa ensamblador traduce ese codigo fuente (.asm) a codigo maquina que suele tener la extension (.hex)


El codigo Fuente (Ensamblador)


Cada linea puede estructurarse en hasta 4 campos ó columnas separadas por uno o mas espacios o tabulaciones entre si

campo de etiquetas:
Expresiones Alfanumericas escogidas por el usuario para identificar una determinada linea. todas las etiquetas tienen asignado el valor de la posicion de memoria en la que se encuentra el codigo al que acompañan

Campo de codigo:
Corresponde al nemonico de una instruccion de una directiva o de una llamada a macro

Campo de operandos y datos:
Contiene los operandos que precisa el nemonico utilizado según el codigo puede haber 2, 1 o ningun operando.

Campo de Comentarios:
Dentro de una linea todo lo que se encuentre a continuacion de un punto y coma (;) sera ignorado por el programa ensamblador y considerado como comentario


Campo de codigo

Puede corresponder ese codigo a:

Instrucciones:
son aquellos nemonicos que son convertidos por el ensamblador en codigo maquina

Directivas:
Pseudoinstrucciones que controlan e proceso de ensamblado del programa. son indicaciones al programa ensamblador de como tiene que generar el codigo maquina

Macros:
Secuencia de nemonicos que pueden insertarse en el codigo fuente del ensamblador de una manera abreviada mediante una simple llamada



Programa (Hola Mundo en Ensamblador)


Los pasos para crear nuestro programa "hola mundo " en ensamblador son los siguientes:

Paso 1:
instalaremos el programa ensamblador en este caso NASM con el siguiente comando :

  • Ubuntu : apt-get install nasm
  • Fedora: yum install nasm

Paso 2:
Ahora si copias el Siguiente Codigo fuente y lo guardas con el nombre que quieras pero con extension(.asm):


section .data
    holaStr:    db 'Hola Mundo!',10
    holaSize:      equ $-holaStr

section .text
    global _start

_start:
    
    mov eax,4            ; llamada del sistema 'write' identificador 4
    mov ebx,1            ; descriptor de archivo 1 = pantalla
    mov ecx,holaStr      ; cadena que mostraremos
    mov edx,holaSize     ; longitud de la cadena 
    int 80h              ; invocar al kernel


    mov eax,1            ; llamada del sistema 'exit'
    mov ebx,0            ; codigo de error 0
    int 80h              ; invocar al kernel 


Paso 3:
Creamos a partir del codigo fuente (.asm) el codigo objeto, Gracias al programa ensamblador con el comando:

nasm -f elf (nombre archivo).asm


Paso 4:
Creamos a partir del codigo objeto (nombre archivo.o) el ejecutable,con el comando:


ld -o nombre_ejecutable nombre_codigo_objeto.o


Paso 5:
solo queda Ejecutar el programa ,con el comando:


./nombre ejecutable


No hay comentarios:

Publicar un comentario