1 / 111

SOCS

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?

Télécharger la présentation

SOCS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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)

  11. | 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

  12. | 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

  13. | 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

  14. | 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

  15. | 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

  16. | 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

  17. | 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

  18. | 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

  19. | 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

  20. | 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

  21. | 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

  22. | 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

  23. | 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

  24. | 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

  25. | 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

  26. | 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

  27. | 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

  28. | 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

  29. | 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

  30. | 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

  31. | 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

  32. | 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

  33. | 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

  34. | 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

  35. | 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

  36. | 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

  37. | 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

  38. | 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

  39. | 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

  40. | 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

  41. | 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

  42. | 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

  43. | 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

  44. | 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

  45. | 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

  46. | 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

  47. | 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

  48. 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

  49. stapel Lokale variabelen • Afspraak: • int a, b, c, d; a b c d

  50. 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

More Related