111
1 SOCS Hoofdstuk 1 Computerarchitect uur

SOCS

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

Page 1: SOCS

1

SOCS

Hoofdstuk 1

Computerarchitectuur

Page 2: SOCS

2

Functies in DRAMA

Werken met een Stapel Oproepen van Procedure Lokale variabelen (Eenvoudige) Parameters

Page 3: SOCS

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

Page 4: SOCS

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

Page 5: SOCS

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

Page 6: SOCS

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

Page 7: SOCS

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

Page 8: SOCS

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

Page 9: SOCS

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

Page 10: SOCS

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:

Page 11: SOCS

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

Page 12: SOCS

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

Page 13: SOCS

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

Page 14: SOCS

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

Page 15: SOCS

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

Page 16: SOCS

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

Page 17: SOCS

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

Page 18: SOCS

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

Page 19: SOCS

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

Page 20: SOCS

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

Page 21: SOCS

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

Page 22: SOCS

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

Page 23: SOCS

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

Page 24: SOCS

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

Page 25: SOCS

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

Page 26: SOCS

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

Page 27: SOCS

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

Page 28: SOCS

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

Page 29: SOCS

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

Page 30: SOCS

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

Page 31: SOCS

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

Page 32: SOCS

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

Page 33: SOCS

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

Page 34: SOCS

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

Page 35: SOCS

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

Page 36: SOCS

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

Page 37: SOCS

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

Page 38: SOCS

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

Page 39: SOCS

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

Page 40: SOCS

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

Page 41: SOCS

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

Page 42: SOCS

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

Page 43: SOCS

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

Page 44: SOCS

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

Page 45: SOCS

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

Page 46: SOCS

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

Page 47: SOCS

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

Page 48: SOCS

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

Page 49: SOCS

49

Lokale variabelen

Afspraak: int a, b, c, d;

a

b

cd

stap

elst

apel

Page 50: SOCS

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

Page 51: SOCS

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

Page 52: SOCS

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)

Page 53: SOCS

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

Page 54: SOCS

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

Page 55: SOCS

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

Page 56: SOCS

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

Page 57: SOCS

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)

Page 58: SOCS

58

Activatierecord

HIA.w R0,1

BIG R0,2(R9) | dc = 1

BST R1

| dc = 0

--- da ---

--- db ---

--- dc ---TKA

R9R9

Page 59: SOCS

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

Page 60: SOCS

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

Page 61: SOCS

61

Activatierecord

Vast punt in AR (R8)

1234567890

stap

elst

apelR8R8

R8R8

R8R8

1234567890

R8R8

1234567890

R8R8

Verwijderen … R8 herstellen!Verwijderen … R8 herstellen!

Page 62: SOCS

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

Page 63: SOCS

63

Voorbeeld

void a ( ) {int i, j, k;...i = k;

}void b ( ) {

int r[10];...a();

}main ( ) {

...a( );...b( );

}

Page 64: SOCS

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)

Page 65: SOCS

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)

Page 66: SOCS

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

Page 67: SOCS

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

Page 68: SOCS

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)

Page 69: SOCS

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)

Page 70: SOCS

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)

Page 71: SOCS

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)

Page 72: SOCS

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)

Page 73: SOCS

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)

Page 74: SOCS

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)

Page 75: SOCS

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)

Page 76: SOCS

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)

Page 77: SOCS

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

Page 78: SOCS

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

Page 79: SOCS

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)

Page 80: SOCS

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

Page 81: SOCS

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)

Page 82: SOCS

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)

Page 83: SOCS

83

Voorbeeldvoid a ( ) {

int i, j, k;...i = k;

}void b ( ) {

int r[10];...a();...

}main ( ) {

...a( );...b( );

}

Page 84: SOCS

84

Voorbeeldvoid a ( ) {

int i, j, k;...i = k;

}void b ( ) {

int r[10];...a();...

}main ( ) {

...a( );...b( );

}

main: HIA.w R8,0

R9R9

Page 85: SOCS

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

Page 86: SOCS

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

Page 87: SOCS

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

Page 88: SOCS

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

Page 89: SOCS

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

Page 90: SOCS

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)…

Page 91: SOCS

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

Page 92: SOCS

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)…

Page 93: SOCS

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

Page 94: SOCS

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)

Page 95: SOCS

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

Page 96: SOCS

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

Page 97: SOCS

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)…

Page 98: SOCS

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

Page 99: SOCS

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)…

Page 100: SOCS

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

Page 101: SOCS

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

Page 102: SOCS

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

Page 103: SOCS

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

Page 104: SOCS

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)

Page 105: SOCS

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

Page 106: SOCS

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

Page 107: SOCS

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

Page 108: SOCS

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

Page 109: SOCS

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

Page 110: SOCS

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)…

Page 111: SOCS

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