T3.2/T3.3 Funksjonskall Flashcards

1
Q

Hvilke oppgaver skal utføres ved et funksjonskall?

A
  1. Legge parameterne et sted funksjonen kan få tak i dem
  2. Overfør kontroll til funksjonen
  3. Alloker nødvendige ressurser (til f.eks. registre, minne)
  4. Utføre oppgaven
  5. Legge returverdien et sted der den som kalte funksjonen kan få tak i den
  6. Overføre kontroll til kallstedet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  • Hvorfor må vi huske hvor en funksjon har blitt kalt fra?
A

Fordi funksjoner typisk kalles fra mange ulike steder i koden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  • Blad funksjoner
A

Funksjoner som ikke trenger å kalle på andre

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  • Hva går konseptet kallkonvensjon ut på?
A
  • Regler for hvilken tilstand som bevares etter funksjonskall for å sikre interoperabilitet mellom kompilatorer, bibliotek, osv.
  • Bruker logiske navn til registrene, istedenfor fysiske navn
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hva er statiske data?

A

Data som bestemmes når programmet kompileres. De bruker stakken.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  • Stakk
A

En data struktur for “spilling” registre organisert som en LIFO kø.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  • Hva gjør en stakk?
A
  1. Stakk peker i RISC-V
  2. Legger elementet til i en stakk
  3. Fjerner elementet fra en stakk
  4. Vokser fra større adresser til mindre
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hva er dynamiske data?

A

Data som bestemmes mens programmet kjører. De bruker en heap.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  • En heap vokser mot
A

høyere addresser

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  • Hvis stakken møter dynamisk allokerte data
A

får vi “stack overflow”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  • Minnekart
A

beskriver hvordan adresserommet skal brukes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly