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

    1 comentario:

    Elisa dijo...

    "ancii" :P

    Se me hace riesgoso usar acentos en los comentarios de código, ya que luego la gente lo copia y no les funciona por cambios de codificación de caracteres. Te pongo 10 por el programa y 9 por el reporte.

    Publicar un comentario