Instructieset en assembly

De immediate van de RISC-V-instructie addi is een geheel getal met teken van 12 bits. Welk bereik kan deze immediate weergeven?

  1. A0 tot 4095
  2. B-2048 tot 2047
  3. C-4096 tot 4095
Antwoord en toelichting tonen

Antwoord: B. -2048 tot 2047

Met 12 bits in two's complement kunnen waarden van -2¹¹ = -2048 tot 2¹¹ - 1 = 2047 worden weergegeven. De immediate wordt vóór de berekening tekenuitgebreid naar 32 bits (bij RV64 naar 64 bits), dus negatieve getallen kunnen zonder meer worden opgeteld. Om een constante buiten dit bereik te gebruiken, worden meerdere instructies gecombineerd, bijvoorbeeld de bovenste 20 bits instellen met lui en daarna de onderste 12 bits optellen met addi.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Instructieset en assembly

  1. Wat is de gebruikelijke methode in RISC-V om een 32-bits constante die niet in een immediate van 12 bits past (bijvoorbeeld 0x12345678) in een register te plaatsen?
  2. Wat is de juiste combinatie om in RISC-V de constante 0x12345FFF met de twee instructies lui en addi te maken?
  3. Welke werking van de RISC-V-instructie auipc (add upper immediate to PC) is juist?
  4. Welke 32-bits waarde staat in t0 nadat in RISC-V (RV32I) „addi t0, zero, -1” is uitgevoerd?
  5. In het geheugen staat in één byte 0x80. Welke combinatie van waarden is juist als dit byte met de RISC-V-instructies lb en lbu in een 32-bits register wordt gelezen?