1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer.

Slides:



Advertisements
Verwante presentaties
KWALITEITSZORG november 2012
Advertisements

Voorrangsregels bij rekenen (2)
De elektronische verzamelaanvraag Ruben Fontaine Markt- en Inkomensbeheer – dienst Aangiftes.
‘SMS’ Studeren met Succes deel 1
Wat was toen het grootste het grootste probleem van de van de FOD?
Presentatie cliëntenonderzoek. Algemeen Gehouden in december 2013 (doorlopend tot eind januari) DoelgroepVerzondenOntvangen% LG wonen en dagbesteding.
NEDERLANDS WOORD BEELD IN & IN Klik met de muis

1 Resultaten marktonderzoek RPM Zeist, 16 januari 2002 Door: Olga van Veenendaal, medew. Rothkrans Projectmanagement.
November 2013 Opinieonderzoek Vlaanderen – oktober 2013 Opiniepeiling Vlaanderen uitgevoerd op het iVOXpanel.
Uitgaven aan zorg per financieringsbron / /Hoofdstuk 2 Zorg in perspectief /pagina 1.
Duurzaamheid en kosten
1 COVER: Selecteer het grijze vlak hiernaast met rechtsklik & kies ‘change picture’ voor een ander beeld of verwijder deze slide & kies in de menubalk.
Global e-Society Complex België - Regio Vlaanderen e-Regio Provincie Limburg Stad Hasselt Percelen.
 Deel 1: Introductie / presentatie  DVD  Presentatie enquête  Ervaringen gemeente  Pauze  Deel 2 Discussie in kleinere groepen  Discussies in lokalen.
STAPPENPLAN GRAMMATICUS.
Ronde (Sport & Spel) Quiz Night !
Een Concert van het Nederlands Philharmonisch Orkest LES 4 1.
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays  Klassiek gebruik  For opdracht, Increment/Decrement  Wijzers, Arrays en Wijzers.
INITIATIE DEFINITIESELECTIECONCIPIËREN INBEDDING IN ORGANISATIE ONDERHOUD Opdrachtgever/ Projectleider Eigenaar Architect en zijn team Stakeholders INITIATIEDEFINITIESELECTIECONCIPIËRENINBEDDINGONDERHOUD.
Een optimale benutting van vierkante meters Breda, 6 juni 2007.
Kb.1 Ik leer op een goede manier optellen en aftrekken
Tevredenheids- enquête 2012 P. Grouwels Inleiding Mogelijke antwoorden: Zeer goed: 4 sterren ****: volledig tevreden; Goed: 3 sterren ***:
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer.
© GfK 2012 | Title of presentation | DD. Month
Nooit meer onnodig groen? Luuk Misdom, IT&T
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer.
1 SOCS Hoofdstuk 1 Computerarchitectuur. 2 Overzicht Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s C.
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker  Werking van vertolker  Voor- en nadelen.
Hoofdstuk 3 Basisprogrammatuur
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler  Enkel MACRO en MCREINDE directieven  Extra macro-directieven De Lader De.
FOD VOLKSGEZONDHEID, VEILIGHEID VAN DE VOEDSELKETEN EN LEEFMILIEU 1 Kwaliteit en Patiëntveiligheid in de Belgische ziekenhuizen anno 2008 Rapportage over.
Elke 7 seconden een nieuw getal
Softwarepakket voor het catalogeren en determineren van fruitsoorten
Regelmaat in getallen … … …
Regelmaat in getallen (1).
1 het type x² = getal 2 ontbinden in factoren 3 de abc-formule
1 introductie 3'46” …………… normaal hart hond 1'41” ……..
Oefeningen F-toetsen ANOVA.
1Ben Bruidegom 1 Sequentiële schakelingen Toestand uitgang bepaald door:  ingangen &  vorige toestand uitgang.
Wat levert de tweede pensioenpijler op voor het personeelslid? 1 Enkele simulaties op basis van de weddeschaal B1-B3.
In dit vakje zie je hoeveel je moet betalen. Uit de volgende drie vakjes kan je dan kiezen. Er is er telkens maar eentje juist. Ken je het juiste antwoord,
Seminarie 1: Pythagoreïsche drietallen
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
Ben Bruidegom 1 Sequentiële schakelingen Toestand uitgang bepaald door:  ingangen;  vorige toestand uitgang.
ribwis1 Toegepaste wiskunde – Differentieren Lesweek 7
Inger Plaisier Marjolein Broese van Groenou Saskia Keuzenkamp
Help! ‘Niet vorderende ontsluiting’
SAMENWERKING WO EN HBO BIJ AANSLUITINGSONDERZOEK V0-HO Rob Andeweg DAIR 7 en 8 november 2007.
Cijfers Zorg en Gezondheid
Liaison dangereuse? Secretarissen en ontvangers over hun onderlinge verhouding en de werking van het managementteam Prof. Dr. Herwig Reynaert Dr. Kristof.
EFS Seminar Discriminatie van pensioen- en beleggingsfondsen
Hoe gaat dit spel te werk?! Klik op het antwoord dat juist is. Klik op de pijl om door te gaan!
Eerst even wat uitleg. Klik op het juiste antwoord als je het weet.
Op reis naar een dierentuin
Hartelijk welkom bij de Nederlandse Bridge Academie Hoofdstuk 7 De 2 ♦ /2 ♥ /2 ♠ en de 2 ♣ -opening 1Contract 2, hst 7.
Hartelijk welkom bij de Nederlandse Bridge Academie Hoofdstuk 9 Het eerste bijbod 1Contract 1, hoofdstuk 9.
Hoofdstuk 9 havo KWADRATEN EN LETTERS
Uitleg scheikundige begrippen
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 3.
Niet- rokersfaciliteiten in de Horeca. Bron: OIVO Rookvrije plaatsen? 25% 34% 31% 10% Moeilijk Eerder moeilijk Eerder gemakkelijk Gemakkelijk - 59% +
STIMULANS KWALITEITSZORG juni 2014.
De financiële functie: Integrale bedrijfsanalyse©
Centrummaten en Boxplot
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
DIGITAL ANALYTICS TOOLS. 2 DIGITALE MEDIA - METEN.
Openbaar je talent Service public, talent particulier.
23 mei 2013 Bodegraven vanaf hoofdstuk 6: hoofdst.1: de wijsheid van de wereld hoofdst.2: de wijsheid van God hoofdst.3: Gods akker en Gods bouwwerk.
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
Transcript van de presentatie:

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 Vertale r … … … druk: DRU … som: OPT R0,b … main: … BIG R0,a STP a: RESGR 1 Vertale r Vertaalde Module Module

