1.11k likes | 1.25k Views
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?
E N D
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? • 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
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 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 Voorbeeld LEZ HIA R1,R0
int a, b, c; main() { a = getint(); ... druk(); } void druk () { int da, db, dc; da = 1; … } | a R1, b R2, c R3 LEZ HIA R1,R0 … | R3 gewijzigd door druk Voorbeeld BST R3 SBR druk
int a, b, c; main() { a = getint(); ... druk(); } void druk () { int da, db, dc; da = 1; … } | a R1, b R2, c R3 LEZ HIA R1,R0 … BST R3 SBR druk | R3 gewijzigd door druk | da R1, db R2, dc R3 Voorbeeld druk: BST R1 BST R2
int a, b, c; main() { a = getint(); ... druk(); } void druk () { int da, db, dc; da = 1; … } | a R1, b R2, c R3 LEZ HIA R1,R0 … BST R3 SBR druk | R3 gewijzigd door druk | da R1, db R2, dc R3 druk: BST R1 BST R2 Voorbeeld HIA.w R1,1
int a, b, c; main() { a = getint(); ... druk(); } void druk () { int da, db, dc; da = 1; … } | a R1, b R2, c R3 LEZ HIA R1,R0 … BST R3 SBR druk | R3 gewijzigd door druk | da R1, db R2, dc R3 druk: BST R1 BST R2 HIA.w R1,1 … Voorbeeld HST R2 HST R1 KTG
int a, b, c; main() { a = getint(); ... druk(); } void druk () { int da, db, dc; da = 1; … } | a R1, b R2, c R3 LEZ HIA R1,R0 … BST R3 SBR druk | R3 gewijzigd door druk | da R1, db R2, dc R3 druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG Voorbeeld HST R3 STP Animatie: Ophalen + Analyseren Uitvoeren (effect op volgende slide)
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0000 BT Invoer 3 0000000000 0000000000 0000009000 0000000000 0000000000 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 1234567890 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0000 BT Invoer 3 0000000000 0000000000 0000009000 0000000000 0000000000 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 1234567890 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0001 BT Invoer 3 0000000000 0000000000 0000009000 0000000000 0000000000 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 1234567890 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0001 BT Invoer 0000000000 0000000000 0000000003 0000009000 0000000000 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 1234567890 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0001 BT Invoer 0000000000 0000000000 0000000003 0000009000 0000000000 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 1234567890 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0002 BT Invoer 0000000000 0000000000 0000000003 0000009000 0000000000 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 1234567890 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0002 BT Invoer 0000000003 0000000000 0000000003 0000009000 0000000000 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 0004 0005 0007 0003 0006 0008 … 0000000020 1234567890 8993 0000000300 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 1234567890 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0008 BT Invoer 0000000020 0000000003 0000000003 0000009000 0000000300 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 1234567890 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0009 BT Invoer 0000000020 0000000003 0000000003 0000009000 0000000300 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 1234567890 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0009 BT Invoer 3 0000000300 0000000003 0000008999 0000000020 0000000003 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 300 … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0009 BT Invoer 3 0000000300 0000000003 0000008999 0000000020 0000000003 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 300 … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0010 BT Invoer 0000008999 0000000003 0000000300 0000000020 0000000003 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 300 … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 1234567890 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0012 BT Invoer 0000000003 0000000003 0000008998 0000000300 0000000020 R2 R1 R0 R9 R3 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0012 BT Invoer 0000000003 0000000003 0000008998 0000000300 0000000020 R2 R1 R0 R9 R3 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0013 BT Invoer 0000000003 0000000003 0000008998 0000000300 0000000020 R2 R1 R0 R9 R3 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 1234567890 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0013 BT Invoer 0000000003 0000000003 0000008997 0000000300 0000000020 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0013 BT Invoer 0000000003 0000000003 0000008997 0000000300 0000000020 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0014 BT Invoer 0000000003 0000000003 0000008997 0000000300 0000000020 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 1234567890 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0014 BT Invoer 0000000003 0000000003 0000008996 0000000300 0000000020 R3 R2 R1 R0 R9 Voorbeeld 20 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0014 BT Invoer 0000000003 0000000003 0000008996 0000000300 0000000020 R3 R2 R1 R0 R9 Voorbeeld 20 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0015 BT Invoer 0000000003 0000000003 0000008996 0000000300 0000000020 R3 R2 R1 R0 R9 Voorbeeld 20 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0015 BT Invoer 0000000300 0000000020 0000000001 0000000003 0000008996 R0 R1 R3 R9 R2 Voorbeeld 20 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 0017 0018 0019 0020 0016 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0020 BT Invoer 0000000003 9999999999 0000008996 0000009876 9999999998 R3 R2 R1 R0 R9 Voorbeeld 20 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0021 BT Invoer 0000000003 9999999999 0000008996 0000009876 9999999998 R3 R2 R1 R0 R9 Voorbeeld 20 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0021 BT Invoer 0000000003 9999999999 0000008997 0000009876 0000000020 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0021 BT Invoer 0000000003 9999999999 0000008997 0000009876 0000000020 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0022 BT Invoer 0000000003 9999999999 0000008997 0000009876 0000000020 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 3 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0022 BT Invoer 0000000003 0000000003 0000008998 0000009876 0000000020 R2 R1 R0 R9 R3 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0022 BT Invoer 0000000003 0000000003 0000008998 0000009876 0000000020 R2 R1 R0 R9 R3 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0023 BT Invoer 0000000003 0000000003 0000008998 0000009876 0000000020 R2 R1 R0 R9 R3 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 10 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0010 BT Invoer 0000008999 0000000003 0000009876 0000000020 0000000003 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0010 BT Invoer 0000008999 0000000003 0000009876 0000000020 0000000003 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0011 BT Invoer 0000008999 0000000003 0000009876 0000000020 0000000003 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: 300 … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0011 BT Invoer 0000000020 0000000003 0000000003 0000009000 0000000300 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0011 BT Invoer 0000000020 0000000003 0000000003 0000009000 0000000300 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0012 BT Invoer 0000000020 0000000003 0000000003 0000009000 0000000300 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
| a R1, … LEZ HIA R1,R0 … BST R3 SBR druk HST R3 STP | R3 gewijzigd | da R1, … druk: BST R1 BST R2 HIA.w R1,1 … HST R2 HST R1 KTG 0012 BT Invoer 0000000020 0000000003 0000000003 0000009000 0000000300 R3 R2 R1 R0 R9 Voorbeeld 0: 1: … 8: 9: 10: 11: 12: 13: 14: … 20: 21: 22: … 1234567890 8993 1234567890 8994 1234567890 8995 0000000020 8996 0000000003 8997 stapel 0000000010 8998 0000000300 8999 1234567890 9000
Lokale variabelen • In geheugen func: … KTG da: RESGR 1db: RESGR 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
… stapel Lokale variabelen • Afspraak: • int a, b, c, d; a b c d
int a, b, c; main() { ... druk(); } void druk () { int da, db, dc; dc = 1; … } | a R1, b R2, c R3 … BST R3 SBR druk HST R3 … STP | da, db, dc op stapel | R3 gewijzigd Voorbeeld