Unidad 4
Unidad 4
Unidad 4
Trabajo Final:
Archivo Editar Compilar Rep.Interm Ejecutar Salir
Abrir Nuevo Memoria Arbol sint. Prog. Obj
Guardar Guardar Disco Cod.Tres Dir Ejecutar
Eliminar Salir Salir Not. Polaca Salir
Salir Cuadruplos
Salir
4.1 Registros
Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar
direccionamiento de memoria y proporcionar capacidad aritmtica.
Los registros son espacios fsicos dentro del microprocesador con capacidad de 4 hasta 64 bits
dependiendo del microprocesador que se emplee.
Los registros son direccionables por medio de una vieta, que es una direccin de memoria, a
travs de las cuales se hace referencia a cada uno de ellos.
Los bits que componen un registro, por conveniencia, se numeran de derecha a izquierda (15, 14,
13.3, 2, 1, 0), los registros est divididos en seis grupos los cuales tienen un fin especfico.
Los registros se dividen en los siguientes grupos:
- Registro de segmento.
- Registros de apuntadores de instrucciones.
- Registros apuntadores.
- Registros de propsito generales.
- Registro ndice.
- Registro de bandera
Registros de uso general
4.1 Registros
4.2 Lenguaje ensamblador
4.3 Lenguaje mquina
4.4 Administracin de
memoria
El registro acumulador AX, est dividido en dos partes AH y AL (de 8 bits cada uno)
Interviene en las operaciones aritmticas y lgicas, despus de la operacin arroja un resultado.
El registro base BX, est dividido en dos partes los cuales son BH y BL
Se utiliza en transferencias de datos entre la memoria y el procesador.
El registro contador CX, est dividido en dos partes CH y CL.
Se utiliza como contador en ciclos (LOOP), en operaciones con cadenas (REP), y en
desplazamientos (CL).
El registro de datos DX, est dividido en tambin dos partes DH y DL.
El registro DX, se utiliza en operaciones de multiplicacin y divisin junto con el registro AX y en
operaciones de entrada y salida de puertos, su mitad inferior DL contienen el nmero de puertos.
Registros de segmentos
Un registro de segmento se utiliza para alinear en un lmite de prrafo o dicho de otra forma
codifica la direccin de inicio de cada segmento y su direccin en un registro de segmento supone
cuatro bits 0 a su derecha.
Un registro de segmento tiene 16 bits de longitud y facilita un rea de memoria para
direccionamientos conocidos como el segmento actual.
Los registros de segmentos de segmento son:
CS (Segmento de Cdigo)
DS (Segmento de Datos)
SS (Segmento de Pila)
ES (Segmento Extra)
FS
GS
Registro Apuntador de Instrucciones (IP)
El registro apuntador de instrucciones (IP) consta de 16 bits y contiene el desplazamiento de
direccin de la siguiente instruccin que se ejecutar durante la ejecucin del programa.
Los procesadores 80386 y posteriores tienen un IP ampliado de 32 bits llamado EIP.
Registro ndice
Los registros ndice fuente (SI) e ndice destino (DI), estn disponibles para direccionamientos
indexados y para realizar las operaciones aritmticas de sumas y restas.
Estas operaciones son las operaciones de punta de las operaciones aritmticas.
Registro de bandera
Los registros de banderas sirven para indicar el estado actual de la mquina y el resultado del
procesamiento.
Cuando algunas instrucciones piden comparaciones o clculos aritmticos cambian el estado de
las banderas.
4.2 Lenguaje ensamblador
Los lenguajes ensambladores son ms fciles de utilizar que los lenguajes mquina, pero al igual
que ellos, dependen del procesador en particular que se utilice.
El lenguaje de bajo nivel por excelencia es el ensamblador.
Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos.
Por ejemplo:
Los nemotcnicos (instrucciones) tpicos para llevar a cabo las operaciones aritmticas son: ADD,
SUB, DIV, MUL, etc.
Un programa escrito en el lenguaje ensamblador, requiere de una fase de traduccin al lenguaje,
mquina para poder ser ejecutado directamente por la computadora.
El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa
traducido en lenguaje mquina se conoce como programa objeto.
El programa objeto ser entendido directamente por el procesador y ejecutado por la
computadora.
Los lenguajes ensambladores tienen sus aplicaciones muy reducidas, se centran bsicamente en
aplicaciones de tiempo real, control de procesos y de dispositivos electrnicos.
Es en estos dispositivos donde se aplica con mayor eficacia este lenguaje y por lo tanto donde
tienen mayor rendimiento en las aplicaciones.
Caractersticas de los Ensambladores
El cdigo escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido
directamente por los programadores debido a que su estructura se acerca ms al lenguaje
mquina, es decir, lenguaje de bajo nivel.
Los programas hechos en el lenguaje ensamblador son generalmente ms rpidos y consumen
menos recursos del sistema (memoria RAM y ROM)
Al disear programas en lenguaje ensamblador se pueden crear programas que se ejecutan ms
rpidamente y ocupan menos espacio que con los programas escritos en lenguajes de alto nivel.
Con el lenguajes ensamblador se tiene un control muy preciso de las tareas realizadas por un
microprocesador por lo que se pueden crear segmentos de cdigo difciles de programar en un
lenguaje de alto nivel.
Tambin se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se
interrumpa durante su ejecucin.
Los ensambladores avanzados ofrecen los siguientes elementos:
- Control avanzado de estructuras
- Procedimientos de alto nivel, declaracin de funciones
- Tipos de datos que incluyen estructuras, registros, uniones, clases y conjuntos
- Avanzado procesamiento de macros.
El lenguaje Ensamblador es directamente traducible al lenguaje de mquina, y viceversa;
simplemente, es una abstraccin que facilita su uso para los programadores.
Por otro lado, la computadora no entiende directamente al lenguaje ensamblador, es necesario
traducirle a lenguaje mquina.
Ventajas del lenguaje ensamblador
El lenguaje ensamblador proporciona un control absoluto sobra la PC. Los programas escritos en
lenguaje ensamblador son rpidos, compactos y seguros durante la ejecucin.
1.- Velocidad: Como trabaja directamente con el microprocesador al ejecutar un programa, este
lenguaje es el ms cercano a la mquina, por lo que la computadora lo procesa y ejecuta ms
rpido.
2.- Eficiencia de tamao: Un programa en ensamblador no ocupa mucho espacio en memoria
porque no tiene que cargar libreras y dems como son los lenguajes de alto nivel.
3.- Flexibilidad: Es flexible porque todo lo que puede hacerse con un mquina, puede hacerse en el
lenguaje ensamblador; los lenguajes de alto nivel tienen una u otra forma limitantes para explotar
al mximo los recursos de la mquina.
El lenguaje ensamblador ofrece a un programador la capacidad de realizar tareas muy tcnicas que
seran difciles, si no es que imposibles de realizar en un lenguaje de alto nivel.
El conocimiento del lenguaje ensamblador permite una compresin de la arquitectura de la
mquina que ningn lenguaje de alto nivel puede ofrecer.
4.3 Lenguaje Maquina
Se denomina lenguaje maquina a la serie de datos que la parte fsica de la computadora o
hardware, es capaz de interpretar.
La informacin que hace que el hardware de la computadora realice una determinada actividad se
llama instruccin.
Por consiguiente, una instruccin es un conjunto compuesto de ceros y unos.
Las instrucciones as formadas equivalen a acciones u operaciones elementales que realiza la
computadora, por lo que al conjunto de dichas instrucciones que son interpretadas directamente
por la mquina se denomina lenguaje mquina.
El lenguaje de la primera generacin, utilizando en una computadora es el lenguaje de cdigo
mquina.
Es el nico lenguaje que un microprocesador entiende de forma nativa.
El lenguaje mquina fue el primer que empleo el hombre para la programacin de las primeras
computadoras.
Una instruccin en lenguaje mquina puede representarse como el siguiente conjunto de ceros y
unos:
0110110010100100
Esta es la instruccin que es almacenada y reconocida por los registros para que posteriormente
sea interpretada internamente por la computadora para realizar una operacin.
Un ejemplo sencillo de lenguaje mquina seria trasladar un contenido de un lugar a otro:
TRASLADAR 00011101, 11010110.
Esto indicara que el contenido de la posicin de memoria 11010110 haba que pasarlo a la
posicin de memoria 00011101.
CARACTERSTICAS
Las instrucciones de mquina suelen cumplir con las siguientes caractersticas.
Realiza una nica funcin.
Emplea un nmero fijo de operandos. Estos operandos podran ser implcitos o estar
representados explcitamente en la instruccin que se utiliza.
La codificacin de las instrucciones es bastante sistematica.
La codificacin puede ser sencilla. Esto depende del dato que se vaya a representar y del nmero
de bits que lo conformen.
Es el nico lenguaje que reconoce internamente una computadora para que pueda ejecutar un
algoritmo.
Las instrucciones en el lenguaje de mquina son autocontenidas e independientes.
Autocontenidas:
Contiene toda la informacin necesaria para ejecutarse.
Se trabaja a nivel de instrucciones, es decir, su programacin es al ms fino detalle del proceso
que se desea realizar.
Independientes:
No requieren informacin adicional de otras instrucciones para su ejecucin.
Su interpretacin es independiente de la posicin en el programa o en la memoria.
Ventajas:
a) Ventaja: el lenguaje mquina: cuenta con la posibilidad de cargar (transferir un programa
a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de
ejecucin superior a cualquier otro lenguaje de programacin.
b) Mayor adaptacin a la programacin de los equipos.
c) Posibilidad de obtener la mxima velocidad con mnimo uso de memoria.
d) El uso en general de este tipo de lenguaje es para programar controladores (drivers).
e) Se utiliza para programar los dispositivos internos de los procesadores.
Desventajas:
a) El lenguaje mquina se ve afectado por la dificultad y lentitud en la codificacin.
b) Tiene poca fiabilidad debido a que un pequeo error puede causar grandes daos a los
sistemas.
c) Se tiene gran dificultad para verificar y poner a punto los programas.
d) Imposibilidad de escribir cdigo independiente de la mquina.
e) Mayor dificultad en la programacin y en la comprensin de los programas.
f) El programador debe conocer ms de un centenar de instrucciones.
g) Es necesario conocer en detalle la arquitectura de la mquina.
44. Ejemplo de cdigo:
Muestra de cdigo de mquina y lenguaje assembler del procesador Intel 8088. El cdigo de
mquina se resalta en rojo, el assembler en magenta y las direcciones de memoria donde se
encuentra el cdigo en azul.
4.4 Administracin de la memoria.
La administracin de memoria se refiere a los distintos mtodos y operaciones que se encargan de
obtener la mxima utilidad de la memoria, organizando los procesos y programas que se ejecutan
de manera tal que se aproveche de la mejor manera posible el espacio disponible.
Para poder lograrlo, la operacin principal que realiza consiste en trasladar la informacin que
deber ser ejecutada por el procesador, a la memoria principal.
Actualmente esta administracin se conoce como Memoria Virtual ya que no es la memoria fsica
el procesador sino una memoria virtual que la representa.
Algunas ventajas que presenta esta memoria, permite que el sistema cuente con una memoria
ms extensa teniendo la misma memoria real, con lo que sta se puede utilizar de manera mas
eficiente.
Y por supuesto, que los programas que son utilizados no ocupen lugar necesario.
Entre las principales operaciones que desarrolla la administracin de memoria se encuentran la
reubicacin, que consiste en trasladar procesos activos detro y fuera de la memoria principal para
maximizar la utilizacin del procesador.
La proteccin, mecanismo que protegen a los procesos que se ejecutan, de interferencias d otros
procesos; uso compartido de cdigos y datos, con lo que el mecanismo de proteccin permite que
ciertos pasos de un mismo programa que comparten una tarea tengan memoria en comn.