Instructieset en assembly

Hoe komt de gelezen 32-bits waarde in het 64-bits register wanneer de lw-instructie wordt uitgevoerd in het 64-bits RV64I?

  1. ADe bovenste 32 bits behouden hun oorspronkelijke waarde en alleen de onderste 32 bits worden herschreven
  2. BAltijd nuluitgebreid tot 64 bits
  3. CTekenuitgebreid tot 64 bits (voor nuluitbreiding wordt lwu gebruikt)
Antwoord en toelichting tonen

Antwoord: C. Tekenuitgebreid tot 64 bits (voor nuluitbreiding wordt lwu gebruikt)

lw in RV64I plaatst de 32-bits waarde tekenuitgebreid in het 64-bits register, en lwu, dat zonder teken leest, vult de bovenste bits met 0. Als de bovenste bits hun vorige waarde zouden behouden, zou een afhankelijkheid van de vorige waarde ontstaan die out-of-order uitvoering hindert, dus RISC-V doet dat niet. Voor 32-bits berekeningen bestaan instructies met een „w”, zoals addw, die het resultaat als 32 bits berekenen en daarna tekenuitbreiden.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Instructieset en assembly

  1. Welke omschrijving van de ABI (application binary interface) is juist?
  2. Met welke instructie wordt een aanroep via een functiepointer in C, „(*fp)(x)”, in RISC-V gewoonlijk uitgevoerd?
  3. Welke uitspraak over twee CPU's met dezelfde instructiesetarchitectuur (ISA) is juist?
  4. Welke eigenschap van een load-store-architectuur zoals RISC-V is juist?
  5. Welke eigenschap van het RISC-V-register x0 (zero) is juist?