Instructieset en assembly

In RISC-V-instructies zijn de velden voor registers (rd, rs1, rs2) elk 5 bits. Wat is de juiste reden?

  1. AOmdat de breedte van de registers 5 bits is
  2. BOmdat een instructie maximaal vijf registers kan gebruiken
  3. COmdat er 32 gehele-getalregisters zijn en die met 2⁵ = 32 mogelijkheden kunnen worden aangeduid
Antwoord en toelichting tonen

Antwoord: C. Omdat er 32 gehele-getalregisters zijn en die met 2⁵ = 32 mogelijkheden kunnen worden aangeduid

Een R-formaatinstructie bestaat van boven naar beneden uit funct7 (7 bits), rs2 (5), rs1 (5), funct3 (3), rd (5) en opcode (7), samen 32 bits. Omdat er 32 registers zijn, kunnen de nummers met 5 bits worden weergegeven. Bij 64 registers zou elk veld 6 bits nodig hebben, wat voor de drie velden 3 extra bits kost, zodat minder bits overblijven voor immediates en instructiesoorten. Het aantal registers hangt dus samen met de vorm van de instructie.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Instructieset en assembly

  1. De immediate van de RISC-V-instructie addi is een geheel getal met teken van 12 bits. Welk bereik kan deze immediate weergeven?
  2. 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?
  3. Wat is de juiste combinatie om in RISC-V de constante 0x12345FFF met de twee instructies lui en addi te maken?
  4. Welke werking van de RISC-V-instructie auipc (add upper immediate to PC) is juist?
  5. Welke 32-bits waarde staat in t0 nadat in RISC-V (RV32I) „addi t0, zero, -1” is uitgevoerd?