Você está na página 1de 6

Investigacin de lenguaje ensamblador

ORGANIZACIN COMPUTADORAS DE LAS


MENDEZ GARCIA SARA
RAMIREZ PASCUAL RAMON 1CM21

Lenguaje ensamblador de bajo nivel


Lenguaje de Bajo Nivel. (Ensamblador)

Se denomina lenguaje mquina a la serie de datos que la parte fsica de la computadora o hardware, es capaz de interpretar. La parte fsica de una computadora, slo distingue datos de tipo binario, es decir, constituidos por dos nicos valores a los que se denomina valor 0 y valor 1. La informacin que hace que el hardware de la computadora realice una determinada actividad de llama instruccin (conjunto de unos y ceros) Ventajas del lenguaje ensamblador de Bajo nivel: Mayor facilidad de codificacin y, en
general, su velocidad de clculo, ahorran tiempo y requieren menos atencin a detalles. Se incurren en menos errores y los que se cometen son ms fciles de localizar.

Desventajas del lenguaje ensamblador de Bajo nivel: dependencia total de la maquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes mquinas). El programador ha de conocer perfectamente el hardware del equipo, ya que maneja directamente las posiciones de memoria, registros del procesador y dems elementos fsicos.

Netwide Assembler
Bien ahora vamos a explicar el ensamblador que eleg. El (NetWide Assembler
en ingls) o NASM, es un ensamblador libre para la plataforma Intel x86. Puede ser usado para escribir programas tanto de 16 bits como de 32 bits (IA-32).

El NASM fue escrito originalmente por Simon Tatham con ayuda de Julian Hall, y actualmente es desarrollado por un pequeo equipo en SourceForge que le hace mantenimiento.
Veremos cmo se lleva a cabo la ejecucin de cdigo En NASM aparece dividido en tres secciones (datos con valor de inicializacin, datos no inicializados e instrucciones de programa). Por ltimo, la seccin instrucciones de programa. (Text nomenclatura en ingles) es donde escribimos las instrucciones de ensamblador (las instrucciones de cdigo mquina) El comienzo del programa se indica mediante la directiva global _start al principio de la seccin .text . Es la forma que tenemos de indicarle al ensamblador cul es la primera instruccin a ejecutar en nuestro programa
..start: inicio mov ax,data dato a escribir mov ds,ax conjunto de datos si existen mov ax,stack dato a guardar mov ss,ax forma en la que se ejecutara dato mov sp,stacktop operacion o accion que hara el dato mov dx,hello mensaje de bienvenida mov bx, maneja datos y los almacena para procesamiento mov cx, comentario imprimir int dato, entero

mov ebx salida


Bien ahora vamos con la parte interna como trabaja la maquina adentro para editarlo y poner mi toque personal es necesario llevar acabo el siguiente proceso en cual puedo manipular el cdigo y la forma como se desplazar mis instrucciones pero en este ensamblador no se aceptan errores.

Edicin - Transcripcin del programa escrito en lenguaje simblico a un fichero de texto. - Programa en lenguaje simblico: programa fuente. - Herramienta: editor de textos.

Traduccin Conversin automtica del programa fuente a su equivalente en lenguaje mquina. - Programa en lenguaje mquina: programa objeto. Ensamblador: traductor de lenguaje ensamblador a lenguaje mquina. Genera un fichero con el programa objeto. Compilador: traductor de lenguaje de alto nivel a lenguaje mquina. Genera un fichero con el programa objeto. Intrprete: traductor de lenguaje de alto nivel a lenguaje mquina. Ejecuta las sentencias del programa fuente a medida que las traduce. Montaje - Generacin de un programa ejecutable a partir de uno o varios mdulos de cdigo Objeto que yo decido si son de tipo entero caracteres o decimales .

Carga - Transferencia del programa ejecutable a la memoria de la maquina desde el fichero en disco, y lanzamiento de la ejecucin. Cargador binario absoluto: toma el programa ejecutable y lo carga en las Direcciones de memoria especificadas en el mismo. Cargador reubicador: redefine las direcciones relativas presentes en el Programa ejecutable. Verificacin de la ejecucin - Comprobacin de los efectos causados por la ejecucin de las instrucciones en las Variables y el estado de la mquina. Para estar seguros de lo que paso la maquina utiliza el depurador. Visualizacin de los registros de la mquina. Visualizacin de los contenidos de la memoria del computador. Ejecucin del programa pas a paso o por conjuntos de instrucciones. Establecimiento de puntos de ruptura.

CONCLUSIONES
Es increble poder profundizar en este tipo de conocimientos me percate que muchas cosas las cuales ahora s, no tena ni la menor idea de lo que se trataba poco a poco en esta investigacin fui aprendiendo muchas cosas a la par del apoyo de la profesora pude aclarar mis dudas e inquietudes sobre este tema como se inicia un lenguaje en la mquina , las caractersticas con las cuenta cmo funciona sus ventajas y desventajas pude a travs de la prctica empezar a manipular el nasm que es un ensamblador muy prctico un poco confuso pero divertido y completo ,de una manera prctica s que no es la ms ptima pero poco a poco voy obtener herramientas para manejar con ms capacidad este tipo de lenguajes al principio era rara y nueva esta informacin. Con empeo se puede todo, ya tengo una perspectiva de todo lo que hace una maquina en primera instancia, a su vez como podemos ayudarla o empeorarla.

Bibliografa
Matus Vargas Alejandro arquitectura x86editorial MC GRAW HILL 1994 Salazar Aquino miguel lenguaje de maquina editorial CREA SERVICT 1998 Noriega Rojas Hernndez programacin 1 editorial DAMASCO 2000 PAGINAS DE INTERNET CONSULTADAS
http://linuxassembly.org http://linuxassembly.org/articles/linasm.html http://www.leto.net/papers/writing-a-useful-program-with-nasm.txt http://linuxassembly.org/howto/hello.html http://linuxassembly.org/startup.html http://linuxassembly.org/articles/startup.html http://www.janw.easynet.be/eng.html http://www.gnu.org/manual/gas http://www.gnu.org/onlinedocs/gcc_toc.html http://www.gnu.org/manual/gdb-4.17/gdb.html http://leto.net/writing/nasm.php http://linuxassembly.org/howto/Assembly-HOWTO.html http://navet.ics.hawaii.edu/~casanova/courses/ics312_fall07/nasm_howto.html http://www.logix.cz/michal/doc/i386/ http://pdos.csail.mit.edu/6.828/2004/readings/i386/toc.htm http://www.cilinder.be/docs/next/NeXTStep/3.3/nd/Assembler/

Você também pode gostar