Potrei avere un chiarimento sull'uso dei registri "s"?
Ho fatto questo codice però ho usato solo registri temporanei...avrei potuto anche usare i registri s?
In che modo (in caso affermativo)?
Grazie per la risposta anticipatamente!
# Scrivere in RiscV il seguente codice in C
#
# x = (x - 2) + y
# if(x < 0)
# x = x + 1
# else
# y = y + 1
.data
x_string: .asciz "\n Digita il valore di x: "
y_string: .asciz "\n Digita il valore di y: "
inx_string: .asciz "\n Incremento x: "
iny_string: .asciz "\n Incremento y: "
.text
.global start
start:
# Richiesta del valore di x
la a0, x_string
li a7, 4
ecall
li a7, 5
ecall
mv t0, a0
# Richiesta del valore di y
la a0, y_string
li a7, 4
ecall
li a7, 5
ecall
mv t1, a0
# Blocco che svolge l'operazione ed il salto condizionato
addi t0, t0, -2
add t0, t0, t1
bgez t0, condizione
addi t0, t0, 1
# Stampa l'incremento di x
la a0, inx_string
li a7, 4
ecall
mv a0, t0
li a7, 1
ecall
j end # Salto alla fine del programma
condizione:
# Stampa l'incremento di y
addi t1, t1, 1
la a0, iny_string
li a7, 4
ecall
mv a0, t1
li a7, 1
ecall
end:
# Fine del Programma #
li a7, 10
ecall