Hola a todos, solo quiciera saber como poder hacer este ejercicio, solo necesito el codigo para compilarlo y ver que si funcione, ya despues de eso yo lo sigo intentando gracias
VAMOS A CREAR UNA COMPUTADORA A LA CUAL LLAMAREMOS SIMPLETRON. COMO SU NOMBRE LO INDICA, ES UNA MAQUINA SIMPLE, PERO COMO VEREMOS PRONTO, TAMBIEN ES PODEROSA. EL SIMPLETRON EJECUTA PROGRAMAS ESCRITRS EN EL UNICO LENGUAJE QUE COMPRENDE LA COMPUTADORA DE MANERA DIRECTA, ESTO ES EL LENGUAJE MAQUINA DE SIMPLETRON, LMS
EL SIMPLETRON CONTIENE UN ACUMULADOR, UN REGISTRO ESPECIAL EN EL CUAL LA INFORMACION SE COLOCA ANTES DE QUE EL SIMPLETRON UTILICE DICHA INFORMACION EN LOS CALCULOS O QUE LA EXAMINE DE DISTINTA MANERA. TODA LA INFORMACION EN EL SIMPLETRON SE MANEJA MEDIANTE PALABRAS. UNA PALABRA ES UN NUMERO DECIMAL DE CUATRO DIGITOS CON SIGNO, TAL COMO +3364, -1293, +0007, -0001, ETCETERA. EL SIMPLETRON ESTA EQUIPADO CON 100 PALABRAS DE MEMORIA Y SE HACE REFERENCIA A ESTAS PALABRAS MEDIANTE SU NUEMRO DE UBICACION 00, 01, ..., 99
ANTES DE EJECUTAR UN PROGRAMA LMS SIEMPRE SE COLOCA EN LA UBICACION 00
CADA INSTRUCCION ESCRITA EN LMS OCUPA UNA PALABRA EN LA MEMORIA DEL SIMPLETRON ( Y POR LO TANTO, LAS INSTRUCCIONES SON NUMEROS DECIMALES DE CUATRO DIGITOS ). ASUMIMOS QUE EL SIGNO DE UNA ISNTRUCCION LMS SIEMPRE ES POSITIVO, POR EL SIGNO DE UNA PALABRA DE DATOS PUEDE SER POSITIVO O NEGATIVO. CADA DIRECCION EN LA MEMORIA DEL SIMPLETRON PUEDE CONTENER UNA INSTRUCCION, UN VALOR DE DATO QUE EL PROGRAMA UTILIZA O UN AREA DE MEMORIA SIN UTILIZAR ( POR LO TANTO, INDEFINIDA ). LOS PRIMEROS DOS DIGITOS DE CADA INSTRUCCION LMS REPRESENTA EL CODIGO DE OPERACION, EL CUAL ESPECIFICA LA OPERACION A REALIZAR. RESUMIMOS LOS CODIGOS DE OPERACION DE LMS EN LA FIGURA 7.32
CODIGO DE OPERACION SIGNIFICADO
Operaciones de entrada/salida
#define LEE 10 LEE UNA PALABRA DESDE LA TERMINAL Y LA ALMACENA EN LA UBICACION DE MEMORIA
#define ESCRIBE 11 ESCRIBE UNA PALABRA DESDE UNA UBICACION ESPECIFICA DE MEMORIA HACIA LA TERMINAL
Operaciones de carga/almacenamiento
#define CARGA 20 CARGA UNA PALABRA DESDE LA UBICCION ESPECIFICA DE MEMORIA HACIA EL ACUMULADOR
#define ALMACENA 21 ALAMCENA UNA PALABRA DESDE EL ACUMULADOR HACIA UNA UBICACION ESPECIFICA DE MEMORIA
Operaciones aritmeticas
#define SUMA 30 SUMA UNA PALABRA DESDE UNA UBICACION ESPECIFICA DE MEMORIA A LA PALABRA ALMACENADA EN EL ACUMULADOR ( DEJA EL RESULTADO EN EL ACUMULADOR )
#define RESTA 31 RESTA UNA PALABRA DESDE UNA UBICACION ESPECIFICA DE MEMORIA DEL ACUMULADOR ( DEJA EL RESULTADO EN EL ACUMULADOR )
#define DIVIDE 32 DIVIDE UNA PALABRA DESDE UNA UBICACION ESPECIFICA DE MEMORIA ENTRE LA PALABRA DENTRO DEL ACUMULADOR ( DEJA EL RESULTADO EN EL ACUMULADOR )
#define MULTIPLICA 33 MULTIPLICA UNA PALABRA DESDE UNA UBICACION ESPECIFICA DE MEMORIA POR LA PALABRA ALAMCENADA DENTRO DEL ACUMULADOR ( DJEA EL RESULTADO EN EL ACUMULADOR )
Operaciones de transferencia de control:
#define SALTA 40 SALTA A UNA UBICACION ESPECIFICA DE MEMORIA
#define SALTANEG 41 SALTA HACIA UNA UBICACION ESPECIFICA DE MEMORIA SI EL ACUMULADOR ES NEGATIVO
#define SALTACERO 42 SALTA A UNA UBICACION ESPECIFICA DE MEMORIA SI EL ACUMULADOR ES IGUAL A CERO
#define ALTO 43 PARA, ES DECIR, EL PROGRAMA FINALIZO SU TAREA
FIGURA 7.32
LOS DOS ULTIMOS DIGITOS DE UNA INSTRUCCION LMS SON EL OPERANDO, EL CUAL ES LA DIRECCION DE LA UBICACION DE MEMORIA QUE CONTIENE LA PALABRA A LA CUAL SE APLICA LA OPERACION. AHORA, CONSIDEREMOS VARIOS EJEMPLOS DE PROGRAMAS LMS:
EJEMPLO 1
UBICACION NUMERO INSTRUCCION
00 +1007 LEE A
01 +1008 LEE B
02 +2007 CARGA A
03 +3008 SUMA B
04 +2109 ALMACENA C
05 +1109 ESCRIBA C
06 +4300 ALTO
07 +0000 VARIABLE A
08 +0000 VARIABLE B
09 +000 RESULTADO C