Mostrando entradas con la etiqueta Cómputo integrado. Mostrar todas las entradas
Mostrando entradas con la etiqueta Cómputo integrado. Mostrar todas las entradas

miércoles, 29 de febrero de 2012

Tarea 1 "C - Ensamblador"

Ensamblador

El lenguaje Ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador.
Muchos dispositivos programables (como los microcontroladores) aun cuentan con el Ensamblador como la única manera de ser manipulados.


Programa de C a Ensamblador
El programa que realice se trata de imprimir de forma inversa el arreglo que se escriba.
Lee 5 números y los imprime de manera inversa
Ej: 1 2 3 4 5  - 5 4 3 2 1

Código del programa en C:

Se compila y ejecuta:





Programa en Ensamblador:

Ahora hay que compilar y generar el archivo .s y ejecutar el programa:



Otras partes del código:
  • movl: realiza operaciones lógicas
  • %eax: se encarga de poner la dirección del string también en la pila (ejemplo: instrucción push)
  • %ecx: invoca una rutina externa que imprima el string (ejemplo: instrucción call)
  • .cfi_startproc: comienzo de cada función
  • ret: termina el programa


  • Código Optimizado:
    Se eliminaron varias lineas como el nombre del archivo y otras que realizaban control de función.




    Bibliografía:
    http://www.cs.virginia.edu/~evans/cs216/guides/x86.html