Está en la página 1de 12

FACULTAD:

Ingeniera

CARRERA:
Sistemas e Informtica

Programacin de Bajo Nivel

AUTOR:
Juan Carlos Herrera Lizma

DOCENTE:
Ing. Alexander Morales Gonzales

FECHA:
29 de Noviembre del 2013

TABLA DE CONTENIDO
INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES Pgina 1

1. INTRODUCCION . 3 2. HISTORIA DEL LENGUAJE ENSAMBLADO... 4 3. QUE ES UN LENGUAJE DE BAJO NIVEL.. 5 4. VENTAJAS Y DESVENTAJAS DEL LENGUAJE ENSAMBLADOR.... 6 5. CARACTERISTICAS DEL LENGUAJE ENSAMBLADOR.. 6 6. EJEMPLO DE OPERACIONES CON LENGUAJE ENSAMBLADOR.... 7 7. EJEMPLO DE OPERACIONES CON LENGUAJE ENSAMBLADOR.... 8 8. EJEMPLO DE OPERACIONES CON LENGUAJE ENSAMBLADOR.... 9 9. EJEMPLO DE OPERACIONES CON LENGUAJE ENSAMBLADOR.... 10 10. CAPTURA DEL EJEMPLO ... 11 11. CAPTURA DEL EJEMPLO ... 12

INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES

Pgina 2

Introduccin

Los programadores de aplicaciones e ingeniero de software con frecuencia tienen la necesidad de hacer interfaces directas de sus aplicativos con el sistema operativo, y para ello realizan estas rutinas en lenguaje ensamblador, lo que le permite tener control directo de las operaciones de entrada y salida en los recursos del PC, como monitores, impresoras y los dispositivos de memoria. El lenguaje ensamblador es una variante legible para el ser humano del lenguaje mquina que usan las computadoras para ejecutar programas, y al mismo tiempo la mejor manera de comunicarse con la PC y con el lenguaje mquina de programacin que utilice. Este lenguaje resulta indispensable cuando se desea escribir programas que controlen las E/S de la PC, agregar nuevas interfaces de E/S, escribir rutinas que aprovechen y maximicen el uso del hardware y en general realizar cualquier tarea que no pueden llevar a cabo los dems lenguajes de programacin

INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES

Pgina 3

Historia del Lenguaje Ensamblador


Para poder programar en Bajo nivel debemos conocer desde lo bsico ahsta lo mas complicado La primera Computadora programable fue la de ENIAC en 1946 pero s programaba mediante circuitos complejos que no eran nada funcionales. Despues se empez a utilizar el lenguaje maquina que son claves binarias que reprensentan un cdigo de operacin(opcode) Estas se almacenan en grupos de instrucciones llamados Programas

Esto llego a ser muy complicado Debido a que se deban aprender series enormes de cdigos binarios para realizar operaciones Por ejemplo: Para realizar la suma se tenia una instruccin binararia muy similar a 00101010010100101. Es por eso que se complicaba demasiado manejar este tipo de programacin Actualmente manejamos lenguajes de alto nivel que son ms sencillos que el lenguaje maquina Existe un lenguaje que naci para facilitar el Binary code este se llama Lenguaje Ensamblador

INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES

Pgina 4

Qu es un lenguaje de bajo nivel?

Los lenguajes de bajo nivel, tambin llamados lenguajes ensambladores, permiten al programador escribir instrucciones de un programa usando abreviaturas del ingls, tambin llamadas palabras nemotcnicas, tales como: ADD, DIV, SUB, etc. Un programa escrito en un lenguaje ensamblador tiene el inconveniente de que no es comprensible para la computadora, ya que, no est compuesto por ceros y unos. Para traducir las instrucciones de un programa escrito en un lenguaje ensamblador a instrucciones de un lenguaje mquina hay que utilizar un programa llamado ensamblador, como se muestra en la siguiente figura:

Funcionamiento de un ensamblador

INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES

Pgina 5

Ventajas del Lenguaje Ensamblador Los lenguajes ensambladores presentan la ventaja frente a los lenguaje maquina de su mayor facilidad de codificacin y , en general , su velocidad de calculo

Desventajas del Lenguaje Ensamblador Dependencia total de la maquina lo que impide transportabilidad de los programas .El lenguaje ensamblador del pc es distinto del lenguaje ensamblador del Apple Macintosh La formacin de los programadores es mas compleja que la correspondiente a los programadores de alto nivel, ya que no solo las tcnicas de programacin, sino tambin el conocimiento del interior de la maquina

Caractersticas del lenguaje ensamblador Ensamblador es directamente traducible al lenguaje mquina, y viceversa La computadora no entiende directamente el lenguaje ensamblador; es necesario traducirle al lenguaje mquina. Se utilizan traductores que convierten el cdigo fuente (en lenguaje ensamblador) a cdigo objeto El usar los traductores de cdigo son con el fin de facilitar la programacin y tener el control del hardware.

INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES

Pgina 6

Ejemplo de Operaciones Aritmticas con Lenguaje Ensamblador

Cdigo fuente : .model small .stack 64 .data n1 db 0 n2 db 0 suma db 0 resta db 0 multi db 0 divi db 0 msgn1 db 10,13"dame el primer valor:", '$' msgn2 db 10,13 "dame el segundo valor: ",'$' msg1 db 10,13, "suma=",'$' msg2 db 10,13,"resta=",'$' msg3 db 10,13, "multiplicacion= ",'$' msg4 db 10,13, "division =",'$' .code begin proc far mov ax,@data mov ds,ax

mov ah,09 lea dx,msgn1

INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES

Pgina 7

int 21h mov ah,01 int 21h sub al,30h mov n1 , al

mov ah,09 lea dx, msgn2 int 21h mov ah ,01 int 21h sub al,30h mov n2, al

mov al,n1 add al,n2 mov suma,al

mov al,n1 sub al,n2 mov resta,al

mov al,n1 mul n2 mov multi,al


INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES Pgina 8

mov al,n1 div n2 mov divi,al

mov ah,09 lea dx,msg1 int 21h mov dl,suma add dl,30 h int 21h

mov ah,09 lea dx,msg2 lea dx,msg2 int 21h mov dl,resta add dl, 30h mov ah,02 int 21h

mov ah, 09 lea dx,msg3 int 21h mov dl,multi


INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES Pgina 9

add dl, 30h mov ah,02 int 21h

mov ah,09 lea dx,msg4 int 21h mov dl,divi add dl,30h mov ah,02 int 21h

mov ah,4ch int 21h

begin endp end

INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES

Pgina 10

Captura del sistema

Programa para lenguaje ensamblador.- Turbo assembler Dosbox0.74 , el Note Pad++ , Assembly Tool

INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES

Pgina 11

CONCLUSIONES El lenguaje ensamblador a pesar de ser ms rpido de cualquier otro lenguaje es tambin el ms complejo por eso es utilizado para complementar los limitantes de los lenguajes de programacin de alto nivel, pero existen ramas donde es imprescindible el uso de lenguaje ensamblador como lo es la electrnica donde los recursos de los aparatos son limitados y es necesario utilizar lenguaje ensamblador

INGENIERIA DE SISTEMAS E INFORMATICA COMPILADORES

Pgina 12