1 / 87

SOCS

SOCS. Hoofdstuk 3 Basisprogrammatuur. Inhoud. De Vertaler De Voorvertaler De Lader De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer. Inhoud. De Vertaler De Voorvertaler De Lader De Binder Verantwoording Modules + Vertaler directieven Taken van de Binder

borka
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 3 Basisprogrammatuur

  2. Inhoud • De Vertaler • De Voorvertaler • De Lader • De Binder • De Vertolker • Het Speurprogramma • Het Opstarten van de Computer

  3. Inhoud • De Vertaler • De Voorvertaler • De Lader • De Binder • Verantwoording • Modules + Vertaler directieven • Taken van de Binder • Werking van de Binder • Van Bron-programma tot Uitvoering • De Vertolker • Het Speurprogramma • Het Opstarten van de Computer

  4. Project Vertaler druk: DRU … 7299999999 … som: OPT R0,b … Vertaler 2131000000 … … 1221000010 9999999999 … main: … BIG R0,a STP a: RESGR 1 Vertaler Module Vertaalde Module

  5. Binder 7299999999 … 7299999999 … Binder 2131000000 … 2131000040 … … 1221000066 9999999999 … … 1221000010 9999999999 … Uitvoerbaar programma Vertaalde Module

  6. Zelfde Resultaat 7299999999 … druk: DRU … Vertaler 2131000040 … som: OPT R0,b … … 1221000066 9999999999 … main: … BIG R0,a STP a: RESGR 1 Uitvoerbaar programma SamengevoegdeModules

  7. Verantwoording • Samenvoegen van bronprogramma: • Unieke symbolische adressen ? • Stricte afspraken nodig • Hervertaling duurt langer • Programmabibliotheken • Reeds vertaalde deelprogramma’s • Vb. parse (ASCII-string  binair getal), sqrt, sort, … • Broncode niet beschikbaar • Bovendien onpractisch om manueel samen te voegen

  8. main: … SBR kwad … … kwad: … HIA R0,A … Module A Module B Modules • Gedeelte van een programma • Hoofdprogramma • Procedure of Functie • Verwijzigingen  symbolische adressen uit andere modules *** fout *** lijn 17: ‘kwad’ niet gedefinieerd

  9. EXTERN kwad main: … SBR kwad … GLOBAAL kwad … kwad: … HIA R0,A … Module A Module B Vertaler directieven • EXTERN symb.adres • symb.adres is in een andere module gedefinieerd • GLOBAAL symb.adres • andere module mag naar symb.adres verwijzen

  10. EXTERN kwad STARTPR main main: … SBR kwad … GLOBAAL kwad … kwad: … HIA R0,A … Module A Module B Vertaler directieven • STARTPR adres • De uitvoering start bij “adres” • Moet in 1 module aanwezig zijn

  11. Objectmodule • Resultaat van vertaling van module • Machinecode • Niet uitvoerbaar! • Onvolledig • Sommige adressen onbekend (externe symbolische adressen) • Reloceerbaar • Samenvoegen (niet allemaal vanaf 0000) • Vertaler genereert steeds objectmodule

  12. 9999999999 9999999991 Hoofding 0000000024 0000000086 0000000002 0000000002 0000000100 0000000100 0000000200 0000000200 Machine- Code 1131100001 1131100001 … … #symbolen … Symbool-tabel … #symbolen #reloc/bind. … Relocatie-& Bindings-tabel … #relocatie … … Objectmodule  Uitvoerbaar programma Type  Lengte  Startadres  Uitvoerbaarprogramma Object-module

  13. Informatie: Vertaler  Binder • Objectmodule = reloceerbaar • Relocatie-informatie • Externe symbolische adressen? • Niet gekend, dus 0000 en informatie voor binder •  Relocatie- en bindingstabel Relatief-adres +/-Bewerking • Uitgebreide symbooltabel Naam Waarde Type • Type = lokaal, globaal, extern

  14. Voorbeeld STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR

  15. Afspraak HIA.w R0,EIND-MACHT Vertaler 1111009995 Schrijven als … HIA.w 0,9995(-)

  16. PT LT 0 1 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap):

  17. PT LT 0 1 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap):

  18. PT LT 0 2 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap):

  19. PT LT 0 3 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap): 2

  20. PT LT 2 4 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap): 3

  21. PT LT 3 5 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap): 4

  22. PT LT 4 6 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap): 5

  23. PT LT 5 7 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap): 6

  24. PT LT 6 8 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap): 7

  25. PT LT 7 9 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap): 8

  26. PT LT 7 10 Vertaler  Binder STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR Vertaler (1ste stap): 8

  27. PT LT St 0 1 -1 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR

  28. PT LT St -1 0 1 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR 2

  29. PT LT St 0 2 2 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR

  30. PT LT St 0 3 2 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR 0000000100 0000001000 2

  31. PT LT St 2 4 2 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR 0000000100 0000001000 HIA.w 0,9995(-) 0002 +EIND 0002 -#LAADADRES# 3 0000 – 0005 = 9995

  32. PT LT St 3 5 2 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR 0000000100 0000001000 HIA.w 0,9995(-) DRU 0002 +EIND 0002 -#LAADADRES# 4

  33. PT LT St 4 6 2 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR 0000000100 0000001000 HIA.w 0,9995(-) DRU HIA.d 1,0001(-) 0002 +EIND 0002 -#LAADADRES# 0004 +#LAADADRES# 5 0000 + 1 = 0001

  34. PT LT St 5 7 2 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR 0000000100 0000001000 HIA.w 0,9995(-) DRU HIA.d 1,0001(-) SBR.d 0000(-) 0002 +EIND 0002 -#LAADADRES# 0004 +#LAADADRES# 0005 +KWAD 6

  35. PT LT St 6 8 2 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR 0000000100 0000001000 HIA.w 0,9995(-) DRU HIA.d 1,0001(-) SBR.d 0000(-) DRU 0002 +EIND 0002 -#LAADADRES# 0004 +#LAADADRES# 0005 +KWAD 7

  36. PT LT St 7 9 2 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR 0000000100 0000001000 HIA.w 0,9995(-) DRU HIA.d 1,0001(-) SBR.d 0000(-) DRU STP 0002 +EIND 0002 -#LAADADRES# 0004 +#LAADADRES# 0005 +KWAD 8

  37. PT LT St 8 10 2 Vertaler  Binder Vertaler (2de stap): STARTPR PRG EXTERN KWAD,EIND X: 100; 1000 PRG: HIA.w R0,EIND-MACHT DRU HIA R1,X+1 MACHT: SBR KWAD DRU STP EINDPR 0000000100 0000001000 HIA.w 0,9995(-) DRU HIA.d 1,0001(-) SBR.d 0000(-) DRU STP 0002 +EIND 0002 -#LAADADRES# 0004 +#LAADADRES# 0005 +KWAD

  38. 0000000100 PT St 2 8 0000001000 0000000100 HIA.w 0,9995(-) 0000001000 DRU HIA.w 0,9995(-) HIA.d 1,0001(-) DRU SBR.d 0000(-) DRU HIA.d 1,0001(-) STP SBR.d 0000(-) DRU STP 0002 +EIND 0002 -#LAADADRES# 0004 +#LAADADRES# 0005 +KWAD Vertaler  Binder 9999999999 0000000008 0000000002

  39. 0000000100 PT St 8 2 0000001000 HIA.w 0,9995(-) DRU HIA.d 1,0001(-) SBR.d 0000(-) DRU #relocatie/binding STP 0002 +EIND #symbolen 0002 -#LAADADRES# KWAD ???? extern 0004 +#LAADADRES# 0002 +EIND 0002 -#LAADADRES# 0005+KWAD EIND ???? extern 0004 +#LAADADRES# 0005 +KWAD X 0000 lokaal PRG 0002 lokaal MACHT 0005 lokaal Vertaler  Binder

  40. PT LT 0 1 Vertaler  Binder GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Vertaler (1ste stap):

  41. PT LT 0 1 Vertaler  Binder GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Vertaler (1ste stap):

  42. PT LT 0 2 Vertaler  Binder GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Vertaler (1ste stap): 1

  43. PT LT 1 3 Vertaler  Binder GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Vertaler (1ste stap): 2

  44. PT LT 2 4 Vertaler  Binder GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Vertaler (1ste stap): 3

  45. PT LT 3 5 Vertaler  Binder GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Vertaler (1ste stap): 4

  46. PT LT 4 6 Vertaler  Binder GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Vertaler (1ste stap): 5

  47. PT LT 5 7 Vertaler  Binder GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Vertaler (1ste stap): 6

  48. PT LT 6 8 Vertaler  Binder GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Vertaler (1ste stap):

  49. PT LT St 0 1 -1 Vertaler  Binder Vertaler (2de stap): GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR

  50. PT LT St 0 1 -1 Vertaler  Binder Vertaler (2de stap): GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR

More Related