Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Lenguajes y autmatas II
Asignatura
Actividades de aprendizaje
Unidad 4. Generacin de cdigo objeto
2
- -
Introduccin
Lenguaje Mquina:
Caractersticas:
3
- -
Actividad 1:
Mapa conceptual de la arquitectura de los microprocesadores Intel y compatibles.
PROCESADORES INTEL
Octava generacin
Intel Core
Intel Core2
Intel Core 2 Do
Intel Dual Core
Intel i3, i5,i7
4
- -
Actividad 2:
Cuadro sinptico de la estructura y funcionamiento del lenguaje ensamblador.
encuentra.
- Se asocia a la direccin en la
Etiqueta cual se encuentra la instruccin
o el dato, o a la constante
definida.
Identifica:
Nemotcnico -Un cdigo de
Campos de una operacin del lenguaje
instruccin en -Una
ensamblador pseudoinstruccin
5
- -
Actividad 3:
Lista de las caractersticas principales del lenguaje maquina a fin de llevar un cdigo
intermedio y este pueda ser reconocido por el hardware.
Los datos se referencian por medio de las direcciones de memoria donde se encuentran
(no aparecen nombres de variables o constantes).
Existe muy poca versatilidad para la redaccin de instrucciones, ya que, tienen un formato
rgido en cuanto a la posicin de los distintos campos (cdigo de operacin seguido de los
campos dedicados a los operandos).
El lenguaje maquina depende y est ntimamente ligado a la CPU del ordenador. Esto hace
que los programas en dicho lenguaje no sean transferibles de un modelo de ordenador a
otro es decir existe baja portabilidad.
La salida del generador de cdigo es un cdigo preparado y adaptado para ser ejecutado,
directa, o indirectamente, en una arquitectura especfica. La adaptacin consiste en
aprovechar al mximo las caractersticas de la mquina para optimizar la ejecucin en
tiempo y en memoria.
Figura 3.1 Diagrama de la generacin del programa objeto a partir del programa fuente
6
- -
3-Administracin de la memoria:
Uno de los propsitos de la generacin de cdigo final es la de traducir la representacin
simblica en cdigo intermedio de etiquetas y objetos de datos (variables, temporales,
parmetros, etc.) a direcciones reales en el mapa fsico de memoria.
4-Asignacin de Registros:
Las instrucciones que operan con registros son ms cortas y rpidas. Realizar un uso
eficiente de los registros es fundamental para generar un buen cdigo.
5-Registros de segmento
7
- -
6-Seleccin de instrucciones:
La generacin de cdigo intermedio debe tener en cuenta el juego de instrucciones de la
mquina destino. Las traducciones a cdigo objeto deben ser, adems de correctas,
eficientes.
Ejemplo: Cdigo en lenguaje ensamblador para rotar bits con acarreo a la derecha con la
instruccin rcr
8
- -
DESARROLLO
Cdigo de nuestro programa el cual tendr como objetivo imprimir los valores
hexadecimales del 1 al 15
9
- -
Al compilar se obtiene
10
- -
RESULTADOS
11
- -
Actividad 4:
La memoria o memoria principal puede ser considerada como una matriz de bytes, cada
uno con una direccin. El administrador de memoria es parte del sistema operativo que
regula el uso o liberacin de la memoria. Una instruccin es una orden que se le da a la
computadora para que ejecute una operacin. Un proceso es una secuencia de
instrucciones que forman parte de un programa en ejecucin.
La memoria es un recurso necesario en todo sistema informtico y por eso debe ser
gestionado con cuidado, esta operacin la ejecuta el administrador de memoria o Memory
Manager. El administrador de memoria est encargado de asignar la memoria que necesita
un proceso, as como liberarla cuando el proceso la haya desocupado. Tambin debe estar
al pendiente de qu secciones de la memoria se estn utilizando y cules no, as como
debe tener control sobre cules procesos estn utilizando la memoria.
Para poder administrar la memoria es necesario poder acceder a ella ya sea para leerla,
guardar datos o simplemente reservarla, los bytes de la memoria pueden accederse por
medio de direcciones, las cuales pueden ser representadas de diferentes maneras. En un
programa fuente se utilizan direcciones simblicas, que ms adelante representan
direcciones concretas en un programa ejecutable.
12
- -
Hardware bsico
Los registros del procesador son espacios pequeos de memoria en el procesador que se
utilizan, entre otras cosas, para que las instrucciones del procesador tomen de ah los
datos que necesitan para procesarlos.
Por otra parte, la memoria principal y los registros del procesador son las nicas secciones
que pueden ser accesadas directamente, e incluso muchas de las instrucciones de la
mquina toman como parmetro el contenido de los registros ya mencionados, pero no hay
instrucciones que acepten direcciones de la memoria en disco, lo que implica que si se
necesitan datos de la memoria en disco, deben copiarse en los registros o en memoria
principal para poder ser utilizados. Es decir que, para poder ejecutar un proceso, es
necesario asegurarse de que este posea un espacio en memoria exclusivo para su uso y el
rango legal de direcciones de memoria disponibles, esto se hace por medio del
almacenamiento de un registro base y un registro lmite. El registro base guarda la primera
13
- -
direccin en memoria que corresponde a ese proceso, mientras que el registro lmite
muestra el rango mximo de memoria que necesita el proceso, por ejemplo, si el registro
base equivale a la posicin 2000 en memoria y el registro lmite tiene un valor de 500, el
proceso ocupa un espacio en memoria desde la direccin 2000 hasta la 2500.
Figura 2: registros
Es posible proteger el espacio en memoria para cada proceso, esto se logra haciendo que
el CPU compare las direcciones generadas en modo usuario con el contenido de los
registros a los que se desea acceder y en cualquier intento de acceder a direcciones que
no le correspondan, generar un error fatal.
Reasignacin de direcciones
14
- -
Como el programador no sabe cules otros procesos van a estar en memoria al mismo
tiempo que el proceso que desea ejecutar, es necesario mover el programa a otra rea de
memoria en caso de ser necesario, es decir, si se necesita el espacio de memoria que est
utilizando ese proceso, el sistema operativo debe ser capaz de mover el proceso, ejecutar
otro y volver a cargar el proceso anterior justo en la instruccin en que haba quedado
antes de que fuera interrumpido.
15
- -
Una direccin lgica o direccin virtual es una direccin generada por el CPU, mientras
que una direccin fsica es una direccin de la unidad de memoria. Las direcciones lgicas
que son generadas por un programa son llamadas, como conjunto, espacio de direcciones
lgicas, estas generan tambin el espacio de direcciones fsicas, el cual el conjunto de las
direcciones fsicas homlogas a las direcciones lgicas.
16
- -
Carga dinmica
La carga dinmica consiste en cargar las rutinas hasta que sean invocadas, es decir, no se
cargan hasta que se necesitan y todas las rutinas se mantienen en un disco en un formato
reubicable y tambin se aplaza el clculo de direcciones. Cuando una rutina en un proceso
necesita convocar a otra, primero revisa si ya est cargada, de lo contrario la busca y la
carga en memoria para su uso con el cargador de memoria, esto implica la actualizacin
de las tablas de direcciones del programa para dar evidencia del cambio generado al
cargar la rutina.
Esto proporciona como ventaja que si una rutina no se necesita en tiempo de ejecucin,
nunca ser cargada en memoria, por lo tanto ahorrar memoria y resulta til si se necesita
disponer de mucho cdigo para administrar casos poco frecuentes.
El montaje esttico se da cuando las bibliotecas del lenguaje utilizado en el sistema son
tomadas como un mdulo y son integradas en el programa. Por otra parte el montaje
binario se da cuando se pospone hasta el tiempo de ejecucin el montaje del programa.
Sin embargo el montaje dinmicoocurre cuando en el fragmento de cdigo se incluye
un stud, una pieza de cdigo que indica cmo encontrar o agregar la rutina deseada en la
imagen binaria.
17
- -
Es decir, el montaje dinmico retrasa el montaje de los mdulos externos hasta que el
mdulo de carga haya terminado de crearse.
En Windows por ejemplo cuando queda poca RAM, el gestor de memoria virtual mueve
datos de la RAM a un espacio en disco llamado archivo de paginacin. Linux, sin embargo
emplea una particin especfica para el intercambio entre RAM y disco
denominada particin de intercambio (swap)
Desarrollo
Paginacin
Tcnica que consiste en dividir la memoria en zonas iguales llamadas marcos de pgina. A
su vez los procesos (un proceso es un programa en ejecucin) tambin se dividen en
partes del mismo tamao, denominadas pginas. El SO se encarga de asignar los marcos
18
- -
La asignacin de los marcos de pgina a las pginas no tiene que ser consecutiva y un
proceso puede estar ubicado en marcos no contiguos.
Segmentacin
Fragmentacin
19
- -
Fragmentacin Externa
Fragmentacin Interna
Observacin
Una estrategia comn para reducir el impacto de la fragmentacin es separar las zonas
del sistema de archivos que experimenten muchas ms lecturas y escrituras de otras
zonas ms voltiles donde se crean y borran continuamente archivos. Por ejemplo el SO
se compone de carpetas estticas que se modifican con mucha menor frecuencia que los
Perfiles de los usuarios donde se suele estar creando y
destruyendo informacin continuamente. Al separar ambas zonas en particiones
independientes logramos que el desfragmentado trabaje de forma mucho ms eficiente.
20
- -
Actividad 5:
Introduccin:
Simuladores SPIM estn disponibles para Windows (PCSpim), Mac OS X y Unix / Linux
basada en (xspim) sistemas operativos. Partir de la versin 8.0 en enero de 2010, el
simulador est licenciado bajo la norma licencia BSD.
En enero de 2011, un QtSpim importante versin 9.0 caractersticas que cuenta con una
nueva interfaz de usuario basada en la multiplataforma marco Qt IU y carreras de
Windows, GNU / Linux y Mac OS X. A partir de esta versin, el proyecto tambin ha sido
trasladado a SourceForge para un mejor mantenimiento. Se proporcionan versiones
precompilados de QtSpim para Linux (32 bits), Windows y Mac OS X, as como PCSpim
para Windows.
21
- -
Es necesario descargar el programa para poder evaluar lo que hemos estudiado a lo largo
del captulo 2. En esta seccin solo revisaremos algunos aspectos del programa SPIM que
nos ayudaran a simular los programas hasta el momento realizados.
22
- -
Desarrollo:
23
- -
.data
str1: .asciiz "Dame un numero: "
str2: .asciiz "Dame otro numero: "
str3: .asciiz "La suma de los numeros es : "
str4: .asciiz "\n\nFin del programa, Adios . . ."
24
- -
Figura 5: resultados
Conclusin
Observaciones:
El cdigo se puede escribir con cualquier editor de texto (texto sin formato) y
salvarse con cualquier extensin, se sugiere .asm o .s slo por organizacin.
25
- -
El cdigo principal debe incluir a la etiqueta main porque en el kernel del programa
existe un salto hacia esa etiqueta.
Una vez que finalice la ejecucin del programa (la cual puede hacerse paso a paso
o con mltiples pasos), si se continua ejecutando, ocurrir una excepcin, debido a que
el kernel no tiene ms cdigo por ejecutar.
Conclusin
Estas funciones son cubiertas por las unidades de programacin, equipos y entornos
software inteligentes dedicados, con interfaces sencillas para el usuario, y con canales y
protocolos de conexin con el autmata ya resueltos.
Con ellos, el usuario accede a las funciones que necesita (programacin, depuracin,
visualizacin, forzado, etc.) de forma rpida y flexible, segn procedimientos interactivos
que facilitan la aplicacin del autmata a cualquier proceso industrial.
26
- -
Bibliografas
Metodologa de la Programacin
PROGRAMACION ESTRUCTURADA.
27