Upload
priscilla-andrews
View
28
Download
1
Embed Size (px)
DESCRIPTION
SOCS. Hoofdstuk 1 Computerarchitectuur. Functies in DRAMA. Werken met een Stapel Oproepen van Procedure Lokale variabelen (Eenvoudige) Parameters. Lokale variabelen. In Accumulatoren Mits enkelvoudig type (int) Indien nodig voor berekeningen? - PowerPoint PPT Presentation
Citation preview
1
SOCS
Hoofdstuk 1
Computerarchitectuur
2
Functies in DRAMA
Werken met een Stapel Oproepen van Procedure Lokale variabelen (Eenvoudige) Parameters
3
Lokale variabelen
In Accumulatoren Mits enkelvoudig type (int) Indien nodig voor berekeningen?
Tijdelijk op stapel bewaren, later herstellen Accumulator gebruikt door oproeper?
Strategie:• Oproeper bewaart de inhoud• Functie bewaart de inhoud van gebruikte registers• Beide
Functie moet aangeven welke registers gewijzigd worden!
In Geheugen Zie verder
4
Voorbeeld
int a, b, c;main() {
a = getint();...druk();
}
void druk (){
int da, db, dc;da = 1;…
}
| a R1, b R2, c R3
| R3 gewijzigd door druk
5
Voorbeeld
int a, b, c;main() {
a = getint();...druk();
}
void druk (){
int da, db, dc;da = 1;…
}
| a R1, b R2, c R3
| R3 gewijzigd door druk
LEZHIA R1,R0
6
Voorbeeld
int a, b, c;main() {
a = getint();...druk();
}
void druk (){
int da, db, dc;da = 1;…
}
| a R1, b R2, c R3LEZHIA R1,R0…
| R3 gewijzigd door druk
BST R3SBR druk
7
Voorbeeld
int a, b, c;main() {
a = getint();...druk();
}
void druk (){
int da, db, dc;da = 1;…
}
| a R1, b R2, c R3LEZHIA R1,R0…BST R3SBR druk
| R3 gewijzigd door druk| da R1, db R2, dc R3
druk: BST R1BST R2
8
Voorbeeld
int a, b, c;main() {
a = getint();...druk();
}
void druk (){
int da, db, dc;da = 1;…
}
| a R1, b R2, c R3LEZHIA R1,R0…BST R3SBR druk
| R3 gewijzigd door druk| da R1, db R2, dc R3druk: BST R1
BST R2
HIA.w R1,1
9
Voorbeeld
int a, b, c;main() {
a = getint();...druk();
}
void druk (){
int da, db, dc;da = 1;…
}
| a R1, b R2, c R3LEZHIA R1,R0…BST R3SBR druk
| R3 gewijzigd door druk| da R1, db R2, dc R3druk: BST R1
BST R2HIA.w R1,1…
HST R2HST R1KTG
10
Voorbeeld
int a, b, c;main() {
a = getint();...druk();
}
void druk (){
int da, db, dc;da = 1;…
}
| a R1, b R2, c R3LEZHIA R1,R0…BST R3SBR druk
| R3 gewijzigd door druk| da R1, db R2, dc R3druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
HST R3STP
Ophalen + AnalyserenOphalen + Analyseren
Uitvoeren Uitvoeren (effect op volgende slide)(effect op volgende slide)
Animatie:Animatie:
11
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
1234567890
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000000R0R0
33InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0000BTBT
0000000000R1R1
0000000000R2R2
0000000000R3R3
12
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
1234567890
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000000R0R0
33InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0000BTBT
0000000000R1R1
0000000000R2R2
0000000000R3R3
13
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
1234567890
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000000R0R0
33InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0001BTBT
0000000000R1R1
0000000000R2R2
0000000000R3R3
14
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
1234567890
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
00000000030000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0001BTBT
0000000000R1R1
0000000000R2R2
0000000000R3R3
15
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
1234567890
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0001BTBT
0000000000R1R1
0000000000R2R2
0000000000R3R3
16
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
1234567890
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0002BTBT
0000000000R1R1
0000000000R2R2
0000000000R3R3
17
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
1234567890
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0002BTBT
00000000030000000003R1R1
0000000000R2R2
0000000000R3R3
000300040005000600070008
0000000020
0000000300
18
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
1234567890
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0008BTBT
0000000003R1R1
0000000020R2R2
0000000300R3R3
19
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
1234567890
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0009BTBT
0000000003R1R1
0000000020R2R2
0000000300R3R3
20
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008999R9R9
0000000003R0R0
33InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0009BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
21
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008999R9R9
0000000003R0R0
33InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0009BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
22
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678901234567890
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008999R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0010BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
23
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678900000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008998R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0012BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
1010
24
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678900000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008998R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0012BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
1010
25
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
12345678900000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008998R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0013BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
1010
26
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008997R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0013BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
1010
33
27
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008997R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0013BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
1010
33
28
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
1234567890
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008997R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0014BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
1010
33
29
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008996R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0014BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
1010
33
2020
30
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008996R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0014BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
1010
33
2020
31
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008996R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0015BTBT300300
0000000003R1R1
0000000020R2R2
0000000300R3R3
1010
33
2020
32
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008996R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0015BTBT300300
00000000010000000001R1R1
0000000020R2R2
0000000300R3R3
1010
33
2020
00160017001800190020
33
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008996R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0020BTBT300300
9999999999R1R1
9999999998R2R2
0000009876R3R3
1010
33
2020
34
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008996R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0021BTBT300300
9999999999R1R1
9999999998R2R2
0000009876R3R3
1010
33
2020
35
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008997R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0021BTBT300300
9999999999R1R1
00000000200000000020R2R2
0000009876R3R3
1010
33
36
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008997R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0021BTBT300300
9999999999R1R1
0000000020R2R2
0000009876R3R3
1010
33
37
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008997R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0022BTBT300300
9999999999R1R1
0000000020R2R2
0000009876R3R3
1010
33
38
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008998R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0022BTBT300300
00000000030000000003R1R1
0000000020R2R2
0000009876R3R3
1010
39
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008998R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0022BTBT300300
0000000003R1R1
0000000020R2R2
0000009876R3R3
1010
40
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008998R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0023BTBT300300
0000000003R1R1
0000000020R2R2
0000009876R3R3
1010
41
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008999R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0010BTBT300300
0000000003R1R1
0000000020R2R2
0000009876R3R3
42
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008999R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0010BTBT300300
0000000003R1R1
0000000020R2R2
0000009876R3R3
43
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000008999R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0011BTBT300300
0000000003R1R1
0000000020R2R2
0000009876R3R3
44
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0011BTBT
0000000003R1R1
0000000020R2R2
00000003000000000300R3R3
45
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0011BTBT
0000000003R1R1
0000000020R2R2
0000000300R3R3
46
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0012BTBT
0000000003R1R1
0000000020R2R2
0000000300R3R3
47
Voorbeeld| a R1, …
LEZHIA R1,R0…BST R3SBR drukHST R3STP
| R3 gewijzigd | da R1, …druk: BST R1
BST R2HIA.w R1,1…HST R2HST R1KTG
89938993
89948994
89958995
89968996
89978997
89988998
1234567890
12345678901234567890
0000000020
00000000030000000010
0000000300
1234567890
89998999
90009000
…
stap
elst
apel
0000009000R9R9
0000000003R0R0
InvoerInvoer
0:0:1:1:……8:8:9:9:10:10:11:11:
12:12:13:13:14:14:……20:20:21:21:22:22:
0012BTBT
0000000003R1R1
0000000020R2R2
0000000300R3R3
48
Lokale variabelen
In geheugenfunc: …func: …
KTGKTGda:da: RESGR 1RESGR 1db:db: RESGR 1RESGR 1 …
Nadelen: Lokale variabelen blijven bestaan na uitvoering van functie Voor alle lokale variabelen steeds plaats gereserveerd
gedurende de ganse uitvoering van het programma Werkt niet voor recursieve oproepen
Oplossing: Lokale variabelen op stapel
49
Lokale variabelen
Afspraak: int a, b, c, d;
a
b
cd
…
stap
elst
apel
50
Voorbeeld
int a, b, c;
main() {
...
druk();
}
void druk ()
{
int da, db, dc;
dc = 1;
…
}
| a R1, b R2, c R3…BST R3SBR drukHST R3…STP
| da, db, dc op stapel| R3 gewijzigd
51
Voorbeeld
int a, b, c;
main() {
...
druk();
}
void druk ()
{
int da, db, dc;
dc = 1;
…
}
| a R1, b R2, c R3…BST R3SBR drukHST R3…STP
| da, db, dc op stapel| R3 gewijzigd
druk: AFT.w R9,3
R9R9TKA
52
Voorbeeld
int a, b, c;
main() {
...
druk();
}
void druk ()
{
int da, db, dc;
dc = 1;
…
}
| a R1, b R2, c R3…BST R3SBR drukHST R3
…STP
| da, db, dc op stapel| R3 gewijzigddruk: AFT.w R9,3
HIA.w R3,1BIG R3,2(R9)R9R9 --- da ---
--- db ------ dc ---
TKA
2(R9)2(R9)
53
Voorbeeld
int a, b, c;
main() {
...
druk();
}
void druk ()
{
int da, db, dc;
dc = 1;
…
}
| a R1, b R2, c R3…BST R3SBR drukHST R3…STP
| da, db, dc op stapel| R3 gewijzigddruk: AFT.w R9,3
HIA.w R3,1BIG R3,2(R9)…
OPT.w R9,3
R9R9 --- da ---
--- db ------ dc ---
TKA
54
Voorbeeld
int a, b, c;
main() {
...
druk();
}
void druk ()
{
int da, db, dc;
dc = 1;
…
}
| a R1, b R2, c R3…BST R3SBR drukHST R3…STP
| da, db, dc op stapel| R3 gewijzigddruk: AFT.w R9,3
HIA.w R3,1BIG R3,2(R9)…OPT.w R9,3
KTGR9R9 TKA
55
Voorbeeld
int a, b, c;
main() {
...
druk();
}
void druk ()
{
int da, db, dc;
dc = 1;
…
}
| a R1, b R2, c R3…BST R3SBR drukHST R3…STP
| da, db, dc op stapel| R3 gewijzigddruk: AFT.w R9,3
HIA.w R3,1BIG R3,2(R9)…OPT.w R9,3KTG
56
Activatierecord
Probleem: Indien functie gegevens op stapel plaatst:
relatieve positie van lokale variabelen wijzigt
| dc = 1
…
BST R1
…
| dc = 0
…
R9R9 --- da ---
--- db ---
--- dc ---TKA
57
Activatierecord
| dc = 1
…
BST R1
…
| dc = 0
…
HIA.w R0,1HIA.w R0,1
BIG R0,2(R9)BIG R0,2(R9)
R9R9 --- da ---
--- db ---
--- dc ---TKA
2(R9)2(R9)
58
Activatierecord
HIA.w R0,1
BIG R0,2(R9) | dc = 1
…
BST R1
…
| dc = 0
…
--- da ---
--- db ---
--- dc ---TKA
R9R9
59
Activatierecord
HIA.w R0,1
BIG R0,2(R9) | dc = 1
…
BST R1
…
| dc = 0
…
HIA.w R0,0HIA.w R0,0
BIG R0,3(R9)BIG R0,3(R9)
--- da ---
--- db ---
--- dc ---TKA
3(R9)3(R9)R9R9 Kopie R1
60
Activatierecord
Oplossing: Vast referentiepunt is nodig! Activatierecord (AR)
Blok op stapel Bevat nodige gegevens tijdens uitvoering functie R8 (omgevingswijzer) vast punt in huidige AR Genestelde oproep
• Oude waarde R8 bewaren (op stapel)• Na oproep: R8 herstellen
61
Activatierecord
Vast punt in AR (R8)
1234567890
stap
elst
apelR8R8
R8R8
R8R8
1234567890
R8R8
1234567890
R8R8
Verwijderen … R8 herstellen!Verwijderen … R8 herstellen!
62
89938993
89948994
89958995
89968996
89978997
89988998
varA2
-- TKA1 --
varA1
0000000000
123456789089998999
90009000
stap
elst
apel89918991
89928992
waarde
varA3
Activatierecord
R9R9
R8R8
R9R9
R8R8
-2(R8)-2(R8)
-3(R8)-3(R8)89898989 -- TKA2 --
89878987
89888988
varB2
varB1
89908990 0000008996
89938993
89948994
89958995
89968996
89978997
89988998
varA2
-- TKA1 --
varA1
0000000000
1234567890
89998999
90009000
stap
elst
apel
89918991
89928992
waarde
varA3
Huidig ARHuidig AR
Huidig ARHuidig AR
63
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
64
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1
R9R9R8R8
TKA
R8(oproep)
65
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1
a: AFT.w R9,2 | i, j
R9R9R8R8
TKA
R8(oproep)
66
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1
R9R9R8R8
TKA
R8(oproep)
i = ?
j = ?
R9R9
67
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…
BIG R1,-3(R8)
R8R8
Kopie R1
i = ?
j = ?TKA
R8(oproep)
-3(R8)-3(R8)
R9R9
68
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)
HST R1
R9R9
R8R8
Kopie R1
i = k
j = ?TKA
R8(oproep)
69
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1
OPT.w R9,2
R9R9
R8R8
i = k
j = ?TKA
R8(oproep)
70
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2
KTG
R9R9R8R8
TKA
R8(oproep)
71
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
R9R9 R8R8 R8(oproep)
72
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapel
R9R9R8R8
TKA
R8(oproep)
73
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapel
b: AFT.w R9,10 | r
R9R9R8R8
TKA
R8(oproep)
74
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapelb: AFT.w R9,10 | r
…BST R8 | omg(b)r[7] = ?
r[8] = ?r[9] = ?
r[1] = ?r[0] = ?R9R9
R8R8TKA
R8(oproep)
75
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapelb: AFT.w R9,10 | r
…BST R8
HIA R8,R9 | omg(a)
r[7] = ?
r[8] = ?r[9] = ?
r[1] = ?r[0] = ?
R8R8TKA
R8(oproep)
R9R9 R8(oproep)
76
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapelb: AFT.w R9,10 | r
…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR a | a()
r[7] = ?
r[8] = ?r[9] = ?
r[1] = ?r[0] = ?
R9R9
TKA
R8(oproep)
R8R8 R8(oproep)
77
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapelb: AFT.w R9,10 | r
…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR a | a()
r[7] = ?
r[8] = ?r[9] = ?
r[1] = ?r[0] = ?
R9R9
TKA
R8(oproep)
R8R8 R8(oproep)TKA
78
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapelb: AFT.w R9,10 | r
…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR a | a()
r[7] = ?
r[8] = ?r[9] = ?
r[1] = ?r[0] = ?
R9R9
TKA
R8(oproep)
R8R8 R8(oproep)TKA
79
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapelb: AFT.w R9,10 | r
…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR a | a()
r[7] = ?
r[8] = ?r[9] = ?
r[1] = ?r[0] = ?
R9R9
TKA
R8(oproep)
R8R8 R8(oproep)
80
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapelb: AFT.w R9,10 | r
…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR a | a()r[7] = ?
r[8] = ?r[9] = ?
r[1] = ?r[0] = ?
TKA
R8(oproep)
R8(oproep)
HST R8 | omg(b)
R9R9R8R8
81
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapelb: AFT.w R9,10 | r
…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR aHST R8 | omg(b)
OPT.w R9,10
r[7] = ?
r[8] = ?r[9] = ?
r[1] = ?r[0] = ?R9R9
R8R8TKA
R8(oproep)
82
Voorbeeld
void a ( ) {int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();
}main ( ) {
...a( );...b( );
}
| i, j op stapel; k R1a: AFT.w R9,2 | i, j
BST R1…BIG R1,-3(R8)HST R1OPT.w R9,2KTG
| r op stapelb: AFT.w R9,10 | r
…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR aHST R8 | omg(b)OPT.w R9,10
KTG
R9R9R8R8
TKA
R8(oproep)
83
Voorbeeldvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
84
Voorbeeldvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
main: HIA.w R8,0
R9R9
85
Voorbeeldvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
main: HIA.w R8,0…
BST R8 | omg(main)HIA R8,R9 | omg(a)
R9R9
R8 = 0R8 = 0
86
Voorbeeldvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
main: HIA.w R8,0…BST R8 | omg(main)HIA R8,R9 | omg(a)
SBR a
R9R9 R8R8 R8(main)=0
87
Voorbeeldvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
main: HIA.w R8,0…BST R8 | omg(main)HIA R8,R9 | omg(a)SBR a
HST R8 | omg(main)
R9R9 R8R8 R8(main)=0
88
Voorbeeldvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
main: HIA.w R8,0…BST R8 | omg(main)HIA R8,R9 | omg(a)SBR aHST R8 | omg(main)…
BST R8 | omg(main)HIA R8,R9 | omg(b)SBR bHST R8 | omg(main)
R9R9
R8 = 0R8 = 0
89
Voorbeeldvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
main: HIA.w R8,0…BST R8 | omg(main)HIA R8,R9 | omg(a)SBR aHST R8 | omg(main)…BST R8 | omg(main)HIA R8,R9 | omg(b)SBR bHST R8 | omg(main)…STP
R9R9
R8 = 0R8 = 0
90
Voorbeeld: Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}R9R9
90009000 1234567890
stap
elst
apel
main: HIA.w R8,0…BST R8 | omg(main)HIA R8,R9 | omg(a)SBR aHST R8 | omg(main)…
91
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}R9R9
90009000 1234567890
stap
elst
apel
main: HIA.w R8,0…BST R8 | omg(main)HIA R8,R9 | omg(a)SBR aHST R8 | omg(main)…
R8 = 0R8 = 0
92
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
} R9R9R8R8 89998999
90009000
0000000000
1234567890
stap
elst
apel
main: HIA.w R8,0…BST R8 | omg(main)HIA R8,R9 | omg(a)SBR aHST R8 | omg(main)…
93
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9R8R8
89988998
89998999
90009000
TKA1 main
0000000000
1234567890
stap
elst
apel
a: AFT.w R9,2 | i, jBST R1 | R1 k…BIG R1,-3(R8) | ikHST R1 | herstel R1OPT.w R9,2KTG
94
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9
R8R8
89958995
89968996
89978997
89988998
89998999
90009000
Kopie R1i = ?
j = ?
TKA1 main
0000000000
1234567890
stap
elst
apel
a: AFT.w R9,2 | i, jBST R1 | R1 k…BIG R1,-3(R8) | ikHST R1 | herstel R1OPT.w R9,2KTG
-3(R8)-3(R8)
95
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9
R8R8
89958995
89968996
89978997
89988998
89998999
90009000
Kopie R1i = k
j = ?
TKA1 main
0000000000
1234567890
stap
elst
apel
a: AFT.w R9,2 | i, jBST R1 | R1 k…BIG R1,-3(R8) | ikHST R1 | herstel R1OPT.w R9,2KTG
96
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9R8R8
89988998
89998999
90009000
TKA1 main
0000000000
1234567890
stap
elst
apel
a: AFT.w R9,2 | i, jBST R1 | R1 k…BIG R1,-3(R8) | ikHST R1 | herstel R1OPT.w R9,2KTG
97
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
} R9R9R8R8 89998999
90009000
0000000000
1234567890
stap
elst
apel
main: HIA.w R8,0…BST R8 | omg(main)HIA R8,R9 | omg(a)SBR aHST R8 | omg(main)…
98
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}R9R9
90009000 1234567890
stap
elst
apel
main: HIA.w R8,0…| oproep a…BST R8 | omg(main)HIA R8,R9 | omg(b)SBR bHST R8 | omg(main)…
R8 = 0R8 = 0
99
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
} R9R9R8R8 89998999
90009000
0000000000
1234567890
stap
elst
apel
main: HIA.w R8,0…| oproep a…BST R8 | omg(main)HIA R8,R9 | omg(b)SBR bHST R8 | omg(main)…
100
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9R8R8
89988998
89998999
90009000
TKA2 main
0000000000
1234567890
stap
elst
apel
b: AFT.w R9,10 | r…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR aHST R8 | omg(b)…OPT.w R9,10 | r vrijKTG
101
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9
R8R8
89958995
89968996
89978997
89988998
89998999
90009000
r[7] = ?r[8] = ?
r[9] = ?
TKA2 main
0000000000
1234567890
stap
elst
apel
89898989 r[1] = ?89888988 r[0] = ?
b: AFT.w R9,10 | r…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR aHST R8 | omg(b)…OPT.w R9,10 | r vrijKTG
102
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9
89958995
89968996
89978997
89988998
89998999
90009000
r[7] = ?
r[8] = ?
r[9] = ?TKA2 main
0000000000
1234567890
stap
elst
apel
89898989 r[1] = ?89888988 r[0] = ?
R8R8 89878987 0000008999
b: AFT.w R9,10 | r…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR aHST R8 | omg(b)…OPT.w R9,10 | r vrijKTG
103
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9
89958995
89968996
89978997
89988998
89998999
90009000
r[7] = ?r[8] = ?
r[9] = ?
TKA2 main
0000000000
1234567890
stap
elst
apel
89898989 r[1] = ?89888988 r[0] = ?
R8R889868986
89878987
TKA b
0000008999
a: AFT.w R9,2 | i, jBST R1 | R1 k…BIG R1,-3(R8) | ikHST R1 | herstel R1OPT.w R9,2KTG
104
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9
89958995
89968996
89978997
89988998
89998999
90009000
r[7] = ?r[8] = ?
r[9] = ?
TKA2 main
0000000000
1234567890
stap
elst
apel
89898989 r[1] = ?89888988 r[0] = ?
R8R8
89848984
89858985
89868986
89878987
i = ?
j = ?
TKA b
0000008999
89838983 Kopie R1
a: AFT.w R9,2 | i, jBST R1 | R1 k…BIG R1,-3(R8) | ikHST R1 | herstel R1OPT.w R9,2KTG
-3(R8)-3(R8)
105
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9
89958995
89968996
89978997
89988998
89998999
90009000
r[7] = ?r[8] = ?
r[9] = ?
TKA2 main
0000000000
1234567890
stap
elst
apel
89898989 r[1] = ?89888988 r[0] = ?
R8R8
89848984
89858985
89868986
89878987
i = k
j = ?
TKA b
0000008999
89838983 Kopie R1
a: AFT.w R9,2 | i, jBST R1 | R1 k…BIG R1,-3(R8) | ikHST R1 | herstel R1OPT.w R9,2KTG
106
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9
89958995
89968996
89978997
89988998
89998999
90009000
r[7] = ?
r[8] = ?
r[9] = ?TKA2 main
0000000000
1234567890
stap
elst
apel
89898989 r[1] = ?89888988 r[0] = ?
R8R889868986
89878987
TKA b
0000008999
a: AFT.w R9,2 | i, jBST R1 | R1 k…BIG R1,-3(R8) | ikHST R1 | herstel R1OPT.w R9,2KTG
107
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9
89958995
89968996
89978997
89988998
89998999
90009000
r[7] = ?r[8] = ?
r[9] = ?
TKA2 main
0000000000
1234567890
stap
elst
apel
89898989 r[1] = ?89888988 r[0] = ?
R8R8 89978997 0000008999
b: AFT.w R9,10 | r…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR aHST R8 | omg(b)…OPT.w R9,10 | r vrijKTG
108
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9
R8R8
89958995
89968996
89978997
89988998
89998999
90009000
r[7] = ?
r[8] = ?
r[9] = ?TKA2 main
0000000000
1234567890
stap
elst
apel
89898989 r[1] = ?89888988 r[0] = ?
b: AFT.w R9,10 | r…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR aHST R8 | omg(b)…OPT.w R9,10 | r vrijKTG
109
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}
R9R9R8R8
89988998
89998999
90009000
TKA2 main
0000000000
1234567890
stap
elst
apel
b: AFT.w R9,10 | r…BST R8 | omg(b)HIA R8,R9 | omg(a)SBR aHST R8 | omg(b)…OPT.w R9,10 | r vrijKTG
110
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
} R9R9R8R8 89998999
90009000
0000000000
1234567890
stap
elst
apel
main: HIA.w R8,0…| oproep a…BST R8 | omg(main)HIA R8,R9 | omg(b)SBR bHST R8 | omg(main)…
111
Voorbeeld : Uitvoerenvoid a ( ) {
int i, j, k;...i = k;
}void b ( ) {
int r[10];...a();...
}main ( ) {
...a( );...b( );
}R9R9
90009000 1234567890
stap
elst
apel
main: HIA.w R8,0…| oproep a…BST R8 | omg(main)HIA R8,R9 | omg(b)SBR bHST R8 | omg(main)…STP
R8 = 0R8 = 0