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