SOCS 2.7 Instructions for Making Decisions t.e.m. 2.10 RISC-V Addressing for Wide Immediates and Addresses

0.0(0)
studied byStudied by 1 person
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/44

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

45 Terms

1
New cards

Wat is een unconditional branch in RISC-V en hoe kan deze worden geïmplementeerd?

Een unconditional branch volgt altijd de branch, die geïmplementeerd kan worden met een voorwaarde die altijd waar is, zoals beq x0, x0, L1.

2
New cards

Wat is een basic block in assembleertaal?

Een reeks instructies zonder branches (behalve aan het eind) en zonder branch targets of labels (behalve aan het begin).

3
New cards

Wat is een veelgebruikt gebruik voor unsigned vergelijkingen in RISC-V, in het bijzonder bij array bounds checking?

Signed numbers behandelen als unsigned helpt bij het uitvoeren van controles met lage kosten, zoals controleren of een array-index binnen de grenzen valt.

4
New cards

Wat is het verschil tussen signed en unsigned vergelijkingen in RISC-V?

Signed comparisons behandelen het meest significante bit als een sign bit, terwijl unsigned comparisons het behandelen als onderdeel van de waarde van het getal.

5
New cards

Wat zijn conditional branches in RISC-V en hoe werken ze?

Conditional branches, zoals beq (vertakking indien gelijk) en bne (vertakking indien niet gelijk), laten het programma naar verschillende delen van de code springen, afhankelijk van of de gespecificeerde voorwaarde tussen twee registers waar of onwaar is.

6
New cards

Wat is een procedure in programmeren?

Een procedure (= een functie) is een subroutine die een specifieke taak uitvoert op basis van parameters, waardoor code kan worden hergebruikt en gemodulariseerd.

7
New cards

Wat zijn de zes te volgen stappen bij het uitvoeren van een procedure in een programma?

1) Parameters op een toegankelijke plaats zetten,

2) De control overdragen aan de procedure,

3) Opslagbronnen verwerven,

4) De taak uitvoeren,

5) Het resultaat op een accessible location zetten,

6) De control teruggeven aan het calling programma.

8
New cards

Hoe wijst RISC-V registers toe voor procedures?

RISC-V gebruikt registers x10-x17 voor het doorgeven van parameters of het retourneren van waarden en x1 als retouradresregister.

9
New cards

Wat is het doel van de programmateller (PC) in RISC-V?

De programmateller bevat het adres van de instructie die op dat moment wordt uitgevoerd.

10
New cards

Hoe gaat RISC-V om met procedure-aanroepen die meer registers vereisen dan er beschikbaar zijn?

Extra registers worden naar het geheugen “gespilled” met behulp van een stack, waarbij de stack pointer (sp) de stack beheert.

11
New cards

Wat is de stack pointer in RISC-V?

De stack pointer, of sp, is register x2 in RISC-V en wijst naar het laatst toegewezen adres in de stack.

12
New cards

Wat zijn de twee belangrijkste bewerkingen die in RISC-V op de stack worden uitgevoerd?

“Push” voegt een element toe aan de stack en “Pop” verwijdert een element van de stack.

13
New cards

Wat is een leaf procedure in RISC-V?

Een leaf procedure is een procedure die geen andere procedures aanroept.

14
New cards

Wat zijn de twee groepen registers in RISC-V op basis van behoud tijdens een procedure-aanroep?

Temporary registers (x5-x7, x28-x31) worden niet bewaard en saved registers (x8-x9, x18-x27) moeten bewaard blijven tijdens procedure-aanroepen.

15
New cards

Wat is een nested procedure?

Een geneste procedure is een procedure die een andere procedure aanroept, waardoor registers en het retouradres bewaard moeten blijven.

16
New cards

Hoe gaat RISC-V om met recursieve procedures?

RISC-V bewaart het retouradres en de argumenten op de stack voor elke recursieve aanroep en herstelt deze nadat de recursieve aanroep is voltooid.

17
New cards

Wat is een globale pointer in RISC-V?

De global pointer, of gp, is register x3, gereserveerd om naar het statische gegevensgebied te wijzen.

18
New cards

Wat is een frame pointer in RISC-V?

De frame pointer, of fp, is register x8, gebruikt om naar het eerste woord van het frame of de activeringsrecord van een procedure te wijzen.

19
New cards

Wat is een procedure frame of activation record?

Het is het segment van de stack dat de opgeslagen registers en lokale variabelen van een procedure bevat.

20
New cards

Wat is de conventie van RISC-V voor geheugentoewijzing?

RISC-V wijst geheugen toe voor programma en gegevens, te beginnen met de stack op de hoge adressen, gevolgd door dynamische gegevens (heap), statische gegevens en tekst (programmacode).

