Está en la página 1de 11

Instituto Tecnológico y de Estudios Superiores de Monterrey

Campus Querétaro

Tarea 3 : Programación en ensamblador

Modelación de sistemas mínimos y arquitecturas computacionales

Alumno:

Miguel Angel Becerra Ayala A01710076

Docente:

Rick Leigh Swenson Durie

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.

Los registros juegan un papel crucial en la manipulación y el almacenamiento temporal de datos, lo


que permite a los estudiantes practicar la realización de operaciones y cálculos. A través de la
programación en MARIE, los estudiantes aprenden a realizar saltos incondicionales y a tomar
decisiones utilizando saltos condicionales, lo que introduce conceptos de ramificación y flujo de
control. Además, MARIE permite la entrada y salida de datos, proporcionando una comprensión de
cómo las computadoras interactúan con su entorno exterior.

La simulación de MARIE brinda la oportunidad de aprender a depurar programas, identificar errores y


resolver problemas. También promueve la comprensión de la programación estructurada, incluyendo
bucles y estructuras condicionales, que son esenciales para la construcción de programas más
complejos. A través de la programación en MARIE, los estudiantes obtienen una comprensión
profunda de cómo se ejecutan las instrucciones a nivel de máquina y cómo se comunican los
diferentes componentes de la arquitectura de la computadora. En resumen, MARIE proporciona una
plataforma educativa invaluable para desarrollar una base sólida en la programación de bajo nivel y la
arquitectura informática.

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.

Programa establecido para realizar la multiplicación de 6 X 3. Los valores que se desean


multiplicar deben de estar colocados en el espacio 20 y 21.

4
5
6
SEGUNDO PROGRAMA

El diagrama describe el proceso para calcular el enésimo término de la secuencia de Fibonacci.


Comenzamos con los valores iniciales de 0 (R0) y 1 (R1) y utilizamos un contador (R2) para
almacenar el resultado final, así como una variable N (R3) que representa el número deseado en la
secuencia.

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

También podría gustarte