5 Binder Binder … … … Vertaalde Module … … … Uitvoerbaar programma

6 Zelfde Resultaat Vertale r Samengevoegde Modules druk: DRU … som: OPT R0,b … main: … BIG R0,a STP a: RESGR … … … Uitvoerbaar programma

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 Modules Gedeelte van een programma  Hoofdprogramma  Procedure of Functie Verwijzigingen  symbolische adressen uit andere modules main: … SBR kwad … Module A … kwad: … HIA R0,A … Module B *** fout *** lijn 17: ‘kwad’ niet gedefinieerd

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

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

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 Objectmodule  Uitvoerbaar programma … #symbolen … Type  Lengte  Startadres  Symbool- tabel Hoofding Object- module … … #symbolen … #relocatie … Relocatie- & Bindings- tabel #reloc/bind. … … Machine-Code Uitvoerbaar programma

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 0,9995(-) HIA.w R0,EIND-MACHT Vertale r Schrijven als …

16 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): 0 PT PT 1 LT LT Symb. Adres Abs. Adres Type

17 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): 0 PT PT 1 LT LT Symb. Adres Abs. Adres Type

18 Symb. Adres Abs. Adres Type 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): Symb. Adres Abs. Adres TypeKWAD?extern EIND?extern 0 PT PT 2 LT LT

19 Symb. Adres Abs. Adres Type KWAD?extern EIND?extern 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): Symb. Adres Abs. Adres TypeKWAD?extern EIND?extern X0lokaal 0 PT PT 3 LT LT 2

20 Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal 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): Symb. Adres Abs. Adres TypeKWAD?extern EIND?extern X0lokaal PRG2lokaal 2 PT PT 4 LT LT 3

21 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): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal 3 PT PT 5 LT LT 4

22 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): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal 4 PT PT 6 LT LT 5

23 Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal 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): Symb. Adres Abs. Adres TypeKWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 5 PT PT 7 LT LT 6

24 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): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 6 PT PT 8 LT LT 7

25 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): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 7 PT PT 9 LT LT 8