21
New cards

Wat is de heap bij geheugentoewijzing?

De heap is een segment geheugen dat wordt gebruikt voor dynamische gegevensstructuren zoals gekoppelde lijsten en groeit omhoog naar de stack.

22
New cards

Hoe handelt C geheugentoewijzing voor dynamische gegevens af?

C gebruikt malloc() om geheugen toe te wijzen op de heap en free() om het vrij te geven.

23
New cards

Wat is een memory leak?

Een memory leak treedt op wanneer een programma er niet in slaagt om geheugen vrij te geven dat niet langer nodig is, waardoor uiteindelijk het beschikbare geheugen uitgeput raakt.

24
New cards

Wat is een dangling pointer?

Een pointer die verwijst naar geheugen dat al is gefreed, wat onbedoeld gedrag kan veroorzaken.

25
New cards

Hoe gaat Java om met geheugentoewijzing vergeleken met C?

Java gebruikt automatische geheugentoewijzing en garbage collection om geheugenlekken en dangling pointer te voorkomen.

26
New cards

Hoeveel argumentregisters biedt RISC-V voor procedures?

RISC-V biedt acht argumentregisters (x10-x17) voor procedures.

27
New cards

Wat gebeurt er als er meer dan acht parameters zijn in een procedureaanroep in RISC-V?

Extra parameters worden op de stack geplaatst, adresseerbaar via de frame pointer.

28
New cards

Wat is het voordeel van het gebruik van een frame pointer in een procedure?

De frame pointer biedt een stabiel basisregister binnen een procedure, waardoor het gemakkelijker wordt om naar variabelen op de stack te verwijzen.

29
New cards

Wat is tail recursion?

Tail recursion treedt op wanneer een procedure zichzelf aanroept als laatste actie, wat zorgt voor geoptimaliseerde prestaties door extra retourstappen te elimineren.

30
New cards

Wat is het text segment in het RISC-V-geheugen?

Het tekstsegment bevat de machinetaalcode voor het programma.

31
New cards

Wat is het static data segment in het RISC-V-geheugen?

Het statische datasegment stores constants and static variables that persist tijdens procedure-aanroepen.

32
New cards

Wat zijn automatische variabelen in C?

Automatische variabelen zijn lokaal voor een procedure en worden verwijderd als de procedure wordt afgesloten.

33
New cards

Wat is de standaard 8-bits weergave van tekens die de meeste computers gebruiken?

ASCII (American Standard Code for Information Interchange)

34
New cards

Waarin verschilt ASCII in de weergave van hoofdletters en kleine letters?

Hoofdletters en kleine letters verschillen precies 32 in hun ASCII-waarden.

35
New cards

Wat is de gebruikelijke conventie in C om het einde van een string aan te geven?

De nulbyte (0)

36
New cards

Hoe gaat Java anders om met tekencodering dan C?

Java gebruikt Unicode (UTF-16), dat doorgaans 16 bits gebruikt om een teken weer te geven.

37
New cards

Hoe geeft Java de lengte van een string weer?

Java bevat een woord dat de lengte van de string weergeeft.

38
New cards

Waarin verschilt UTF-8 codering van UTF-16?

UTF-8 gebruikt codering met variabele lengte (8, 16 of 32 bits), terwijl UTF-16 16 bits per teken gebruikt.

39
New cards

Wat zijn de drie methoden om de lengte van een tekenreeks weer te geven?

1) Lengte op de eerste positie,

2) Lengte opgeslagen in een variabele,

3) Null character termination.

40
New cards

Hoe wordt PC-relative addressing gebruikt in RISC-V branches?

Het branch address is de som van de huidige PC en de constante in de instructie.

41
New cards

Waarom is PC-relative addressing efficiënt voor conditional branches?

Omdat de meeste branches naar instructies in de buurt zijn, waardoor het gemakkelijker is om kleine offsets te coderen.

42
New cards

Welke addressing mode wordt gebruikt in RISC-V voor toegang tot geheugen op een locatie ten opzichte van een basisregister?

Base or displacement addressing.

43
New cards

Hoe berekenen RISC-V branch instructions het branch target address?

Door een PC-relatieve offset toe te voegen aan de huidige programmateller.

44
New cards

Waarvoor staat PC?

Program counter

45
New cards

Wat is PC-relatief adresseren in RISC-V?

PC-relatief adresseren is een modus waarbij het doeladres wordt berekend door een constante van de instructie toe te voegen aan de huidige waarde van de programmateller (PC), waardoor aftakkingen en sprongen naar instructies in de buurt mogelijk zijn.