Hoofdstuk 3 Basisprogrammatuur SOCS Hoofdstuk 3 Basisprogrammatuur
Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker De absolute lader De relocerende lader Dynamische relocatie De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer
Lader 1131000005 7299999999 2131000006 9999999999 0000010000 0000020000 RAM 1131000005 7299999999 2131000006 9999999999 0000010000 0000020000 Lader Uitvoerbaar programma (machinetaal)
Lader RAM 1131000005 7299999999 2131000006 9999999999 0000010000 0000020000 1131000005 7299999999 2131000006 9999999999 0000010000 0000020000 Lader
Verantwoording Nodig? Vertaler? 1131000005 7299999999 2131000006 9999999999 0000010000 0000020000 RAM Nodig? Vertaler? Vertalen Uitvoeren Telkens opnieuw! Tijd! | Vertaler | > | Lader | Minder geheugen beschikbaar HIA R0,A DRU OPT R0,B STP A: 10000 B: 20000 Vertaler
Verantwoording Vertalen ... ( x 1 ) RAM 1131000005 7299999999 HIA R0,A 2131000006 9999999999 0000010000 0000020000 HIA R0,A DRU OPT R0,B STP A: 10000 B: 20000 Vertaler Schijf
Verantwoording Uitvoeren ... ( x N ) 1131000005 7299999999 2131000006 9999999999 0000010000 0000020000 RAM Uitvoeren ... ( x N ) 1131000005 7299999999 2131000006 9999999999 0000010000 0000020000 Lader
Lader Deel van het besturingssysteem Verschillende Lader-algoritmes Zie ook opstarten van een computer Verschillende Lader-algoritmes Absolute Lader Relocerende Lader Extra Apparatuur Dynamische adresvertaling
Absolute Lader Uitvoerbaar programma ongewijzigd in geheugen Meest elementaire geval Programma steeds vanaf adres 0000 geladen Programma in invoerorgaan Eerste getal = lengte van het programma Lader geladen vanaf adres 9000 0000000145 7299999999 … symb.tabel Lengte aanduiding 145 bevelen/constanten
Absolute Lader … Algoritme: R1 Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen Start uitvoering 0000 0002 … 0003 0004 0005 0001 7199999999 0000000000 1221000010 R1
Absolute Lader … Algoritme: R1 Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen Start uitvoering | Absolute Lader | Aantal R2 | Adres R1 LEZ | Lengte HIA R2,R0 0000 0002 … 0003 0004 0005 0001 7199999999 0000000000 1221000010 R1
Absolute Lader … Algoritme R1 Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen Start uitvoering | Absolute Lader | Aantal R2 | Adres R1 LEZ | Lengte HIA R2,R0 HIA.w R1,0 0000 0002 … 0003 0004 0005 0001 7199999999 0000000000 1221000010 R1
Absolute Lader … Algoritme R1 Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen Start uitvoering | Absolute Lader | Aantal R2 | Adres R1 LEZ | Lengte HIA R2,R0 HIA.w R1,0 LUS: VGL.w R2,0 0000 0002 … 0003 0004 0005 0001 7199999999 0000000000 1221000010 R1
Absolute Lader … Algoritme R1 Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen Start uitvoering | Absolute Lader | Aantal R2 | Adres R1 LEZ | Lengte HIA R2,R0 HIA.w R1,0 LUS: VGL.w R2,0 VSP KLG,0 | Start 0000 0002 … 0003 0004 0005 0001 7199999999 0000000000 1221000010 R1
Absolute Lader … Algoritme R1 Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen Start uitvoering | Absolute Lader | Aantal R2 | Adres R1 LEZ | Lengte HIA R2,R0 HIA.w R1,0 LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) 0000 0002 … 0003 0004 0005 0001 7199999999 0000000000 1221000010 R1
Absolute Lader … Algoritme R1 Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen Start uitvoering | Absolute Lader | Aantal R2 | Adres R1 LEZ | Lengte HIA R2,R0 HIA.w R1,0 LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) 0000 0002 … 0003 0004 0005 0001 7199999999 0000000000 1221000010 R1 AFT.w R2,1
Absolute Lader … Algoritme R1 Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen Start uitvoering | Absolute Lader | Aantal R2 | Adres R1 LEZ | Lengte HIA R2,R0 HIA.w R1,0 LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 0000 0002 … 0003 0004 0005 0001 7199999999 0000000000 1221000010 R1 SPR LUS
Absolute Lader … Algoritme R1 Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen Start uitvoering | Absolute Lader | Aantal R2 | Adres R1 LEZ | Lengte HIA R2,R0 HIA.w R1,0 LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR 0000 0002 … 0003 0004 0005 0001 7199999999 0000000000 1221000010 R1
Absolute Lader Simulator? Truukjes Zelf lengte aanduiding toevoegen Invoer uit bestand -invoer bestandsnaam Lader vanaf 9000? | Absolute Lader | Aantal R2 | Adres R1 LEZ | Lengte HIA R2,R0 HIA.w R1,0 LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR
Absolute Lader Simulator? Truukjes Zelf lengte aanduiding toevoegen Invoer uit bestand -invoer bestandsnaam Lader vanaf 9000! | Absolute lader LEZ | Lengte HIA R2,R0 HIA.w R1,0 LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR SPR LAD XXX: RESGR 8999 LAD:
Absolute Lader Verfijning Probleem Programma NIET ALTIJD vanaf adres 0000 geladen Meerdere programma’s in het geheugen! Probleem Adressen kloppen niet Vertaler symbooltabel (PT = 0)
Absolute Lader … A B A B A B 1131100004 1221100005 0002 0003 0004 0005 0001 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 A B HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0100 0102 0103 0104 0105 0101 1131100104 1221100105 0000000010 9999999999 2111100001 0000000000 A B HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 … 0300 0302 0303 0304 0305 0301 1131100304 1221100305 0000000010 9999999999 2111100001 0000000000 A B HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1
Absolute Lader Lader kan programma niet wijzigen Oplossing: Vertaler moet correcte adressen genereren Programmeur Vertaler: “Te laden vanaf XXX” Vertaler-directief LAADGR laadadres Vertaler: Stap 1: PT Laadadres (i.p.v. 0) Stap 2: Lengte en Laadadres in uitvoerbaar programma
Absolute Lader LAADGR 300 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 0000000006 0000000300 Hoofding Lengte Laadadres 1131100304 1221100305 0000000010 9999999999 2111100001 0000000000 Programma- code LAADGR 300 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 #symbolen A 0304 B 0305 Symbool- tabel Bronprogramma Uitvoerbaar programma
Absolute Lader … … … Vertaler Vertaler Vertaler HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 LAADGR 100 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 LAADGR 300 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 Vertaler Vertaler Vertaler 1131100004 1221100005 2111100001 0000000006 0000000000 … 1131100104 1221100105 2111100001 0000000006 0000000100 … 1131100304 1221100305 2111100001 0000000006 0000000300 …
Absolute Lader … … … Lader A B A B A B 1131100004 1221100005 2111100001 0000000006 0000000000 … 0000 0002 0003 0004 0005 0001 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 A B 1131100104 1221100105 2111100001 0000000006 0000000100 … 0100 0102 0103 0104 0105 0101 1131100104 1221100105 0000000010 9999999999 2111100001 0000000000 A B Lader 1131100304 1221100305 2111100001 0000000006 0000000300 … 0300 0302 0303 0304 0305 0301 1131100304 1221100305 0000000010 9999999999 2111100001 0000000000 A B
Absolute Lader Algoritme Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen Start uitvoering | Absolute Lader | Aantal R2 | Adres R1 LEZ | Lengte HIA R2,R0 LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR Laadadres inlezen | Laadadres R3 LEZ | Laadadres HIA R3,R0 HIA R1,R0 (begin bij Laadadres) (R3) Sprong Laadadres
Relocerende Lader Absolute lader: Programmeur moet vóór vertaling laadadres kennen Vertaler Lader: “Hoe adressen aanpassen” Relocatietabel relatief adres bewerking
Vertaler Relocerende Lader 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 0000000006 #symbolen A 0004 B 0005 Lengte Laadadres 9999999999 0000 0002 0003 0004 0005 0001 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 #relocatie 0000 +#LAADADRES# 0002 +#LAADADRES#
Vertaler Relocerende Lader HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 Vertaler (1ste stap): Symb. Adres Abs. Adres A 4 B 5
Vertaler Relocerende Lader Vertaler (2de stap): PT 1 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 1131100004 1 LT 0000 +#LAADADRES# Symb. Adres Abs. Adres A 4 B 5
Vertaler Relocerende Lader Vertaler (2de stap): 1 PT 2 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 1131100004 2111100001 2 LT 0000 +#LAADADRES# 0001 +#LAADADRES# Symb. Adres Abs. Adres A 4 B 5 0001 -#LAADADRES#
Vertaler Relocerende Lader Vertaler (2de stap): 2 PT 3 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 1131100004 2111100001 3 LT 1221100005 0000 +#LAADADRES# 0001 +#LAADADRES# Symb. Adres Abs. Adres A 4 B 5 0001 -#LAADADRES# 0002 +#LAADADRES#
Vertaler Relocerende Lader Vertaler (2de stap): 3 PT 4 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 1131100004 2111100001 4 LT 1221100005 9999999999 0000 +#LAADADRES# 0001 +#LAADADRES# Symb. Adres Abs. Adres A 4 B 5 0001 -#LAADADRES# 0002 +#LAADADRES#
Vertaler Relocerende Lader Vertaler (2de stap): 4 PT 5 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 1131100004 2111100001 5 LT 1221100005 9999999999 0000000010 0000 +#LAADADRES# 0001 +#LAADADRES# Symb. Adres Abs. Adres A 4 B 5 0001 -#LAADADRES# 0002 +#LAADADRES#
Vertaler Relocerende Lader Vertaler (2de stap): 5 PT 6 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 1131100004 2111100001 6 LT 1221100005 9999999999 0000000010 0000000000 0000 +#LAADADRES# 0001 +#LAADADRES# Symb. Adres Abs. Adres A 4 B 5 0001 -#LAADADRES# 0002 +#LAADADRES#
Vertaler Relocerende Lader Vertaler (2de stap): 6 PT HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 1131100004 2111100001 6 LT 1221100005 9999999999 0000000010 0000000000 0000 +#LAADADRES# 0001 +#LAADADRES# Symb. Adres Abs. Adres A 4 B 5 0001 -#LAADADRES# 0002 +#LAADADRES#
Vertaler Relocerende Lader 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 0000000006 #symbolen A 0004 B 0005 #relocatie 0000 +#LAADADRES# 0002 +#LAADADRES# 6 PT 1131100004 2111100001 1221100005 Symb. Adres Abs. Adres A 4 B 5 9999999999 0000000010 0000000000 0000 +#LAADADRES# 0001 +#LAADADRES# 0001 -#LAADADRES# 0002 +#LAADADRES#
Relocerende Lader Twee stappen: Stap 1: Stap 2: Relocatie-stap: Uitvoerbaar programma letterlijk geheugen Stap 2: Relocatie-stap: Adressen aanpassen
Relocerende Lader Laadadres = 0300 Stap 1 1131100004 1112323423 1221100005 0000000010 9999999999 2111100001 0000000000 0000000006 #symbolen A 0004 B 0005 #relocatie 0000 +#LAADADRES# 0002 +#LAADADRES# Laadadres = 0300 Stap 1 1131100004 1112323423 5223241231 4563453242 1231231231 0000000000 9231231231 0300 0302 0303 0304 0305 0301 2111100001 1221100005 9999999999 0000000010 0000000000
Relocerende Lader Laadadres = 0300 Stap 2 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 0000000006 #symbolen A 0004 B 0005 #relocatie 0000 +#LAADADRES# 0002 +#LAADADRES# Laadadres = 0300 Stap 2 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 0300 0302 0303 0304 0305 0301
Relocerende Lader Laadadres = 0300 Stap 2 1131100304 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 0000000006 #symbolen A 0004 B 0005 #relocatie 0000 +#LAADADRES# 0002 +#LAADADRES# Laadadres = 0300 Stap 2 1131100304 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 0300 0302 0303 0304 0305 0301 0300+0000 = 0300
Relocerende Lader Laadadres = 0300 Stap 2 1131100304 1221100005 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 0000000006 #symbolen A 0004 B 0005 #relocatie 0000 +#LAADADRES# 0002 +#LAADADRES# Laadadres = 0300 Stap 2 1131100304 1221100005 0000000010 9999999999 2111100001 0000000000 0300 0302 0303 0304 0305 0301 1221100305 0300+0002 = 0302
Relocerende Lader … 1131100304 2111100001 1221100305 Vertaler LAADGR 300 HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 1131100304 1221100305 0000000010 9999999999 2111100001 0000000000 0300 0302 0303 0304 0305 0301 Vertaler 1131100304 1221100305 2111100001 0000000006 0000000300 …
Relocerende Lader Voordelen: Gevolgen vertaler: = Statische Relocatie Programmeur NIET laadadres opgeven Keuze uitgesteld tot uitvoeringstijd Vertaalde progr. kan om het even waar geladen Gevolgen vertaler: Kleine uitbreiding 2de stap = Statische Relocatie Relocatie eenmaal, vóór uitvoering
Dynamische Relocatie Hardware aanpassen: Dynamische Relocatie: Geheugenbeheereenheid (GBE) Memory Management Unit (MMU) Dynamische Relocatie: Adressen aangepast TIJDENS uitvoering Vergelijk: Indexatie: adres tijdens uitvoering berekend Dyn. Relocatie: alle adressen herberekend
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0000 GAR 1234 9999999999 BR RAM br 0300 0000000000 OR 1234567890 R1 1234567890 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0000 GAR 0300 READ 9999999999 BR RAM br 0300 0000000000 OR 1234567890 R1 1234567890 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0000 GAR 0300 9999999999 BR RAM br 0300 0000000000 OR READ 1234567890 R1 1131100004 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0001 GAR 0300 1131100004 BR RAM br 0300 0000000000 OR 1234567890 R1 1131100004 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO analyseren Besturingsorgaan GBE BT 0001 GAR 0300 1131100004 BR RAM br 0300 0000000004 OR 1234567890 R1 1131100004 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO analyseren Besturingsorgaan GBE BT 0001 GAR 0304 READ 1131100004 BR RAM br 0300 0000000004 OR 1234567890 R1 1131100004 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO analyseren Besturingsorgaan GBE BT 0001 GAR 0304 1131100004 BR RAM br 0300 0000000004 OR READ 1234567890 R1 0000000010 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO analyseren Besturingsorgaan GBE BT 0001 GAR 0304 1131100004 BR RAM br 0300 0000000010 OR 1234567890 R1 0000000010 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO uitvoeren Besturingsorgaan GBE BT 0001 GAR 0304 1131100004 BR RAM br 0300 0000000010 OR 1234567890 R1 0000000010 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO uitvoeren Besturingsorgaan GBE BT 0001 GAR 0304 1131100004 BR RAM br 0300 0000000010 OR 0000000010 R1 0000000010 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0001 GAR 0304 1131100004 BR RAM br 0300 0000000004 OR 0000000010 R1 0000000010 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0001 GAR 0301 READ 1131100004 BR RAM br 0300 0000000004 OR 0000000010 R1 0000000010 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0001 GAR 0301 1131100004 BR RAM br 0300 0000000004 OR READ 0000000010 R1 2111100001 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0002 GAR 0301 2111100001 BR RAM br 0300 0000000004 OR 0000000010 R1 2111100001 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO analyseren Besturingsorgaan GBE BT 0002 GAR 0301 2111100001 BR RAM br 0300 0000000001 OR 0000000010 R1 2111100001 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO uitvoeren Besturingsorgaan GBE BT 0002 GAR 0301 2111100001 BR RAM br 0300 0000000001 OR 0000000011 R1 2111100001 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0002 GAR 0301 2111100001 BR RAM br 0300 0000000001 OR 0000000011 R1 2111100001 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0002 GAR 0302 READ 2111100001 BR RAM br 0300 0000000001 OR 0000000011 R1 2111100001 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0002 GAR 0302 2111100001 BR RAM br 0300 0000000001 OR READ 0000000011 R1 1211000005 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO ophalen Besturingsorgaan GBE BT 0003 GAR 0302 1221100005 BR RAM br 0300 0000000001 OR 0000000011 R1 1221100005 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO analyseren Besturingsorgaan GBE BT 0003 GAR 0302 1221100005 BR RAM br 0300 0000000005 OR 0000000011 R1 1221100005 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO uitvoeren Besturingsorgaan GBE BT 0003 GAR 0302 1221100005 BR RAM br 0300 0000000005 OR 0000000011 R1 1221100005 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000000 CVO uitvoeren Besturingsorgaan GBE BT 0003 GAR 0305 WRITE 1221100005 BR RAM br 0300 0000000005 OR 0000000011 R1 0000000011 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000011 CVO uitvoeren Besturingsorgaan GBE BT 0003 GAR 0305 1221100005 BR RAM br 0300 0000000005 OR 0000000011 R1 0000000011 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000011 CVO ophalen Besturingsorgaan GBE BT 0003 GAR 0305 1221100005 BR RAM br 0300 0000000005 OR 0000000011 R1 0000000011 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000011 CVO ophalen Besturingsorgaan GBE BT 0003 GAR 0303 READ 1221100005 BR RAM br 0300 0000000005 OR 0000000011 R1 0000000011 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000011 CVO ophalen Besturingsorgaan GBE BT 0003 GAR 0303 1221100005 BR RAM br 0300 0000000005 OR READ 0000000011 R1 9999999999 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000011 CVO ophalen Besturingsorgaan GBE BT 0004 GAR 0303 9999999999 BR RAM br 0300 0000000005 OR 0000000011 R1 9999999999 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000011 CVO analyseren Besturingsorgaan GBE BT 0004 GAR 0303 9999999999 BR RAM br 0300 9999999999 OR 0000000011 R1 9999999999 GBR
Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STP A: 10 B: RESGR 1 0300 0302 0303 0304 0305 0301 1131100004 1221100005 0000000010 9999999999 2111100001 0000000011 CVO uitvoeren Besturingsorgaan GBE BT 0004 GAR 0303 9999999999 BR RAM br 0300 9999999999 OR 0000000011 R1 9999999999 GBR
Dynamische Relocatie Dynamische Relocatie Indexatie Inhoud Basisregister = constant Adresvertaling transparant Indexatie Inhoud Indexregister constant Adresberekening zichtbaar in instructie
Programma lijkt geladen vanaf 0000 Dynamische Relocatie Statische Relocatie Geladen vanaf 0300 Dynamische Relocatie Geladen vanaf 0300 0000 0002 0001 1121000000 9999999999 7299999999 MAIN: HIA.a R0,MAIN DRU STP EINDPR 0300 0302 0301 1121000300 9999999999 7299999999 0300 0302 0301 1121000000 9999999999 7299999999 Programma lijkt geladen vanaf 0000 300 Uitvoer Uitvoer
Dynamische Relocatie Geheugenbeheer-eenheid en de programmeur Machine-instructies Invullen van basisregister In- en uitschakelen van GBE HIB = Haal In Basisregister HIB 1234 | br 1234 SGI = Spring en schakel GBE In SGI 1234 | GBE in; BT 1234 SGU = Spring en schakel GBE Uit SGU 1234 | GBE uit; BT 1234
Dynamische Relocatie Gevolgen voor vertaler Gevolgen voor lader Programma geladen vanaf 0000 Geen relocatietabel Gevolgen voor lader ± Absolute Lader Invullen basisregister GBE inschakelen
Dynamische Relocatie Laadadres is bepaald Algoritme Lengte inlezen Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen (begin bij laadadres) Start uitvoering | Lader (± Absolute Lader) | Aantal R2 | Adres R1 | Laadadres R3 (bepaald!) LEZ | Lengte HIA R2,R0 HIA R1,R3 LUS: VGL.w R2,0 VSP KLG,GBE LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS | br laadadres, GBE in GBE: Laad basisregister Schakel GBE in HIB 0(R3) SGI 0
Cursustekst Hoofdstuk 3: pag. 45 pag. 62