26 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): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 7 PT PT 10 LT LT 8

27 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 0 PT PT 1 LT LT St St

28 St St 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 0 PT PT 1 LT LT 2

29 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 0 PT PT 2 LT LT 2 St St

30 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 0 PT PT 3 LT LT St St

31 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 2 PT PT 4 LT LT EIND HIA.w 0,9995(-) 2 St St #LAADADRES# 0000 – 0005 = 9995

32 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 3 PT PT 5 LT LT EIND HIA.w 0,9995(-) DRU 2 St St #LAADADRES#

33 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 4 PT PT 6 LT LT EIND HIA.w 0,9995(-) DRU HIA.d 1,0001(-) 2 St St #LAADADRES# #LAADADRES# = 0001

34 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 5 PT PT 7 LT LT EIND HIA.w 0,9995(-) DRU HIA.d 1,0001(-) SBR.d 0000(-) 2 St St #LAADADRES# #LAADADRES# KWAD

35 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 6 PT PT 8 LT LT EIND HIA.w 0,9995(-) DRU HIA.d 1,0001(-) SBR.d 0000(-) DRU 2 St St #LAADADRES# #LAADADRES# KWAD

36 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 7 PT PT 9 LT LT EIND HIA.w 0,9995(-) DRU HIA.d 1,0001(-) SBR.d 0000(-) DRU STP 2 St St #LAADADRES# #LAADADRES# KWAD

37 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 (2de stap): Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal 8 PT PT 10 LT LT EIND HIA.w 0,9995(-) DRU HIA.d 1,0001(-) SBR.d 0000(-) DRU STP 2 St St #LAADADRES# #LAADADRES# KWAD

HIA.w 0,9995(-) HIA.d 1,0001(-) DRU SBR.d 0000(-) DRU STP Vertaler  Binder 8 PT PT HIA.w 0,9995(-) DRU HIA.d 1,0001(-) SBR.d 0000(-) DRU STP 2 St St EIND #LAADADRES# #LAADADRES# KWAD Symb. Adres Abs. Adres Type KWAD?extern EIND?extern X0lokaal PRG2lokaal MACHT5lokaal

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

40 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): Symb. Adres Abs. Adres Type 0 PT PT 1 LT LT

41 Symb. Adres Abs. Adres Type 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): Symb. Adres Abs. Adres TypeDDM?globaal KWAD?globaal EIND?globaal 0 PT PT 1 LT LT

42 Symb. Adres Abs. Adres Type DDM?globaal KWAD?globaal EIND?globaal 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): 0 PT PT 2 LT LT 1 Symb. Adres Abs. Adres TypeDDM0globaal KWAD?globaal EIND?globaal

43 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): Symb. Adres Abs. Adres Type DDM0globaal KWAD?globaal EIND?globaal 1 PT PT 3 LT LT 2

44 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): Symb. Adres Abs. Adres Type DDM0globaal KWAD?globaal EIND?globaal 2 PT PT 4 LT LT 3

45 Symb. Adres Abs. Adres Type DDM0globaal KWAD?globaal EIND?globaal 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): Symb. Adres Abs. Adres TypeDDM0globaal KWAD3globaal EIND?globaal 3 PT PT 5 LT LT 4

46 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): Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND?globaal 4 PT PT 6 LT LT 5

47 Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND?globaal Symb. Adres Abs. Adres TypeDDM0globaal KWAD3globaal EIND?globaal 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): Symb. Adres Abs. Adres TypeDDM0globaal KWAD3globaal EIND5globaal 5 PT PT 7 LT LT 6

48 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): Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal 6 PT PT 8 LT LT

49 Vertaler  Binder Vertaler (2de stap): 0 PT PT 1 LT LT St St GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal

50 Vertaler  Binder Vertaler (2de stap): 0 PT PT 1 LT LT St St GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal

51 Vertaler  Binder Vertaler (2de stap): 0 PT PT 2 LT LT 1 SBR.d 0003(-) St St #LAADADRES# GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal

52 Vertaler  Binder Vertaler (2de stap): 1 PT PT 3 LT LT 2 SBR.d 0003(-) VER.w 0,0000(1) St St #LAADADRES# GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal

53 Vertaler  Binder Vertaler (2de stap): 2 PT PT 4 LT LT 3 SBR.d 0003(-) VER.w 0,0000(1) KTG St St #LAADADRES# GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal

