miércoles, 23 de noviembre de 2016

Resta de dos números

A en la imagen siguiente veremos el programa y como funciona para la resta de dos números, ya sea negativos o positivos.



Como podemos apreciar, el código en Assembler  es :

#SimuProc 1.4.3.0
MSG "RESTA"
MSG "Ingrese el primer numero: "
IN AX,1
STF 2A
MSG "Ingrese el segundo numero: "
IN AX,1
STF 2C
LDF 2A
SUBF 2C
MSG "Resultado: "
OUT 1,AX
HLT


donde 
MSG: muestra un mensaje por pantalla.
IN: Lleva al Registro el valor retornado por el puerto especificado.
STF[mem]: Guarda en [mem] y mem+1 el contenido de BX y AX
LDF[mem]: Carga en BX y AX un numero de 32 bits (IEEE) que esta almacenado en la dir [mem] y mem+1. En BX quedan los dígitos mas significativos.
SUBF[mem]: Funcion para restar numeros de 32 bits
OUT: El valor del registro
HLT: Termina el programa

El resultado al ser negativo en el recuadro de "Registro de control" la N es 1.
como se muestra en la imagen a continuación: 




La maquina funciona de la siguiente manera:



1.- Se lee en PC la próxima dirección a ejecutar: 000. (La dirección cambia a medida que se ingresan los datos)
2.- Envió al MAR la próxima dirección de memoria a leer.
3.- Llevo al MDR el contenido de dicha dirección de memoria.
4.- Le entrego al IR el dato para que lo decofifique e incremento el PC.
5.- Escribo en pantalla un mensaje





jueves, 17 de noviembre de 2016

Simuproc

Integrantes:
Rafael Cruz
Melody Alhambra
Descripción de Simuprox
*Este Simulador Hipotético muestra como funciona un procesador internamente, en el cual se puede ver que realiza este en cada Ciclo.
* Para empezar a programar primero necesitas tener un problema a resolver, luego planteas un algoritmo o pseudocódigo que resuelva dicho problema. Teniendo ya el algoritmo, procedes a convertirlo en assembler, esto no es muy difícil.
* El simulador solo entiende lenguaje ensamblador(assembler).
* Para ejecutar programas en este emulador hay que escribirlos primero en el lenguaje mencionado anteriormente.
Ahora veremos como crear programas en Simuproc:
* Se pueden entrar instrucciones manualmente desde la ventana ppal, pero la manera mas fácil es hacerlo desde el "editor 2". Entramos a los Editores presionando el botón "Editor" en la barra de herramientas. En el panel derecho ("Editor 2") podremos escribir el programa, las instrucciones serán resaltadas; puedes presionar el botón derecho del Mouse en este editor para acceder a más opciones.
Ejemplo:
Luego de escribir el programa lo enviamos a "Editor 1" utilizando el botón verde con una flecha hacia la izquierda como se aprecia en la imagen siguiente
Ahora para enviarlo a la memoria presionamos el botón que dice "enviar a memoria", como vemos en la imagen siguiente:
Si el programa no presenta errores de sintaxis, este pasará inmediatamente a la memoria de Simuproc.
Luego de tener el programa ya cargado en la memoria simulada del procesador, se puede salvar en un archivo .SMP o .ASM desde el editor que el simulador crea para no tener que volver a escribir el programa nuevamente.
                           Set de instrucciones

         Son más de 90 las instrucciones que soporta Simuproc, en la siguiente imagen se muestra las instrucciones más utilizadas:


  
        adjunto link donde estás todas las instrucciones que soporta Simuproc:



Conceptos básicos

Unidad aritmètica-lógica(ALU): Es la encargada de realizar las operaciones de carácter lógico y aritmético de los datos que poseen el acumulador y el otro registro usado para la operación.
Acumulador(AX): Registro que contiene uno de los operándos que intervienen en la operación que realiza la ALU, así com el resulado una vez realizada dicha operación.
Regisros de propósito general: Se emplan como memorias temporales así la longitud de palabra.
Registro puntero de pila (SP, stack pointer): Su misión es la de controlar una zona de la memoria, con estructura LIFO (Last in first out), en la qu se salva tmporalmente el cnotenido de algunos registros del procesador o contenido de la memoria.
Registro de estado: Registro en el que se depositan las condiciones o resulados de una determinada operación realizada. Cada bit de este registro se utiliza para uardar información específica, los cuales se denominan banderas(flags). Son los siguientes:
               C: Arrastre aritmético
               Z: Indica si la operación realizada ha dado cero.
               N: Indica el signo de la operación realizada, tabién conocido como S (sign).
               O: Registro de overflow o desbordamimento. 




             
           Simuproc se puede descargar del siguiente link: https://simuproc.softonic.com/descargar#downloading

Video de un ejemplo de suma de números en simuproc 

                https://www.youtube.com/watch?v=DtQG_-juLbA