Instructieset en assembly
Wat is de waarde van t0 nadat de bovenstaande RISC-V-code is uitgevoerd?
li t0, 0
li t1, 4
loop: add t0, t0, t1
addi t1, t1, -1
bnez t1, loop
- A4
- B10
- C6
Antwoord en toelichting tonen
Antwoord: B. 10
Terwijl t1 vanaf 4 telkens met 1 afneemt, wordt t1 bij t0 opgeteld. t0 wordt achtereenvolgens 4, 7, 9 en 10, en wanneer t1 0 wordt, springt bnez (spring als niet 0) niet meer en verlaat het de lus. Het resultaat is 4 + 3 + 2 + 1 = 10. bnez is de pseudo-instructie van „bne t1, zero, loop”. De vorm waarbij een teller wordt verlaagd en met 0 vergeleken, wordt veel gebruikt omdat geen vergelijkingsconstante nodig is.