54 Vertaler  Binder Vertaler (2de stap): 3 PT PT 5 LT LT 4 SBR.d 0003(-) VER.w 0,0000(1) KTG HIA.w 0,0000(1) St St #LAADADRES# GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal

55 Vertaler  Binder Vertaler (2de stap): 4 PT PT 6 LT LT 5 SBR.d 0003(-) VER.w 0,0000(1) KTG HIA.w 0,0000(1) VER.w 0,0000(1) St St #LAADADRES# GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal

56 Vertaler  Binder Vertaler (2de stap): 5 PT PT 7 LT LT 6 SBR.d 0003(-) VER.w 0,0000(1) KTG HIA.w 0,0000(1) VER.w 0,0000(1) KTG St St #LAADADRES# GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal

57 Vertaler  Binder Vertaler (2de stap): 6 PT PT 8 LT LT SBR.d 0003(-) VER.w 0,0000(1) KTG HIA.w 0,0000(1) VER.w 0,0000(1) KTG St St #LAADADRES# GLOBAAL DDM,KWAD,EIND DDM: SBR KWAD VER R0,R1 KTG KWAD: HIA R0,R1 VER R0,R1 EIND: KTG EINDPR Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal

58 Vertaler  Binder 6 PT PT SBR.d 0003(-) VER.w 0,0000(1) KTG HIA.w 0,0000(1) VER.w 0,0000(1) KTG St St #LAADADRES# Symb. Adres Abs. Adres Type DDM0globaal KWAD3globaal EIND5globaal SBR.d 0003(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) VER.w 0,0000(1) KTG #relocatie/binding #LAADADRES# #symbolen 0000 DDM 0000 globaal 0003 KWAD 0003 globaal 0005 EIND 0005 globaal

59 Taken van de binder Plaats voorzien voor de modules Machinecode samenvoegen Startadres bepalen Code reloceren Externe referenties in rekening brengen (Relocatietabel genereren)

60 Werking van de binder Twee stappen:  Stap 1: allocatie en globale symbooltabel  Stap 2: code samenvoegen, reloceren, binden, …

61 Stap 1: Allocatie- en globale symbooltabel Allocatietabel  Beginadres van elke module bepalen Globale Symbooltabel  globale etiketten  globale symbooltabel Gebruikte delen van objectmodules:  Hoofding  Symbooltabel

62 Allocatietabel ModuleBeginadres Stap 1: Allocatie- en globale symbooltabel #symbolen ???? KWAD ???? extern ???? EIND ???? extern 0000 X 0000 lokaal 0002 PRG 0002 lokaal 0005 MACHT 0005 lokaal CODE Relocatie/Binding Module A AllocatietabelModuleBeginadres A0000 Globale Symbooltabel EtiketAdres 0 PT PT A

63 Stap 1: Allocatie- en globale symbooltabel #symbolen 0000 DDM 0000 globaal 0003 KWAD 0003 globaal 0005 EIND 0005 globaal CODE Relocatie/Binding Module B Allocatietabel ModuleBeginadres A0000 Globale Symbooltabel EtiketAdres 8 PT PT A AllocatietabelModuleBeginadres A0000 B0008 B = 0008

64 Stap 1: Allocatie- en globale symbooltabel #symbolen 0000 DDM 0000 globaal 0003 KWAD 0003 globaal 0005 EIND 0005 globaal CODE Relocatie/Binding Module B Globale Symbooltabel EtiketAdres DDM PT PT A BAllocatietabelModuleBeginadres A0000 B = 0011

65 Stap 1: Allocatie- en globale symbooltabel #symbolen 0000 DDM 0000 globaal 0003 KWAD 0003 globaal 0005 EIND 0005 globaal CODE Relocatie/Binding Module B Globale Symbooltabel EtiketAdres DDM0008 KWAD PT PT A BAllocatietabelModuleBeginadres A0000 B = 0013

66 Stap 1: Allocatie- en globale symbooltabel #symbolen 0000 DDM 0000 globaal 0003 KWAD 0003 globaal 0005 EIND 0005 globaal CODE Relocatie/Binding Module B Globale Symbooltabel EtiketAdres DDM0008 KWAD0011 EIND PT PT A BAllocatietabelModuleBeginadres A0000 B

