0% encontró este documento útil (0 votos)
3 vistas5 páginas

Instrucciones y Registros del Simulador MARIE

Cargado por

fernando.esqueda
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas5 páginas

Instrucciones y Registros del Simulador MARIE

Cargado por

fernando.esqueda
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA.

Organización y arquitectura de computadoras.


Reporte de laboratorio #2.

Alumno: Luis Fernando Esqueda García


Matricula: 1262059 Grupo: 551
Profesor: José Isabel García Rocha.
Desarrollo

Responda los siguientes cuestionamientos acerca del simulador MARIE.

1. Complete la Tabla 1 describiendo con sus propias palabras las acciones que realizan
cada una de las instrucciones del simulador.

Instrucción Descripción

Add X Agrega el valor en la dirección donde está X a AC.

Subt X Resta el valor en la dirección donde está X a AC.

AddI X Agrega el valor en la dirección X al AC.

Clear Borra AC, la hace 0.

Load X Carga el contenido en la dirección donde está X a AC.

Store X Almacena el contenido de AC en la dirección donde está X.

Input Carga un valor introducido por el usuario a AC.

Output Despliega en pantalla el valor de AC.

Jump X Salta a la instrucción con dirección del valor donde está X.

Skipcond (C) Ignora la siguiente sentencia con respecto al valor del C y AC.

JnS X Almacena PC en la dirección X y salta a la dirección X+1.

JumpI X Salta a la dirección contenida en X.

StoreI Guarda AC en la dirección que contiene el valor X.

LoadI Carga el valor de ac en la dirección guardada en una variable X.

Halt Señala donde finaliza el programa.

Tabla 1. Conjunto de instrucciones de MARIE.

2. Complete la Tabla 2 indicando la función de cada uno de los registros.

Registro Función
MAR Guarda la dirección de un valor.
PC Es el contador del programa, aumenta por cada instrucción realizada.
MBR Guarda un valor que viene o va a la memoria.
AC Acumula un dato que se manipula mediante instrucciones.
IN Guarda el valor que hay en la entrada.
OUT Muestra el valor en el acumulador, cuando una instrucción lo indica.
IR Guarda el registro de instrucción.
Tabla 2. Registros de MARIE.

Es necesario responder el porqué, en caso de no hacerlo la respuesta está mal.


3. ¿Cuál es el tamaño en bits del bus de direcciones y por qué?
12 para controlar las direcciones de memoria, ya que se tiene una memoria de 512 bytes,
que son 512 x 8, dando 4096 espacios en memoria, que se acceden mediante 12 bits.
4. ¿Cuál es el tamaño en bits del bus de datos y por qué?
Es de 16, pero 4 son para las instrucciones, así que son 12 para datos y 4 para
instrucciones.
5. ¿Cuál es el tamaño en bits del código de operación (opcode) de las instrucciones y
por qué?
4 bits, ya que solo se necesitan acceder a E (hexadecimal) instrucciones y esto se
puede obtener mediante 4 bits.
6. ¿Cuál es la dirección máxima de memoria que se puede acceder y por qué?
Es FFF, ya que el bus de direcciones y la memoria están limitados a esta dirección.
7. ¿Por qué el código de operación de los registros es de 3 bits?
Porque solo hay 7 registros, entonces la unidad de control solo necesita 3 bits para
acceder a 7 combinaciones diferentes 001-111.
8. ¿Por qué el registro MAR es de 12 bits?
Porque es donde se está guardando la dirección de los datos que se están trabajando.
Solo la dirección.
9. ¿Por qué el registro MBR es de 16 bits?
Porque en MBR se guarda tanto el código de operación como el dato que se utilizara, en
la memoria se escribe cada una de las instrucciones del programa y sus variables.
10. Implementar un código de marie de una subrutina:
Utilizando skipcond, etiquetas y saltos e implementar un código de Marie de un ciclo for
y crear el diagrama.
n es el número de ciclos que se llevan a cabo.
load n
Output
Skipcond 400
Jns for
halt

for, HEX 000


load n
Subt z
Store n
Jump 000

n, hex 0005
z, hex 001
1. Escriba un programa que contenga la subrutina CapturarArreglo, la cual permite al usuario
capturar datos en un arreglo en memoria. El programa principal debe pedir al usuario un
número que corresponda al tamaño del arreglo. Siguiente, se debe llamar a su subrutina la
cual permitirá al usuario capturar ‘n’ números y comenzará a almacenarlos a partir de la
dirección 300h, es decir, si el usuario ingresa el número 5, su subrutina pedirá al usuario 5
números y los almacenará en las direcciones 300h, 301h, 302h, 303h y 304h.
Input
Add n
Store na
Subt n
Skipcond 400
JnS captura
halt
captura, hex 000
Input
storeI n
Load n
add resta
store n
load na
Subt n
Jump 0004
n, hex 300
na, hex 300
resta, hex 001
Conclusiones y
comentarios
Me fue interesante y difícil aprender de la arquitectura de esta computadora, aunque llevamos desde el
primer día de clases estudiando la arquitectura de la computadora ver los registros en acción y el paso a
paso fue difícil para mí, pero aun así pude comprender cómo es que todo se mueve dentro de esta
computadora.

Dificultades.
Me fue difícil como es que funcionan algunas instrucciones y las descripciones del documento no ayudan
en nada, creo que te confunden más, en un principio tenía una idea medio clara de cómo se manipulan las
variables en esta arquitectura, pero me fue confuso terminar de comprenderlo después de leer el set de
instrucciones y darme cuenta que parece que las operaciones indirectas y directas suenan igual, pero
después de hacer varias pruebas en el simulador fui capaz de aclarar todo.

Referencias

También podría gustarte