Chiarimento RISC-V

di il
1 risposte

Chiarimento RISC-V

Ho le seguenti istruzioni:
addi x5,x0,1
addi x6,x0,5
loop:
blt x6,x0,EXIT
addi x6,x6,-1
slli x5,x5,1
jal x0,loop
exit ... 
          
Devo calcolare quale è il valore contenuto in x5 dopo l'esecuzione, supponendo che inizialmente x5=0, x6=0. Non mi è chiaro quale è il giusto procedimento da eseguire per poter calcolare il suo valore.
Grazie in anticipo.

1 Risposte

  • Re: Chiarimento RISC-V

    Detto che il codice non funziona, la risposta è 32 (non 42 come di consueto).
    Altro errore (non bloccante ma proprio brutto) è l'utilizzo dei nomi di registri invece dei loro alias (x5 = t0, x6 = t1, x0 = zero).

    Il procedimento giusto per calcolare il suo valore è capire che in t0 si sposta a sinistra un bit per t1 volte. Tutto il codice (che comunque ha un salto condizionale scritto male) può essere condensato in
    addi t0, zero, 1
    addi t1, zero, 5
    sll t0, t0, t1
    Ti lascio questi due link, il primo sullo stile corretto di scrittura del codice e il secondo come riferimento veloce all'assembly del risc-v

    https://docs.opentitan.org/doc/rm/asm_coding_style
    https://github.com/riscv/riscv-asm-manual/blob/master/riscv-asm.md
Devi accedere o registrarti per scrivere nel forum
1 risposte