67 Stap 2: Samenvoegen, reloceren en binden Code van alle modules samenvoegen Relocatie/Binding m.b.v. Relocatie/Bindingstabel  Adres +#LAADADRES#  + beginadres van Module  Adres +EXTERN  + waarde van globaal symbool Startadres bepalen  startadres + beginadres van de module Symbooltabel toevoegen Relocatietabel aanmaken

68 Stap 2: Samenvoegen, reloceren en binden HIA.w 0,9995(-) HIA.d 1,0001(-) DRU SBR.d 0000(-) DRU STP SBR.d 0003(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) VER.w 0,0000(1) KTG Samenvoegen

69 Stap 2: Samenvoegen, reloceren en binden HIA.w 0,9995(-) HIA.d 1,0001(-) DRU SBR.d 0000(-) DRU STP SBR.d 0003(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) VER.w 0,0000(1) KTG #relocatie/binding EIND #LAADADRES# #LAADADRES# 0005+KWAD KWAD Module A Globale Symbooltabel EtiketAdres DDM0008 KWAD0011 EIND Samenvoegen RelocerenAllocatietabelMod.Beginadres A0000 B0008

70 Stap 2: Samenvoegen, reloceren en binden HIA.w 0,9995(-) HIA.d 1,0001(-) DRU SBR.d 0000(-) DRU STP SBR.d 0003(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) VER.w 0,0000(1) KTG #relocatie/binding EIND #LAADADRES# #LAADADRES# 0005+KWAD KWAD Module A Globale Symbooltabel EtiketAdres DDM0008 KWAD0011 EIND0013 AllocatietabelMod.Beginadres A0000 B = 0008 Samenvoegen Reloceren = 0002

71 Stap 2: Samenvoegen, reloceren en binden HIA.w 0,0008(-) HIA.d 1,0001(-) DRU SBR.d 0000(-) DRU STP SBR.d 0003(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) VER.w 0,0000(1) KTG #relocatie/binding EIND #LAADADRES# #LAADADRES# 0005+KWAD KWAD Module A Globale Symbooltabel EtiketAdres DDM0008 KWAD0011 EIND = 0001 Samenvoegen RelocerenAllocatietabelMod.Beginadres A0000 B = 0004

72 Stap 2: Samenvoegen, reloceren en binden HIA.w 0,0008(-) 0001 HIA.d 1,0001(-) DRU SBR.d 0000(-) DRU STP SBR.d 0003(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) VER.w 0,0000(1) KTG #relocatie/binding EIND #LAADADRES# #LAADADRES# 0005+KWAD KWAD Module A Globale Symbooltabel EtiketAdres DDM0008 KWAD0011 EIND = 0011 Samenvoegen RelocerenAllocatietabelMod.Beginadres A0000 B = 0005

73 Stap 2: Samenvoegen, reloceren en binden HIA.w 0,0008(-) 0001 HIA.d 1,0001(-) DRU SBR.d 0011(-) DRU STP SBR.d 0003(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) VER.w 0,0000(1) KTG #relocatie/binding EIND #LAADADRES# #LAADADRES# 0005+KWAD KWAD Module A Globale Symbooltabel EtiketAdres DDM0008 KWAD0011 EIND Samenvoegen RelocerenAllocatietabelMod.Beginadres A0000 B0008

74 Stap 2: Samenvoegen, reloceren en binden HIA.w 0,0008(-) 0001 HIA.d 1,0001(-) DRU SBR.d 0011(-) DRU STP SBR.d 0003(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) VER.w 0,0000(1) KTG Globale Symbooltabel EtiketAdres DDM0008 KWAD0011 EIND Module B #relocatie/binding #LAADADRES# Samenvoegen RelocerenAllocatietabelMod.Beginadres A0000 B0008

75 Stap 2: Samenvoegen, reloceren en binden HIA.w 0,0008(-) 0001 HIA.d 1,0001(-) DRU SBR.d 0011(-) DRU STP SBR.d 0003(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) VER.w 0,0000(1) KTG Globale Symbooltabel EtiketAdres DDM0008 KWAD0011 EIND Module B #relocatie/binding #LAADADRES# = 0011 Samenvoegen RelocerenAllocatietabelMod.Beginadres A0000 B = 0008

76 Stap 2: Samenvoegen, reloceren en binden HIA.w 0,0008(-) 0001 HIA.d 1,0001(-) DRU SBR.d 0011(-) DRU STP 0011 SBR.d 0011(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) VER.w 0,0000(1) KTG Module B Globale Symbooltabel EtiketAdres DDM0008 KWAD0011 EIND #relocatie/binding #LAADADRES# Samenvoegen RelocerenAllocatietabelMod.Beginadres A0000 B0008

