Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Campus Querétaro
Alumno:
Docente:
27 de agosto de 2023
1
INDICE
Introducción………………………………………………………………………………………...…..3
1° programa: Multiplicación de 2 números…………………………………………………………….4
Segundo programa: Serie Fibonacci…………………………………………………………………..7
Códigos en ensamblador ……………………...…………………………………………………..10
Referencias ………………………………………………………………………………………….11
2
Introducción
El software MARIE ha sido diseñada con el propósito de servir como una herramienta educativa que
brinda una sólida comprensión de los conceptos fundamentales en arquitectura de computadoras y
programación. A través de su uso, los estudiantes tienen la oportunidad de adquirir conocimientos
esenciales sobre cómo se almacenan y acceden los datos en la memoria utilizando direcciones. El
conjunto de instrucciones disponible en MARIE les permite familiarizarse con operaciones clave
como cargar, almacenar, sumar, restar y operaciones lógicas. Al interactuar con el Contador de
Programa (PC), los estudiantes pueden comprender cómo se gestiona el flujo de ejecución
actualizando la PC después de cada instrucción.
3
PRIMER PROGRAMA
El diagrama describe el proceso de multiplicación entre dos números, R1 y R0. Se utiliza una
constante igual a 1 (R2) y se almacena el resultado en un acumulador (R3). El procedimiento implica
que mientras R1 (el segundo número) no sea igual a cero, se sumará el valor de R0 al acumulador una
vez, y se reducirá en 1 unidad (R2) el valor de R1. Esto se repetirá hasta que R1 llegue a cero, lo que
detendrá el ciclo. En resumen, R0 se suma repetidamente a sí mismo tantas veces como indique el
valor de R1, logrando así la multiplicación de ambos números.
4
5
6
SEGUNDO PROGRAMA
En cada iteración del bucle, sumamos los valores actuales de R0 y R1 y almacenamos el resultado en
R2, que es el contador. Luego, actualizamos los valores de R0 y R1 para avanzar en la serie de
Fibonacci. Usamos la instrucción "move" para temporariamente retener el valor de R0 y restarlo al
final del bucle para asegurarnos de que llegue a cero. Después, decrementamos el valor de N y
verificamos si todavía no ha llegado a cero. Si N no es igual a cero, regresamos al bucle y repetimos el
proceso.
7
Por ejemplo, si deseamos calcular el número Fibonacci con N igual a 5, comenzamos con R0 = 0 y R1
= 1. En la primera iteración, sumamos 0 y 1 para obtener 1, que almacenamos en R2. Luego,
actualizamos R0 y R1 para que R0 sea igual a 1 y R1 sea igual a 1. Continuamos este proceso de suma
y actualización hasta que N llegue a cero. Al final, el valor en R2 será el quinto número de la
secuencia de Fibonacci, que en este caso es 5.
8
9
Códigos en ensamblador:
Programa 1:
LOAD R0 20
LOAD R1 21
LOAD R2 22
LOAD R3 23
BZERO 9
ADD R3 R3 R0
SUB R1 R1 R2
BRANCH 4
STORE 23 R3
HALT
Programa 2:
LOAD R0 22
LOAD R1 21
LOAD R2 20
LOAD R3 19
MOVE R3 R3
BZERO 12
ADD R2 R0 R1
MOVE R0 R1
MOVE R1 R2
LOAD R2 21
SUB R3 R3 R2
BRANCH 4
STORE 20 R1
HALT
10
Referencias:
Nyugen, J. Joshi, S., Jiang, E. (August 2016). Introduction to MARIE, A Basic CPU
Simulator. Second Edition. https://marie.js.org/book.pdf
11