ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Lenguaje Ensamblador

jborre14 de Septiembre de 2014

5.906 Palabras (24 Páginas)1.323 Visitas

Página 1 de 24

UNIVERSIDAD DE CARTAGENA

A la altura de tos los tiempos

TRABAJO DE LENGUAJE ENSAMBLADOR

PRESENTADO POR

BORRE PASCUALES JAIME

CUADRO ARNEDO SADIR

SEMESTRE VII

INGENIERIA DE SISTEMAS A DISTANCIA

CARTAGENA, 30 DE AGOSTO DE 2014

INTRODUCCION

Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno.

Lenguaje Ensamblador es la primera abstracción del Lenguaje de Máquina, consistente en asociar a los códigos de operación (OPCODES) palabras clave que faciliten su uso por parte del programador.

Como se puede ver, el Lenguaje Ensamblador es directamente traducible al Lenguaje de Máquina, y viceversa; simplemente, es una abstracción que facilita su uso para los seres humanos. Por otro lado, la computadora no entiende directamente el Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina. Originalmente, este proceso se hacía a mano, usando para ello hojas donde se escribían tablas de programa similares al ejemplo de la calculadora que vimos anteriormente. Pero, al ser tan directa la traducción, pronto aparecieron los programas Ensambladores, que son traductores que convierten el código fuente (en Lenguaje Ensamblador) a código objeto (es decir, a Lenguaje de Máquina).

Una característica que hay que resaltar, es que al depender estos lenguajes del hardware, hay un distinto Lenguaje de Máquina (y, por consiguiente, un distinto Lenguaje Ensamblador) para cada CPU. Por ejemplo, podemos mencionar tres lenguajes completamente diferentes, que sin embargo vienen de la aplicación de los conceptos anteriores:

1. Lenguaje Ensamblador de la familia Intel 80x86.

2. Lenguaje Ensamblador de la familia Motorola 68000.

3. Lenguaje Ensamblador del procesador POWER, usado en las IBM RS/6000

OBJETIVOS.

Las características que definen un lenguaje de alto nivel son que están orientados a un determinado tipo de problema y que son independientes de la máquina.

 El primer objetivo de un lenguaje de alto nivel es el de proporcionar un medio conveniente para expresar la solución a un determinado problema. Existen otras dos formas frecuentes para lograr este objetivo, las matemáticas y los lenguajes naturales, como el español. El problema de los lenguajes naturales es su riqueza y su complejidad, que los hacen imposible de utilizar para programar un computador. Los conceptos matemáticos están claramente en los lenguajes de programación, añadiendo palabras tomadas de los lenguajes naturales (especialmente inglés) que Combinadas con ciertos símbolos matemáticos y de acuerdo a unas reglas, sirven para crear un programa que pueda controlar el computador. El resultado es un buen lenguaje de alto nivel con una estructura clara, que no difiere demasiado de la forma de pensar y de expresarnos que tenemos normalmente.

 Un segundo objetivo es la simplicidad, que se logra con un reducido conjunto de operaciones básicas, unas cuantas reglas para combinar estas operaciones, y por encima de todo, la falta de excepciones a estas reglas.

 Tercer objetivo está la eficiencia, los programa elegidos en el lenguaje deben traducirse a lenguaje máquina de una forma rápida y el código máquina resultante debe ser eficiente.

CONCEPTO DE LENGUAJE DE PROGRAMACIÓN

Lenguaje de programación: notación formal para describir algoritmos o funciones que serán ejecutadas por un computador.

Tipos de lenguajes

 Lenguaje máquina.

 Lenguajes simbólicos.

 Lenguajes ensambladores.

 Lenguajes macroensambladores.

 Lenguajes orientados a problemas.

 Lenguajes de diseño de sistemas de información.

 Lenguajes de 5ª generación.

 Lenguajes de bajo nivel: orientados al computador.

 Lenguaje máquina.

 Lenguaje ensamblador.

 Lenguaje macroensamblador.

 Lenguajes de alto nivel: orientados al problema.

LENGUAJES DE ALTO NIVEL

Son métodos convenientes y sencillos de describir las estructuras de información y las secuencias de acciones necesarias para ejecutar tareas concretas.

