diff options
| author | Alejandro Soto <alejandro@34project.org> | 2022-10-25 08:46:56 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2022-10-25 08:52:29 -0600 |
| commit | 746da8fe47003997ae0b762fe325c7fa8040cafb (patch) | |
| tree | 78f743b46cf02cb303a06540e532ece3d1f868f3 /tb/sim/tarea2.S | |
| parent | 2864ed33089d43a898928095de01eefecaf448e4 (diff) | |
Add sim test: tarea2
Diffstat (limited to 'tb/sim/tarea2.S')
| -rw-r--r-- | tb/sim/tarea2.S | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tb/sim/tarea2.S b/tb/sim/tarea2.S new file mode 100644 index 0000000..c372672 --- /dev/null +++ b/tb/sim/tarea2.S @@ -0,0 +1,44 @@ +@ Tarea 2, CE3201 Taller de Diseño Digital +@ Alejandro Soto Chacón, 2019008164 + +.global fibonacci +fibonacci: + mov r0, #0x150 + ldr r0, [r0] + mov r1, #0x200 + mov r2, #1 + mov r3, #1 + mov r4, #0 + tst r0, r0 + beq .end + ldr r6, =10000 @ Relativo a PC + .loop: + add r5, r2, r3 + add r4, r4, r2 + str r2, [r1], #4 + mov r2, r3 + mov r3, r5 + cmp r4, r6 + bhi .end + subs r0, r0, #1 + bne .loop + .end: + mov r5, #0x100 + str r4, [r5], #4 + mov r4, #0xff + mov r6, #0xaa + @ Necesariamente se cumple alguna de las dos condiciones + @ ya que una es la opuesta de la otra + strhi r4, [r5] + strls r6, [r5] + mov pc, lr + +@ Punto de entrada, requerido ya que el simulador solamente es capaz +@ ed establecer condiciones iniciales de registros, no de memoria. +@ En este caso se pasa el número de iteraciones en r0 y el stub lo +@ escribe en la posición correcta. +.global reset +reset: + mov r1, #0x150 + str r0, [r1] + b fibonacci |
