Características

El Simulador incluye unas Utilidades:

 

 

Otras Características:

La velocidad de Simulación puede ser cambiada en cualquier momento y se puede apagar la animación para una ejecución mucho mas rápida.

Puedes seguir el acceso en memoria de las instrucciones y/o variables a medida que se ejecuta la simulación.

Al ejecutarse el Simulador este chequea que Windows este usando fuentes pequeñas y que la resolución sea mínimo de 800x600. en otro caso sacara un dialogo para cambiarla si el usuario desea.

El Simulador registra los archivos de tipo .SMP para que se puedan abrir programas con solo darle doble clic a estos desde el explorador de Windows.

Hay dos Barras de Porcentaje que muestran el porcentaje de uso de la memoria simulada y porcentaje de uso del espacio reservado para la pila en ese momento!

A los Registros de control (flags) se les puede dar Doble clic para hacer un cambio forzado de estos en caso de que necesite depurar su programa. O si da clic con el botón derecho del mouse saldrá un menú para seleccionar que flag quiere activar/desactivar.

Para cargar programas en el simulador se pueden entrar las instrucciones manualmente por la interfaz del programa o

El simulador puede abrir varios tipos de archivos:

Abre los archivos .SMP que son los creados por este mismo cuando se salvan.

Abre archivos de extensión .TXT o .ASM que son compatibles con la versión anterior de este simulador. Ó bien, puedes usar mejor el editor Interno.

La Pila:

La pila es simplemente un conjunto de datos que se almacenan en una zona de  memoria, generalmente al final, y en la cual los datos se guardan de la siguiente manera: LIFO, es decir, Last In, First Out (Ultimo en entrar, Primero en salir).

La Pila es un buffer usualmente implementado como un bloque de n bytes o words consecutivos.  En este simulador cada posición de memoria es de 16 bits

Usos para la pila:

Ya sea para almacenar Datos, para llevar control del programa, la pila se usa para pasar variables entre funciones y para almacenar variables locales.

El programador es el responsable de reservar el espacio apropiado para la pila. Ya antes explique como hacerlo en este simulador.

Un problema con las pilas es que el programador las puede hacer muy pequeñas y puede que ocurra un stack overflow o desbordamiento de pila si se esta intentando usar la instrucción PUSH para enviar algo cuando ya la pila esta llena; o stack underflow si se usa la instrucción POP estando la pila vacía.

Por cada PUSH debe de haber luego un POP.  Cuando un programa o función termina su ejecución la pila debe quedar como estaba antes de que este se ejecutara, sino hay errores en este.

 

Editor Interno:

Herramienta para escribir tus programas mas fácilmente, tiene resaltado de sintaxis, soporte de Deshacer, Rehacer, Desplazamiento o tabulación de código seleccionado (presionando ctrl. Shit I ó U)  , marcadores (presionando Ctrl Shit. 1-9 para marcar y ctrl. 1-9 para ir al marcador), y otras opciones configurables…

Modificador de Memoria:

Lo usas para inicializar las variables y/o constantes de tu programa en ciertas posiciones de memoria cuando lo escribiste.

También puedes modificar posiciones de Memoria en cualquier momento, ya sea antes ó durante la ejecución de un programa en caso de que se necesite ya sea para depurar este modificando variables, o las mismas instrucciones con sus parámetros.

Conversor de Bases:

También dispones de un Conversor de bases por si se necesita realizar alguna conversión de una base a cualquier otra, soporta desde base2 a base36.

Tambien conversión para numeros de punto flotante a IEEE  754 y vice versa

Estadísticas:

El simulador constantemente le estará mostrando las estadísticas del programa en ejecución, como numero de instrucciones ejecutadas, que clase de instrucciones y la velocidad de la simulación.

Vigilante de Memoria:

Disponemos de un vigilante de memoria con el cual se pueden observar variables en las posiciones de memoria, este trae un historial que muestra los últimos 5 valores de las posiciones vigiladas.

Dispositivos Virtuales:

Cada computador real utiliza dispositivos periféricos de alguna clase para conectarse con el mundo exterior.   Así que SimuProc también esta proveído por unos dispositivos de E/S, también simulados.

 Estos están conectados a unos puertos virtuales los cuales pueden ser accedidos con las instrucciones In y Out dependiendo del tipo de dispositivo

Puerto 1: Teclado y Pantalla

Usado solo Para pedirle al usuario un numero de 32 bits, o para imprimir uno en pantalla, ej: IN AX,1 ;pide al usuario un numero IEEE 754

ej: OUT 1,AX ; escribe en pantalla el numero de 32 bits formado por BX y AX

Puerto 8 : Reloj

Lee los segundos del sistema, retorna un numero en binario (entre 0 y 59) al registro especificado. (Sirve para generar números aleatorios)

Puerto 9:  Switches

Este dispositivo, consiste de 16 switches en fila enumerados de 0 a 15.

Cualquier switch puede ser encendido resultando un “1” lógico correspondiente al bit del switch.

Puerto 13: PC-Speaker  (Nota: no todos los PC modernos tienen conexion a un Speaker interno)

Genera sonidos a través del altavoz de tu PC.

Para generar un Sonido necesitas dar la frecuencia y la duración en milisegundos.

La frecuencia debe ser entre 7Hz y 32767Hz

La frecuencia es leída del registro especificado en la instrucción, y la duración es leída del registro BX

Ejemplo: Supongamos que AX = 101000101000 y BX = 111110100

OUT 13,AX ; produce un sonido de 2600Hz durante 500 ms

Para averiguar los Hz de algunas notas se puede usar la sgte formula:

Frecuencia, en Hertz = 440 * 2^[(octavo-4) + (nota/12)]

Donde las notas comienzan así:

A=0 A#=1 B=2 C=3 C#=4 D=5 D#=6 E=7 F=8 F#=9 G=10 G#=11

siendo:

C=Do D=Re E=Mi F=Fa G=Sol A=La B=Si

Por ejemplo: C6 => 440 * 2^[(6-4) + 3/12)] = 2093 Hz, ó casi 2.1 kHz

SimuProc es Freeware (Gratis), Puede ser usado y distribuido libremente.

(c)2003  Vlaye