Instructieset en assembly

Welk verschil tussen RISC-V en x86 in de werking van voorwaardelijke sprongen is juist?

  1. ARISC-V springt op basis van vlaggen en bij x86 vergelijkt de sprong-instructie twee registers rechtstreeks
  2. BBeide hebben geen voorwaardelijke sprong-instructies en bepalen het sprongdoel met een opzoektabel
  3. CBij RISC-V vergelijkt de sprong-instructie twee registers rechtstreeks en bij x86 springt men op basis van de vlaggen die een vergelijkingsinstructie heeft gezet
Antwoord en toelichting tonen

Antwoord: C. Bij RISC-V vergelijkt de sprong-instructie twee registers rechtstreeks en bij x86 springt men op basis van de vlaggen die een vergelijkingsinstructie heeft gezet

Bij x86 vergelijkt „cmp eax, ebx” en zet vlaggen (condition codes) zoals zero en carry, waarna de volgende „je” of „jl” op basis van de vlaggen springt. RISC-V heeft geen vlaggen en de sprong-instructie zelf vergelijkt twee registers, zoals „beq a0, a1, L” en „blt a0, a1, L”. Omdat er geen impliciete toestand zoals vlaggen is, zijn afhankelijkheden gemakkelijker te volgen bij het herordenen van instructies en bij gelijktijdige uitvoering.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Instructieset en assembly

  1. Welke werking van de RISC-V-instructie „slt t0, a0, a1” is juist?
  2. Wat is de waarde van t0 nadat de bovenstaande RISC-V-code is uitgevoerd?
  3. 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?
  4. Welke werking van de RISC-V-instructie „jal ra, func” is juist?
  5. Als welke instructie wordt de RISC-V-pseudo-instructie „ret” in werkelijkheid uitgevoerd?