Instructieset en assembly
De voorwaardelijke sprong-instructies van RISC-V (B-formaat) drukken de afstand tot het sprongdoel uit in een aantal bytes met teken van 13 bits, waarvan het laagste bit altijd 0 is en niet in de instructie wordt opgenomen. Welk bereik bereikt een sprong-instructie rechtstreeks ongeveer?
- AOngeveer 4 KiB voor en achter de sprong-instructie
- BOngeveer 1 MiB voor en achter de sprong-instructie
- COveral in het gehele geheugen
Antwoord en toelichting tonen
Antwoord: A. Ongeveer 4 KiB voor en achter de sprong-instructie
Een waarde van 13 bits met teken kan -4096 tot +4095 weergeven, maar omdat instructies op een veelvoud van 2 bytes liggen, is het laagste bit altijd 0 en is het bereik -4096 tot +4094 bytes. Door het laagste bit weg te laten, wordt met dezelfde veldgrootte een tweemaal zo groot bereik gehaald. Voor verdere sprongen herschrijft de assembler dit tot een korte sprong met omgekeerde voorwaarde die over een jal heen springt dat verder reikt (ongeveer ±1 MiB).