Вы находитесь на странице: 1из 10

INSTITUTO TECNOLÓGICO SUPERIOR DE INFORMÁTICA

“IBARRA”

Organización de Empresas

INTEGRANTES:Jessica Cortés

NIVEL: 3ro Sistemas - Diurno

AÑO
LECTIVO
INTRODUCCION

Definición de un lenguaje ensamblador:

Lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito


micro programable, como el microprocesador de una computadora o el micro controlador de
un autómata (un PLC) . Este lenguaje está compuesto por un conjunto de instrucciones que
determinan acciones a ser tomadas por la máquina. Un programa de computadora consiste en
una cadena de estas instrucciones de lenguaje de máquina (más los datos). Estas instrucciones
son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el
propio programa o eventos externos. El lenguaje de máquina es específico de cada máquina o
arquitectura de la máquina, aunque el conjunto de instrucciones disponibles pueda ser similar
entre ellas.
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.

Importancia del lenguaje ensamblador


La importancia del lenguaje ensambladorradica principalmente que se trabaja directamente
con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este,
tiene la ventaja de que en el se puede realizar cualquier tipo de programas que en los
lenguajes de alto nivel no lo pueden realizar. Otro punto sería que los programas en
ensamblador ocupan menos espacio en memoria.
2. Ventajas y desventajas del Lenguaje Ensamblador
Ventajas
1.     .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como
este lenguaje es el más cercano a la máquina la computadora lo procesa mas rápido.
2.     Eficiencia de tamaño.- Un programa en ensamblador no ocupa mucho espacio en
memoria porque no tiene que cargan librerías y demás como son los lenguajes de alto nivel
3.     Flexibilidad .- Es flexible porque todo lo que puede hacerse con una máquina, puede
hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una
u otra forma limitantes para explotar al máximo los recursos de la máquina. O sea que en
lenguaje ensamblador se pueden hacer tareas específicas que en un lenguaje de alto nivel no
se pueden llevar acabo porque tienen ciertas limitantes que no se lo permite 
Desventajas
Tiempo de programación .- Como es un lenguaje de bajo nivel requiere más instrucciones para
realizar el mismo proceso, en comparación con un lenguaje de alto nivel. Por otro lado,
requiere de más cuidado por parte del programador, pues es propenso a que los errores de
lógica se reflejen más fuertemente en la ejecución.
Programas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los
programas fuentes; simplemente requerimos más instrucciones primitivas para describir
procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los
programas, y nuevamente reduce la productividad de los programadores.
Peligro de afectar recursos inesperadamente .- Que todo error que podamos cometer, o todo
riesgo que podamos tener, podemos afectar los recursos de la maquina, programar en este
lenguaje lo más común que pueda pasar es que la máquina se bloquee o se reinicialize. Porque
con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones
inválidas, que normalmente no aparecen al usar un lenguaje de alto nivel.
Falta de portabilidad.- Porque para cada máquina existe un lenguaje ensamblador; por ello,
evidentemente no es una selección apropiada de lenguaje cuando deseamos codificar en una
máquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras.

Tamaño
Por las mismas razones que vimos en el aspecto de velocidad, los compiladores e intérpretes
generan más código máquina del necesario; por ello, el programa ejecutable crece. Así, cuando
es importante reducir el tamaño del ejecutable, mejorando el uso de la memoria y teniendo
también beneficios en velocidad, puede convenir usar el lenguaje Ensamblador. Entre los
programas que es crítico el uso mínimo de memoria, tenemos a los virus y manejadores de
dispositivos (drivers). Muchos de ellos, por supuesto, están escritos en lenguaje Ensamblador.

Flexibilidad
Las razones anteriores son cuestión de grado: podemos hacer las cosas en otro lenguaje, pero
queremos hacerlas más eficientemente. Pero todos los lenguajes de alto nivel tienen
limitantes en el control; al hacer abstracciones, limitan su propia capacidad. Es decir, existen
tareas que la máquina puede hacer, pero que un lenguaje de alto nivel no permite. Por
ejemplo, en Visual Basic no es posible cambiar la resolución del monitor a medio programa; es
una limitante, impuesta por la abstracción del GUI Windows. En cambio, en ensamblador es
sumamente sencillo, pues tenemos el acceso directo al hardware del monitor.
Resumiendo, la flexibilidad consiste en reconocer el hecho de que
Todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de
esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitante para explotar al
máximo los recursos de la máquina.