Características:

 Posibilidad de traducción automática a lenguaje máquina.

 Independencia de la arquitectura del computador.

 Transportabilidad.

Clasificación:

 Lenguajes de propósito general.

 Lenguajes de propósito específico (comercial, científico, educativo).

 Lenguajes procedimentales.

 Lenguajes declarativos.

LENGUAJES DE BAJO NIVEL

 Totalmente vinculados a la estructura del computador.

 Diseñados para sacar partido de la máquina.

Lenguaje máquina

 Único lenguaje comprendido y ejecutado por un computador.

 Instrucciones: cadenas de unos y ceros.

Características:

 Dependencia absoluta de la arquitectura del computador.

 Imposibilidad de transportar programas entre distintas máquinas, salvo que sean compatibles.

 Instrucciones poco potentes.

 Programas muy largos.

 Códigos de operación, datos y referencias en binario.

DEFINICION DEL LENGUAJE ENSAMBLADOR.

El lenguaje ensamblador es el sistema alfanumérico para escribir código máquina mediante Expresiones abreviadas (mnemotécnicos).

La compilación es más complicada porque incluye la conversión de operaciones matemáticas Complejas, comandos de lenguaje natural o tipos de comandos complejos.

Cada ordenador tiene su propio lenguaje ensamblador, exclusivo de su CPU; un lenguaje de alto nivel (LAN) puede ser compilado en distintas máquinas.

Es usado principalmente porque hay aplicaciones o programas que deben tratar directamente con los registros de la máquina, la memoria, dispositivos de E/S, etc.

El único lenguaje que entienden los micros controladores es el código máquina formado por ceros y unos del sistema binario.

Un lenguaje ensamblador puro es aquel en que cada sentencia produce exactamente una instrucción máquina. En otras palabras, hay una correspondencia biunívoca entre las instrucciones de máquina y las sentencias del programa en ensamblador. Si cada línea de un programa en ensamblador contuviera una sentencia ensamblador y si cada palabra de máquina contuviera una instrucción de máquina, entonces un programa de n líneas escrito en ensamblador produciría un programa en lenguaje de máquina que ocuparía n palabras.

La razón por la que se usa el lenguaje ensamblador en lugar de programar el lenguaje máquina (octal o hexadecimal) consiste en que es mucho más fácil programar en ensamblador. Es muy diferente usar nombres y direcciones simbólicas que hacerlo en binario u octal. La mayoría de la gente puede recordar que las abreviaturas para la adición, la sustracción, la multiplicación y la división son ADD, SUB, MUL y DIV, pero pocos pueden recordar que las instrucciones máquina son 24576, 57344, 28672 y 29184. El programador en lenguaje ensamblador sólo tiene que recordar los nombres simbólicos ADD, SUB, MUL, DIV, ya que el ensamblador los traduce a las instrucciones máquina. Por el contrario, el programador en lenguaje máquina debe recordar, o consultar constantemente, los valores numéricos.

En cuanto a las direcciones, el programador en lenguaje ensamblador puede dar nombres simbólicos a las posiciones de memoria y dejarle al ensamblador la tarea de suministrar los valores numéricos correctos. El programador en lenguaje máquina debe trabajar siempre con los valores numéricos de las direcciones. En consecuencia, nadie programa hoy en día en lenguaje máquina, aunque se hacia hace años, antes de que se inventaran los ensambladores.

Los lenguajes ensambladores tienen otra propiedad, además de la correspondencia uno a uno entre las sentencias en ensamblador y las instrucciones máquina, que los distingue de los lenguajes de alto nivel. El programador en ensamblador tiene acceso a todos los recursos e instrucciones de la máquina a la que se aplica, pero no el programador en un lenguaje de alto nivel. Por ejemplo si la máquina tiene un indicador de desbordamiento, el programador en lenguaje ensamblador puede examinarlo; uno en Pascal no puede hacerlo directamente. Es decir, que todo lo que puede hacerse en lenguaje máquina puede hacerse también en lenguaje ensamblador, pero muchas instrucciones, registros y otras cosas por el estilo no están disponibles para que el programador en lenguaje de alto nivel las use. Los lenguajes para la programación

...

Descargar como (para miembros actualizados) txt (40 Kb)
Leer 23 páginas más »
Disponible sólo en Clubensayos.com