LENGUAJE DE INTERFAZ
1.1 Importancia del lenguaje ensamblador
La importancia del 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. Otro punto sería que los programas
en ensamblador ocupan menos espacio en memoria.
Características
El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un
microprocesador, puede necesitar ser modificado, para poder ser usado en otra máquina
distinta. Al cambiar a una máquina con arquitectura diferente, generalmente es necesario
reescribirlo completamente.
Los programas hechos por un programador experto en lenguaje ensamblador son
generalmente mucho más rápidos y consumen menos recursos del sistema (memoria RAM
y ROM) que el programa equivalente compilado desde un lenguaje de alto nivel. Al
programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se
ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por
un microprocesador por lo que se pueden crear segmentos de código difíciles y/o muy
ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el
lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están
disponibles en los lenguajes de alto nivel.
También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir
que se interrumpa durante su ejecución.
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 limitante 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 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.
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.
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).
6. 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 maquina, 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 numero que se agrega al PC es la longitud de una
instrucción en palab
al PC, si una instrucción tiene dos palabras de largo se agrega 2, y así sucesivamente.
7. Función de MAR: Registro de direcciones de la memoria (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 numero de bit que hay en el MAR es igual al del ca
que existe entre el PC y el MAR es que durante el ciclo de ejecución de una instrucción, el PC y el
MAR sirven al mismo fin. Sin embargo, muchas de las instrucciones de la maquina hacen
referencia a la memoria y operan con los datos que están en ella. Como la dirección de los datos
suele ser diferente de la instrucción siguiente se necesita el MAR.
8. Función de RD: Registro de datos: 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 numero de bit que dicho canal.
9. Función de IR: Registro de instrucciones (IR): es un registro que conserva el código de operación
de la instrucción en todo el ciclo de la maquina. 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.
10. Función de PSW: Palabra de estado de programa (PSW): la palabra de estado o condición de
programa almacena información pertinente sobre el programa que este ejecutándose. Por
ejemplo al completarse una función de la unidad aritmética lógica se modifica un conjunto de bit
llamados códigos (o señales de condición). Estos bit especifican si el resultado de una operación
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 LA MEMORIA PRINCIPAL:
• Unidad de memoria que se comunica directamente con la CPU.
• Almacena solo los programas y datos que necesita en ese momento el procesador.
• Es relativamente rápida.
• Se comunica directamente con los dispositivos de memoria auxiliar, mediante un
procesador de E/S.
• Se comunica directamente con la memoria caché.
• Tecnología fundamental: circuitos integrados semiconductores (RAM). Una parte más
pequeña de la memoria principal es ROM.
• La RAM tiene dos modos de operación 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. Tienen mayor capacidad que las estáticas.
1.4 EL 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.
• Las interrupciones constituyen quizá el mecanismo más importante para la
conexión del microcontrolador con el mundo exterior, sincronizando la ejecución
de programas con acontecimientos externos.
1.5 LLAMADAS O 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.8 DESPLEGADO DE MENSAJES EN EL MONITOR
Top Related