Investigacion

=Investigación Corta= = = Se utilizó el lenguaje de programación Object Pascal, el cual se utiliza para la plataforma de desarrollo Delphi. Así, se pudo diseñar la máquina virtual del ensablador con una interfaz gráfica amigable al usuario.
 * ¿Cómo llevo a cabo la soución? Variables y Objetos Utilizados[[image:logo-simulator.jpg align="right"]]

> Primero se revisó si el texto en la linea era una instrucción como add, mov, etc., u orig, end, etc., > Luego revisa si tiene los parámetros correspondientes. Despues si no es ninguna instrucción se revisó la etiqueta y despues de verla se hizo un for para recorrer el resto y ver si la instrucción y los parámetros son apropiados. > Por otro lado, ya revisado esto, cuando se da guardar primero no debe tener ningún error ya con ello se quitaron los espacios y las comas.
 * 1) Para el editor, primero se penso que instrucciones se utilizarían y en el tipo de parámetros que cada una de ellas llevaría. Ademas, se tomó en cuenta que existen los comentarios, textos, y que deben existir textos como "orig" y "end". Por lo que primero se penso en revisar todas las instrucciones y ver si existían etiquetas.
 * 1) Para virtual: se penso que ya se contaba con las instrucciones juntas, es decir, que las primeras dos o tres letras serían o la instrucción o la etiqueta. Por lo que se revisarón las etiquetas y se guardaron incluyendo la de msg que es despues de las primeras tres letras. Despues de ello se realizó el proceso de chequeo de cada instrucción y realización de la instrucción debida. Además, se chequeo que las etiquetas como jz o jl incluyen una etiqueta solo si se cumple el número anterior, por lo que se penso en una variable que guardara el número anterior.

Se utilizarón muchas variables durante el proceso, algunas de ellas son: i, j, k, l, m como contadores, s string donde se guarda la palabra igual, pc indica la posición. num ultimo número ingresado, entre otras. Algunos objetos utilizados que podemos mencionar: memo1 donde se escribe, memo2 que es la consola, memory que es la memoria, stringgrtid, y otros.


 * Funciones o métodos principales desarrollados.


 * 1) Para Editor: botón "Abrir" obtiene, a través de un Dialog Execute un archivo. Botón "Correr" lee linea por linea el memo verificando si es una instrucción o una etiqueta, si es una instrucción revisa sus parámetros. Y luego revisa si la instrucción y los metodos si no muestran un error. Botón "Save" utilizando un SaveDialog guarda el memo entero. Botón "Save Object" utilizando un SaveDialog guarda guarda un archivo con su nombre + OBJ.txt, además este no guarda de una sola vez, sino que revisa linea por linea y si existe un espacio, como o puntoycoma los elimina
 * 2) Para Virtual: botón "Open" abre un archivo utilizando OpenDialog verificando que tenga la extensión OBJ.txt, si no la tiene muestra un mensaje de "Incorrecto el Tipo de Archivo" ya que no ha pasado por el editor. Si posee la extensión, lo ingresa en el memo1. Botón "Correr" revisa instrucción por instrucción en el memo y hace lo indicado dependiendo del tipo de instrucción especificada.

Las instrucciones vienen clasificadas en grupos para que sea más facil utilizarlas.
 * Conjunto de Instrucciones del lenguaje ensamblador implementado.
 * 1) Transferencia de Datos: movimiento de datos entre registros y/o memoria.
 * 2) Aritméticas: operaciones aritméticas entre enteros.
 * 3) Manipulación de bits: operaciones lógicas
 * 4) Cadenas: movimiento, búsqueda y comparacion de cadenas de datos.
 * 5) Transferencia de programa: saltos, llamadas.
 * 6) Control del Procesador: detención, depuración.


 * Conclusiones
 * 1) Realizar la máquina virtual da una perspectiva de lo que es desarrollar el funcionamiento de una computadora, lo cual es muy importante debido a nuestras carreras.
 * 2) El Intel 8086 es uno de los microprocesadores más famosos creados por intel, gracias a que fue uno de los pioneros, junto con el 8088, de la arquitectura x86.
 * 3) El Proyecto final nos sirve de base para nuestro siguiente curso, Assembler.


 * Bibliografía
 * 1) Tosini, M. "Intel 8086, Arquitectura". Recopilado: 22 de mayo de 2010. Tomado desde: []
 * 2) Huang, H. "Intel 8086". Recopilado: 23 de Mayo de 2010. Tomado desde: []

= =

Home