1
Fork 0
mirror of https://github.com/Steffo99/unisteffo.git synced 2024-11-24 08:54:21 +00:00
triennale-appunti-steffo/public/materials/year1/architettura/7_prodotto_scalare.md

53 lines
962 B
Markdown
Raw Normal View History

2022-02-03 01:08:09 +00:00
# Prodotto scalare in RISC-V
```riscv
# Che bello! Adoro l'assembly!
# Ommioddiofunzionawowimawizard
.global _start
# La sezione .data contiene i dati del programma
.section .data
primo: .word 1, 2, 3, 4, 5
secondo: .word 1, 2, 3, 4, 5
# La sezione .rodata contiene i dati del programma in sola lettura
.section .rodata
# La sezione .text contiene il testo del programma
.section .text
# s0: primo[s0]
# s1: secondo[s0]
# s2: monomio
# s3: indirizzo da cui prendere il valore
# s4: indice
# s5: dimensione array
# a0: somma
_start:
li s2, 0
li a0, 0
li s4, 0
li s5, 5
somma:
la s3, primo
add s3, s3, s4
lw s0, 0(s3)
la s3, secondo
add s3, s3, s4
lw s1, 0(s3)
mulw s2, s1, s0
add a0, a0, s2
addi s4, s4, 4
addi s5, s5, -1
bne zero, s5, somma
_end:
li a7, 93
ecall
```