77 Stap 2: Samenvoegen, reloceren en binden Allocatietabel Mod.Beginadres A0000 B = 0002 Module A Samenvoegen Reloceren Startadres 0002

78 Stap 2: Samenvoegen, reloceren en binden Module A #symbolen ???? KWAD ???? extern ???? EIND ???? extern 0000 X 0000 lokaal 0002 PRG 0002 lokaal 0005 MACHT 0005 lokaal Allocatietabel Mod.Beginadres A0000 B0008 #symbolen 0000 X 0000 lokaal 0002 PRG 0002 lokaal 0005 MACHT 0005 lokaal = = = 0005 Samenvoegen Reloceren Startadres 0002 Symbooltabel

79 Stap 2: Samenvoegen, reloceren en binden Allocatietabel Mod.Beginadres A0000 B0008 #symbolen 0000 X 0000 lokaal 0002 PRG 0002 lokaal 0005 MACHT 0005 lokaal Module B #symbolen 0000 DDM 0000 globaal 0003 KWAD 0003 globaal 0005 EIND 0005 globaal 0008 DDM 0008 lokaal 0011 KWAD 0011 lokaal 0013 EIND 0013 lokaal = = = 0013 Samenvoegen Reloceren Startadres Symbooltabel 0002

80 Stap 2: Samenvoegen, reloceren en binden Samenvoegen Reloceren #relocatie/binding EIND #LAADADRES# #LAADADRES# 0005+KWAD KWAD Module A Startadres Symbooltabel Allocatietabel Mod.Beginadres A0000 B = = = 0005 #relocatie/binding #LAADADRES# #LAADADRES# #LAADADRES# 0005+#LAADADRES# #LAADADRES# Relocatietabel 0002

81 Stap 2: Samenvoegen, reloceren en binden Samenvoegen Reloceren Startadres Symbooltabel Allocatietabel Mod.Beginadres A0000 B = 0008 #relocatie/binding #LAADADRES# #LAADADRES# #LAADADRES# 0005+#LAADADRES# #LAADADRES# Relocatietabel Module B #relocatie/binding #LAADADRES# 0008+#LAADADRES# #LAADADRES# 0002

82 Stap 2: Samenvoegen, reloceren en binden Samenvoegen Reloceren Startadres Symbooltabel #relocatie/binding #LAADADRES# #LAADADRES# Relocatietabel #LAADADRES# 0005+#LAADADRES# #LAADADRES# 0008+#LAADADRES# #LAADADRES# 0002

83 Stap 2: Samenvoegen, reloceren en binden Samenvoegen Reloceren Startadres Symbooltabel #relocatie/binding Relocatietabel #LAADADRES# 0005+#LAADADRES# #LAADADRES# 0008+#LAADADRES# #LAADADRES# 0002

84 Stap 2: Uitvoerbaar programma #relocatie/binding #LAADADRES# 0005+#LAADADRES# #LAADADRES# 0008+#LAADADRES# #LAADADRES# #symbolen 0000 X 0000 lokaal 0002 PRG 0002 lokaal 0005 MACHT 0005 lokaal 0008 DDM 0008 lokaal 0011 KWAD 0011 lokaal 0013 EIND 0013 lokaal HIA.w 0,0008(-) 0001 HIA.d 1,0001(-) DRU SBR.d 0011(-) DRU STP 0011 SBR.d 0011(-) KTG VER.w 0,0000(1) HIA.w 0,0000(1) KTG

85 Programmabibliotheek Bij vertaler  Verzameling subroutines  Vertaald  Samengevoegd in bibliotheek Binder:  Symbolisch adres niet gedefinieerd  Gezocht in de bibliotheek

86 RAM Van bronprogramma tot Uitvoerbaar programma Module A (met macro’s) Module B (met macro’s) Module A (zonder macro’s) Objectmodule A Voorvertaler Vertaler Binder Uitvoerbaar Programma Module B (zonder macro’s) Objectmodule B Voorvertaler Vertaler Programma- bibliotheek Lader Uitvoerbaar Programma Broncode Machinecode Legende:

87 Cursustekst Hoofdstuk 3: pag. 63  pag. 77