Tiempo de programación
Al ser de bajo nivel, el Lenguaje Ensamblador requiere más instrucciones para realizar el
mismo proceso, en comparación con un lenguaje de alto nivel. Por otro lado, requiere de más
cuidado por parte del programador, pues es propenso a que los errores de lógica se reflejen
más fuertemente en la ejecución.
Por todo esto, es más lento el desarrollo de programas comparables en Lenguaje Ensamblador
que en un lenguaje de alto nivel, pues el programador goza de una menor abstracción.

ESTRUCTURA

1. SINTAXIS DE UN LENGUAJE ENSAMBLADOR

- Estructura de una línea:

 Instrucción en ensamblador
 Etiqueta nemotécnico operandos comentarios
 Instrucción en lenguaje máquina
 Dirección código de operación
 Dirección de los operandos

- Características de los ensambladores modernos:

 Formato libre.
 Delimitadores de campo.

- Tipos de líneas en un programa ensamblador

 Instrucciones.
 Ejecutables por el computador.
 Pseudoinstrucciones
 Indicaciones o directivos para el traductor.
 No ejecutables por el computador.

Estructura y Tecnología de Computadores I


Estructura de un lenguaje ensamblador -2-

2. CAMPOS DE UNA INSTRUCCIÓN EN ENSAMBLADOR

Etiqueta

- Identifica la línea en la cual se encuentra.


- Se asocia a la dirección en la cual se encuentra la instrucción o el dato, o a la constante
definida.
- Recomendaciones

 Utilizar sólo letras o números (comenzar por una letra).


 Colocar la primera letra de la etiqueta en el primer carácter de la línea.

Nemotécnico

- Identifica:

 Un código de operación del lenguaje


 Una pseudoinstrucción

Campo de operandos

- Identifica los operandos que intervienen en la instrucción o pseudoinstrucción.


- Tipos de operandos:

 Constantes
 Numéricas:decimales (D), binarias (%, B), octales (O,@,Q,C), hexadecimales (H,$).
 Alfabéticas: entre comillas.
 Símbolos
 Predefinidos: registros, contador de dirección de ensamblado.
 Implícitos: etiquetas de dirección.
 Explícitos: mediante pseudoinstrucciones.
 Expresiones

3. PSEUDOINSTRUCCIONES

- Manipulación del contador de dirección de ensamblado

 Indica la dirección a partir de la cual se localizan los datos o instrucciones


acontinuación.

Eje: ORG operando

- Definición de símbolos

 Da un valor a un símbolo.

Eje: ETIQ EQU expresión

- Reserva de espacio en memoria (definición de variables)

 Con valor inicial: reserva espacio para los datos indicados en la lista deexpresiones, y
les pone los valores iniciales indicados (tamaño de cada dato:S=B,W ó L).

Eje: ETIQ DC.S expr1,expr2,…,exprN

 Sin valor inicial: reserva espacio para tantas variables como se indica en laexpresión
(tamaño de cada dato: S=B,W ó L).

Eje: ETIQ DS.S expresión

- Control de traducción

 Marca el final del programa fuente

Eje: END

- Almacenamiento en posición par

 Hace que el siguiente objeto se almacene a partir de la próxima posición de memoria


con dirección par.

Eje: EVEN

- Enlace entre programas

 Indicación de símbolos externos: EXT, REF, XREF, EXTERNAL.


 Indicación de símbolos exportables: ENT, DEF, XDEF, PUBLIC.

- Acciones de ensamblado condicional

 Incluyen en el ensamblado o no grupos de instrucciones del programa fuente.


Eje: IF… ELSE… ENDIF

- Ejecución de listados e informes

 Título para las cabeceras: TITLE, NAME.


 Salto de página: PAGE, SPAGE.
 Impresión u omisión de parte del programa fuente: LIST, NOLIST.
 Inclusión de la tabla de símbolos: SYMBOL, TABLE

INTRODUCCIÓN BASICA DE 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.

Fue usado principalmente en los inicios del desarrollo de software, cuando aun no se contaba
con los potentes lenguajes de alto nivel. Actualmente se utiliza con frecuencia en ambientes
académicos y de investigación, especialmente cuando se requiere la manipulación directa de
hardware, se pretenden altos rendimientos o un uso de recursos controlado y reducido.

Este lenguaje es complejo por su sencillez. Esto quiere decir que, a diferencia de los lenguajes
de alto nivel, aquí no hay funciones que nos solucionen y simplifiquen el algoritmo, si no que
hay que implementar hasta los pasos más elementales.
Para los PIC se han creado unas instrucciones y una estructura de programa que lo hacen más
sencillo y atractivo todavía.

EJERCICIOS
SUMA
RESTA
MULTIPLICACIÓN

DIVISION
BIBLIOGRAFÍA:

Internet: www.google.com

www.elrincondelbago.com

Manual de Lenguaje ensamblador

www.mis-algoritmos.com

Вам также может понравиться