Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

.

global _start

_start:
movia r2, a # a
ldw r8, 0(r2)
movia r3, b # b
ldw r9, 0(r3)
movia r5, N
ldw r5, 0(r5)
movia r6, M
ldw r6, 0(r6)
movi r1, 0
mov r13, r3
for:
call producto_escalar
beq r5, r0, finsi
mov r7, r2
addi r2, r2, 4
ldw r8, 0(r2)
subi r5, r5, 1
br for
for1:
beq r6, r0, finpara
add r1, r1, r12
addi r7, r7, 1
addi r3, r3, 4
ldw r9, 0(r3)
subi r6, r6, 1
br for
finpara:
add r13, r13, r5
br for
finsi:
movia r15, r
stw r1, 0(r15)

producto_escalar:
movi r12, 0 # r
loop:
call multiplicacion
beq r5, r0, endloop
add r12, r12,r10
addi r2, r2, 4
addi r3, r3, 4
ldw r8, 0(r2)
ldw r9, 0(r3)
subi r5, r5, 1
br loop
endloop:
ret
multiplicacion:
# Parámetros:
# r8: Elemento a que multiplica b
# r9: Elemento b que multiplica a

movi r10, 0 # R
beq r9, r0, finsi1
mientras:
ble r9, r0, finmientras
andi r11, r9, 1
beq r11, r0, finsi2
add r10, r10, r8
srli r9, r9, 1
slli r8, r8, 1
br mientras
finsi2:
srli r9, r9, 1
slli r8, r8, 1
br mientras
finmientras:
br finsi1
finsi1:
ret
.data
a: .word 1, 2, 3
.word 4, 5, 6 #Matriz 1
.word 7, 8, 9
b: .word 1, 2, 3
.word 4, 5, 6 #Matriz 2
.word 7, 8, 9
r: .skip 4 # r
N: .word 3 # filas de matriz
M: .word 3 #columnas de matriz

You might also like