De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer."— Transcript van de presentatie:

1 1 SOCS Hoofdstuk 3 Basisprogrammatuur

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

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

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

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

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

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

38 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 59 Taken van de binder Plaats voorzien voor de modules Machinecode samenvoegen Startadres bepalen Code reloceren Externe referenties in rekening brengen (Relocatietabel genereren)

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

61 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 77 Stap 2: Samenvoegen, reloceren en binden Allocatietabel Mod.Beginadres A0000 B = 0002 Module A Samenvoegen Reloceren Startadres 0002

78 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 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 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 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 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 83 Stap 2: Samenvoegen, reloceren en binden Samenvoegen Reloceren Startadres Symbooltabel #relocatie/binding Relocatietabel #LAADADRES# 0005+#LAADADRES# #LAADADRES# 0008+#LAADADRES# #LAADADRES# 0002

84 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 85 Programmabibliotheek Bij vertaler  Verzameling subroutines  Vertaald  Samengevoegd in bibliotheek Binder:  Symbolisch adres niet gedefinieerd  Gezocht in de bibliotheek

86 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 87 Cursustekst Hoofdstuk 3: pag. 63  pag. 77


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

Verwante presentaties


Ads door Google