0% encontró este documento útil (0 votos)
50 vistas30 páginas

Importancia del Lenguaje Ensamblador

El documento describe el lenguaje ensamblador, incluyendo sus ventajas como trabajar directamente con el hardware y ser eficiente en tamaño y flexibilidad. También describe sus desventajas como requerir más tiempo de programación y tener peligro de afectar recursos inesperadamente. Luego explica conceptos como registros, memoria RAM, interrupciones, llamadas al sistema y modos de direccionamiento.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
50 vistas30 páginas

Importancia del Lenguaje Ensamblador

El documento describe el lenguaje ensamblador, incluyendo sus ventajas como trabajar directamente con el hardware y ser eficiente en tamaño y flexibilidad. También describe sus desventajas como requerir más tiempo de programación y tener peligro de afectar recursos inesperadamente. Luego explica conceptos como registros, memoria RAM, interrupciones, llamadas al sistema y modos de direccionamiento.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

TECNOLÓGICO NACIONAL DE

MÉXICO
Instituto Tecnológico Superior de
Guasave

Unidad 1: Importancia de la programación


LENGUAJES DE
LENGUAJES DE INTERFAZ

Introducción al lenguaje ensamblador

El lenguaje ensamblador es un lenguaje de


bajo nivel, este tipo de programación nos
proporciona las herramientas para interactuar
con el hardware sus ventajas radican en la
eficiencia de tamaño y flexibilidad de los
programas sus desventajas son el tiempo de
programación y peligro de afectar recursos
inesperadamente.
LENGUAJES DE INTERFAZ

1.1 Importancia de la programación en lenguaje ensamblador

Radica 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 él se puede realizar cualquier tipo de programas que en los lenguajes de alto
nivel no lo pueden realizar. Este lenguaje proporciona las herramientas para tomar
control sobre todo lo que la computadora realiza físicamente.
LENGUAJES DE INTERFAZ

Ventajas y desventajas del Lenguaje Ensamblador


Ventajas
1.- Como trabaja directamente con el microprocesador, al ejecutar un
programa, la computadora lo procesa más rápido
LENGUAJES DE INTERFAZ

2.- Eficiencia de tamaño:

Un programa en ensamblador no ocupa mucho espacio en


memoria porque no tiene que cargar librerías y demás, como
lo hacen los lenguajes de alto nivel.
LENGUAJES DE INTERFAZ

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
LENGUAJES DE INTERFAZ

Desventajas
1.- 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.
LENGUAJES DE INTERFAZ

2.- 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.
LENGUAJES DE INTERFAZ

3.- Peligro de afectar recursos inesperadamente:

Que todo error que podamos cometer, o todo riesgo que podamos tener,
podemos afectar los recursos de la máquina, programar en este lenguaje lo más
común que pueda pasar es que la máquina se bloquee o se reinicialice. 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.
LENGUAJES DE INTERFAZ

4.- 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
LENGUAJES DE INTERFAZ

1.2 El procesador y sus registros internos

Definición de registros:

un registro es una memoria de alta velocidad y poca capacidad, integrada en el


microprocesador, que permite guardar transitoriamente y acceder a valores
muy usados, generalmente en operaciones matemáticas
LENGUAJES DE INTERFAZ

Función de los registros:


• Los registros están en la cumbre de la jerarquía de memoria, y son la manera más rápida que
tiene el sistema de almacenar datos. Los registros se miden generalmente por el número de
bits que almacenan; por ejemplo, un "registro de 8 bits" o un "registro de 32 bits“.

• La CPU contiene un conjunto de localidades de almacenamiento temporal de datos de alta


velocidad llamada registro. Algunos de los registros están dedicados al control, y solo la unidad
de control tiene acceso a ellos. Los registros restantes son los registros de uso general y el
programador es el usuario que tiene acceso a ellos.
LENGUAJES DE INTERFAZ

Los registros del procesador se emplean para controlar instrucciones en ejecución,


manejar direccionamiento de memoria y proporcionar capacidad aritmética.

Los registros son direccionales por medio de un nombre. Los bits por convención, se
numeran de derecha a izquierda
LENGUAJES DE INTERFAZ
Algunos registros básicos:

Los registros internos del procesador se puede clasificar en 6 tipos


diferentes:

1. Registros de segmento
2. Registros de propósito general
3. Registros de apuntadores
4. Registros de banderas
5. Registros de Puntero de instrucción
6. Registros de Pila
LENGUAJES DE INTERFAZ
LENGUAJES DE INTERFAZ
1.3 La memoria principal (RAM)
La memoria principal está formada por un conjunto de unidades llamadas
palabras. Dentro de cada una de estas palabras se guarda la información
que constituye una instrucción o parte de ella o un dato o parte de un dato.
LENGUAJES DE INTERFAZ
Organización de la Memoria RAM
A la cantidad de palabras que forman la memoria principal se le denomina
capacidad de memoria. Una palabra esta formada a su vez de unidades más
elementales llamadas bits, del mismo modo que en el lenguaje natural “Una
palabra esta formada por letras”.
LENGUAJES DE INTERFAZ
Operaciones Posibles:
RAM estática: flips-flops internos que almacenan información binaria.
La información almacenada es válida mientras la unidad está
encendida.

