1.1 Importancia de la
programación en lenguaje ensamblador
Definición:
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 microprocesador.
La
importancia del lenguaje ensamblador es 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. Otro punto sería que los programas en ensamblador ocupan menos
espacio en memoria.
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.
Ø
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.
Algunos registros básicos:
Dentro del conjunto básico de registros
de control se deben incluir a los siguientes:
A. Contador de programa (PC).
B. Registro de direcciones de la memoria
(MAR).
C. Registro de datos (RD).
D. Registro de instrucciones (IR).
E. Palabra de estado de programa (PSW).
Función del PC
La
función del PC consiste en seguir la pista de la instrucción por buscar
(capturar) en el siguiente ciclo de máquina, por lo tanto contiene la dirección
de la siguiente instrucción por ejecutar. El PC es modificado dentro del ciclo
de búsqueda de la instrucción actual mediante la suma de una constante. El número
que se agrega al PC es la longitud de una instrucción en palabras.
Función
de MAR
Funciona como registro de enlace entre la CPU
y el canal de direcciones. Cuando se logra el acceso a la memoria la dirección
es colocada en el MAR por la unidad de control y ahí permanece hasta que se
completa la transacción. El número de bit que hay en el MAR es igual al del
canal de direcciones.
Función
de RD
La
función del RD consiste en proporcionar un área de almacenamiento temporal
(memoria intermedia, acumulada o buffer) de datos que se intercambian entre la
PCU y la memoria. Los datos pueden ser instrucciones (obtenidos en el ciclo de
ejecución) o datos del operando (obtenidos en el ciclo de ejecución). Debido a
su conexión directa con el canal de datos el RD contiene el mismo número de bit
que dicho canal.
Función
de IR
Es
un registro que conserva el código de operación de la instrucción en todo el
ciclo de la máquina. El código es empleado por la unidad de control de la CPU
para generar las señales apropiadas que controla le ejecución de la
instrucción. La longitud del ER es la longitud en bit del código de operación.
Función
de PSW
La palabra de estado o condición de programa
almacena información pertinente sobre el programa que este ejecutándose.
Además
el PSW contiene bit que hacen posible que la computadora responda a solicitudes
de servicio asincrónicas generadas por dispositivos de Entrada-Salida, o
condiciones de error interno. Estas señales se denominan interrupciones.
1.3 Memoria Principal (RAM)
RAM es el acrónimo inglés de Random Access Memory (memoria de acceso aleatorio). 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 (puede darse el caso de que una sola instrucción necesite varia palabras), o un dato o parte de un dato (también un dato puede ocupar varias palabras).
A la cantidad de palabras que forman la MP se le denomina capacidad de memoria.
Una palabra está formada a su vez de unidades más elementales llamadas bits, del mismo modo que en el lenguaje natural una palabra está formada por letras.
1.6 MODOS DE DIRECCIONAMIENTO
Referencias:
https://es.slideshare.net/romo91/el-procesador-y-sus-registros-internos
http://leo-yac.wixsite.com/lenguaje-ensamblador/llamadas-a-servicios-del-sistema
http://leo-yac.wixsite.com/lenguaje-ensamblador/modos-de-direccionamiento
http://leo-yac.wixsite.com/lenguaje-ensamblador/desplegado-de-mensaje-en-el-monitor
1.3 Memoria Principal (RAM)
RAM es el acrónimo inglés de Random Access Memory (memoria de acceso aleatorio). 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 (puede darse el caso de que una sola instrucción necesite varia palabras), o un dato o parte de un dato (también un dato puede ocupar varias palabras).
A la cantidad de palabras que forman la MP se le denomina capacidad de memoria.
Una palabra está formada a su vez de unidades más elementales llamadas bits, del mismo modo que en el lenguaje natural una palabra está formada por letras.
1.4 CONCEPTO DE INTERRUPCIONES
Una interrupción es una situación especial que
suspende la ejecución de un programa de modo que el sistema pueda realizar una
acción para tratarla. Tal situación se da, por ejemplo, cuando un periférico
requiere la atención del procesador para realizar una operación de E/S.
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.
1.5 LLAMADAS A SERVICIOS DEL SISTEMA
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. Dado que el acceso a ciertos recursos del sistema requieren la ejecución de código en modo privilegiado, el sistema operativo ofrece un conjunto de métodos o funciones que el programa puede emplear para acceder a dichos recursos. 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.
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.
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.
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.
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.
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.
•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.
Referencias:
https://es.slideshare.net/romo91/el-procesador-y-sus-registros-internos
http://leo-yac.wixsite.com/lenguaje-ensamblador/llamadas-a-servicios-del-sistema
http://leo-yac.wixsite.com/lenguaje-ensamblador/modos-de-direccionamiento
http://leo-yac.wixsite.com/lenguaje-ensamblador/desplegado-de-mensaje-en-el-monitor
No hay comentarios:
Publicar un comentario