Instructieset en assembly

Hoe wordt het sprongdoel label weergegeven in de RISC-V-voorwaardelijke sprong-instructie „beq a0, a1, label”?

  1. AHet adres van het sprongdoel zelf (32 bits) zit in de instructie
  2. BHet zit in de instructie als afstand tot het adres (PC) van de sprong-instructie zelf
  3. CHet adres van het sprongdoel moet in register a1 worden gezet
Antwoord en toelichting tonen

Antwoord: B. Het zit in de instructie als afstand tot het adres (PC) van de sprong-instructie zelf

Een RISC-V-sprong-instructie drukt het sprongdoel uit als een afstand met teken, „hoeveel bytes verder dan het adres (PC) van de huidige instructie”. Dit heet PC-relatieve adressering. Omdat sprongdoelen meestal dichtbij liggen, volstaat een korte afstand, die in de 32-bits instructie past. Een ander voordeel is dat de afstand niet verandert als het hele programma op een ander adres wordt geplaatst, zodat het zonder herschrijven werkt.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Instructieset en assembly

  1. Welk voordeel van PC-relatieve adressering voor sprongen is juist?
  2. Welke uitspraak over de instructielengte van basisinstructies van RISC-V en instructies van x86 is juist?
  3. Welk voordeel van een vaste instructielengte is het meest passend?
  4. In RISC-V-instructies zijn de velden voor registers (rd, rs1, rs2) elk 5 bits. Wat is de juiste reden?
  5. De immediate van de RISC-V-instructie addi is een geheel getal met teken van 12 bits. Welk bereik kan deze immediate weergeven?