RAM dinámica: conjunto de pequeños condensadores que pueden


estar cargados o descargados. Debe refrescarse cada pocos
milisegundos para impedir la pérdida de información.
LENGUAJES DE INTERFAZ

1.4 EL CONCEPTO DE
INTERRUPCIONES

Es un evento que
permite cambiar el flujo
de ejecución de la CPU
sin que intervenga la
ejecución de las
instrucciones

HARDWARE SOFTWARE

Son provocadas por Son programadas


dispositivos externos. No
son programadas y ocurre por el usuario.
en cualquier momento. Generalmente E/S.
LENGUAJES DE INTERFAZ
Ejemplo rutina de interrupción
LENGUAJES DE INTERFAZ

PASOS PARA EL
PROCESAMIENTO
1. Terminar la ejecución de la instrucción máquina en curso.

2. Salva el valor de contador de programa, IP, en la pila, de manera que en la CPU, al terminar el proceso, pueda
seguir ejecutando el programa a partir de la última instrucción.

3. La CPU salta a la dirección donde está almacenada la rutina de servicio de interrupción (ISR, Interrupt Service
Routine) y ejecuta esa rutina que tiene como objetivo atender al dispositivo que generó la interrupción.

4. Una vez que la rutina de la interrupción termina, el procesador restaura el estado que había guardado en la
pila en el paso 2 y retorna al programa que se estaba usando anteriormente.
LENGUAJES DE INTERFAZ
EJEMPLOS DE INTERRUPCIONES

int 01h-->un solo paso


int 02h-->interrupcion no enmascarable
int 03h--> punto de interrupcion
int 04h-->desbordamiento
int 05h-->impresion de pantalla
int 08h-->Cronometro
int 15h-->Servicios del sistema
int 16h-->Funciones de entrada del teclado
int 18h-->Entrada con el Basic de Rom
int 19h-->Cargador de arranque
int 1Ah-->Leer y establecer la hora
int 1Bh-->Obtener el control con una interrupcion de teclado.
int 20h-->Terminar un programa
int 33h->Funciones del Raton
LENGUAJES DE INTERFAZ

1.5 Llamadas a servicios del sistema

Una llamada al sistema es un método o función que puede invocar un proceso para solicitar
un cierto servicio al sistema operativo.

En otras palabras, el sistema operativo actúa como intermediario, ofreciendo una interfaz de
programación (API) que el programa puede usar en cualquier momento para solicitar
recursos gestionados por el sistema operativo.
LENGUAJES DE INTERFAZ

Algunos ejemplos de llamadas al sistema son las siguientes:

Time: que permite obtener la fecha y hora del sistema.

Write: que se emplea para escribir un dato en un cierto dispositivo de salida, tales como una
pantalla o un disco magnético.

Read: que es usada para leer de un dispositivo de entrada, tales como un teclado o un disco
magnético.

Open: que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele
pasarse a write
LENGUAJES DE INTERFAZ

1.6 Modos de direccionamiento

Los llamados modos de direccionamiento son las diferentes maneras de especificar


en informática un operando dentro de una instrucción en lenguaje ensamblador.

Un modo de direccionamiento especifica la forma de calcular la dirección de memoria


efectiva de un operando mediante el uso de la información contenida en registros y / o
constantes, contenida dentro de una instrucción de la máquina o en otra parte.
LENGUAJES DE INTERFAZ
LENGUAJES DE INTERFAZ

1.7 Proceso de ensamblado y ligado


1. El programa utiliza un editor de texto para crear un archivo de texto ASCII, conocido como
archivo de código fuente.

2. El ensamblador lee el archivo de código fuete y produce un archivo de código objeto, una
traducción del programa a lenguaje máquina. De manera opcional, produce un archivo de
listado. Si ocurre un error, el programador debe regresar al paso 1 y corregir el programa.
LENGUAJES DE INTERFAZ

3. El enlazador lee el archivo de código objeto y verifica si el programa contiene alguna


llamada a los procedimientos en una biblioteca de enlace. El enlazador copia cualquier
procedimiento requerido de la biblioteca de enlace, lo combina con el archivo de código
objeto y produce el archivo ejecutable. De manera opcional, el enlazador puede producir
un archivo de mapa.

4. La herramienta cargador (loader) del sistema operativo lee el archivo ejecutable y lo


carga en memoria, y bifurca la CPU hacia la dirección inicial del programa, para que éste
empiece a ejecutarse.
LENGUAJES DE INTERFAZ

1.8 Desplegado de mensajes en el monitor

Todos los gráficos y el texto que se muestran en el monitor se escriben en la


RAM de visualización de video, para después enviarlos al monitor mediante el
controlador de video. El controlador de video es en sí un microprocesador de
propósito especial, que libera a la CPU principal del trabajo de controlar el
hardware de video.
LENGUAJES DE INTERFAZ
Un monitor de pantalla de cristal líquido (LCD) digital directo recibe un flujo de bits digitales
directamente desde el controlador de video, y no requiere del barrido de trama.

También podría gustarte