SOCS

Post on 01-Jan-2016

28 views 0 download

description

SOCS. Hoofdstuk 3 Basisprogrammatuur. Inhoud. De Vertaler De Voorvertaler De Lader De absolute lader De relocerende lader Dynamische relocatie De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer. Lader. RAM. 1131000005 7299999999 2131000006 7299999999 - PowerPoint PPT Presentation

Transcript of SOCS

1

SOCS

Hoofdstuk 3

Basisprogrammatuur

2

Inhoud

De Vertaler De Voorvertaler De Lader

De absolute lader De relocerende lader Dynamische relocatie

De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer

3

Lader

LaderLader

RAM

Uitvoerbaar programma(machinetaal)

1131000005

729999999921310000067299999999999999999900000100000000020000

1131000005

729999999921310000067299999999999999999900000100000000020000

4

Lader

RAM

1131000005

729999999921310000067299999999999999999900000100000000020000

1131000005

729999999921310000067299999999999999999900000100000000020000

LaderLader

5

Verantwoording

Lader nodig? Vertaler: rol van lader?

Vertalen Uitvoeren Telkens opnieuw! Tijd!

| Vertaler | > | Lader | Minder geheugen beschikbaar

RAM

1131000005729999999921310000067299999999999999999900000100000000020000

VertaleVertalerr

HIA R0,ADRUOPT R0,BDRUSTP

A: 10000 B: 20000

6

Verantwoording

RAM

VertaleVertalerr

HIA R0,ADRUOPT R0,BDRUSTP

A: 10000 B: 20000

1131000005729999999921310000067299999999999999999900000100000000020000

Schijf

7

Verantwoording

RAM

1131000005729999999921310000067299999999999999999900000100000000020000

LaderLader

1131000005729999999921310000067299999999999999999900000100000000020000

8

Lader

Deel van het besturingssysteem Zie ook opstarten van een computer

Verschillende Lader-algoritmes Absolute Lader Relocerende Lader

Extra Apparatuur Dynamische adresvertaling

9

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

00000001457299999999……symb.tabel…

Lengte aanduidingLengte aanduiding

145 bevelen/constanten145 bevelen/constanten

10

Absolute Lader

Algoritme: Lengte inlezen Opeenvolgende getallen

inlezen in opeenvolgende geheugenplaatsen wegbergen

Start uitvoering

00000000

00020002

00030003

00040004

00050005

00001001

7199999999

0000000000

00000000000000000000

1221000010

0000000000

adresadres

int lengte, *adres;

main()

{

lengte = getint();

adres = 0;

while (lengte > 0)

{

*adres++ = getint();

lengte--;

}

/* start uitvoering op adres 0 */

}adres = 0;goto *adres;

11

Absolute Lader

int lengte, *adres;main() {

lengte = getint();adres = 0;while (lengte > 0){

*adres++ = getint();lengte--;

}/* start uitvoering op adres 0 */

}

LEZ | lengteHIA R2,R0

| Absolute Lader| Lengte R2| Adres R1

12

Absolute Lader

int lengte, *adres;main() {

lengte = getint();adres = 0;while (lengte > 0){

*adres++ = getint();lengte--;

}/* start uitvoering op adres 0 */

}

| Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0

13

Absolute Lader

int lengte, *adres;main() {

lengte = getint();adres = 0;while (lengte > 0){

*adres++ = getint();lengte--;

}/* start uitvoering op adres 0 */

}

| Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0

LUS: VGL.w R2,0 VSP KLG,ewh

14

Absolute Lader

int lengte, *adres;main() {

lengte = getint();adres = 0;while (lengte > 0){

*adres++ = getint();lengte--;

}/* start uitvoering op adres 0 */

}

| Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0LUS: VGL.w R2,0 VSP KLG,ewh

LEZ | Instr.BIG R0,0(R1+)

15

Absolute Lader

int lengte, *adres;main() {

lengte = getint();adres = 0;while (lengte > 0){

*adres++ = getint();lengte--;

}/* start uitvoering op adres 0 */

}

| Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0LUS: VGL.w R2,0 VSP KLG,ewh LEZ | Instr. BIG R0,0(R1+)

AFT.w R2,1

16

Absolute Lader

int lengte, *adres;main() {

lengte = getint();adres = 0;while (lengte > 0){

*adres++ = getint();lengte--;

}/* start uitvoering op adres 0 */

}

| Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0LUS: VGL.w R2,0 VSP KLG,ewh LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1

SPR LUS

17

Absolute Lader

int lengte, *adres;main() {

lengte = getint();adres = 0;while (lengte > 0){

*adres++ = getint();lengte--;

}/* start uitvoering op adres 0 */

}

| Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0LUS: VGL.w R2,0 VSP KLG,ewh LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS

0 | Start

18

Absolute Lader

int lengte, *adres;main() {

lengte = getint();adres = 0;while (lengte > 0){

*adres++ = getint();lengte--;

}/* start uitvoering op adres 0 */

}

| Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR

19

Absolute Lader

Simulator? Truukjes

Zelf lengte aanduiding toevoegen

Invoer uit bestand -invoer bestandsnaam

| Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR

20

Absolute Lader

Simulator? | Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR

00000000

00020002

00030003

00040004

00050005

00001001

7199999999

1111100000

32212000003311200000

1122200000

7199999999

00060006

00080008

00090009

00100010

00110011

00007007

1224010000

3121900003

42342423421233456788

2211200001

3453453533

1224010000

3121900003

7299999999

2211200001

21

Absolute Lader

Simulator? Truukjes

Zelf lengte aanduiding toevoegen

Invoer uit bestand -invoer bestandsnaam

Lader vanaf 9000?

| Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR

22

Absolute Lader

Simulator? Truukjes

Zelf lengte aanduiding toevoegen

Invoer uit bestand -invoer bestandsnaam

Lader vanaf 9000!

| Absolute lader LEZ | Lengte HIA R2,R0 HIA.a R1,0LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR

SPR LADER RESGR 8999LADER:

23

00000000

00020002

00030003

00040004

00050005

00001001

3121909000

0000000000

00000000000000000000

0000000000

0000000000

90009000

90029002

90039003

90049004

90059005

90019001

7199999999

1111100000

32210000003311200000

1122200000

7199999999

90069006

90089008

99007007

1224010000

31219090032211200001

Absolute Lader

| Absolute lader SPR LADER RESGR 8999LADER: LEZ | Lengte HIA R2,R0 HIA.a R1,0 LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR

1224010000

3121900003

7299999999

2211200001

24

Eenvoudig besturingssysteem

≠ programma’s 1 na 1 inladen en uitvoeren

Werkwijze: In elk programma:

STP SPR 9000 Programma’s vertalen In elk vertaald progr:

“Lengte” inlassen Symbooltabel weglaten

Alle programma’s na elkaar in 1 bestand

lengteA

CodeA

lengteB

CodeB

lengteC

CodeC

RAM

CodeA

Lader

CodeB

VSP KLG,0

CodeC

SPR 9000SPR 9000

25

Absolute Lader

Verfijning Programma NIET ALTIJD vanaf adres 0000 geladen

Meerdere programma’s in het geheugen!

Probleem Adressen kloppen niet

Vertaler symbooltabel (PT = 0)

26

Absolute Lader HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00000000

00020002

00030003

00040004

00050005

00001001

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000 A B

00330000

03020302

03030303

03040304

03050305

00301301

11311003040304

12211003050305

0000000010

9999999999

2111100001

0000000000 A B

00110000

01020102

01030103

01040104

01050105

00101101

11311001040104

12211001050105

00000000109999999999

2111100001

0000000000

A B

27

Absolute Lader

Lader kan programma niet wijzigen Oplossing:

Vertaler moet correcte adressen genereren Programmeur Vertaler: “Te laden vanaf XXX” Vertaler-directief

LAADGR laadadresLAADGR laadadres Vertaler aanpassen:

Stap 1: PT Laadadres (i.p.v. 0)

Vertaler Lader: “Te laden vanaf XXX” Stap 2: Lengte en Laadadres in uitvoerbaar programma

Next

28

Aanpassing Vertaler

Stap 1Lijnteller (LT = 1)Programmateller (PT = 0)Symbooltabel (ST = )

Lijn per lijn inlezen:

Commentaarlijn: doe niets

? NAAM:NAAM: (NAAM, PT) in ST

Instructie? PT PT + 1

Constante(n)/RESGR n? PT PT + n

Fout? *** fout *** lijn LT: …

LT LT + 1

LAADGR adres? Laadadres = adres; PT = adres

Laadadres = 0

29

Aanpassing Vertaler

Stap 1Lijnteller (LT = 1)Programmateller (PT = 0)Symbooltabel (ST = )

Lijn per lijn inlezen:

Commentaarlijn: doe niets

? NAAM:NAAM: (NAAM, PT) in ST

Instructie? PT PT + 1

Constante(n)/RESGR n? PT PT + n

Fout? *** fout *** lijn LT: …

LT LT + 1

Stap 2Lijnteller (LT = 1)Symbooltabel (ingevuld in stap 1)

Lijn per lijn inlezen: Commentaarlijn:

doe niets Instructie?

genereer code Constante(n)

genereer constante(n)

RESGR n? genereer n 0-

constanten Fout?

*** fout *** lijn LT: … LT LT + 1

Schrijf lengte (= PT – laadadres) en Laadadres

LAADGR adres? Laadadres = adres; PT = adres

Laadadres = 0

30

Absolute Lader

LAADGR 300LAADGR 300 HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

11311003040304

12211003050305

00000000109999999999

2111100001

0000000000

0000000006000600000003000300

#symbolen A 03040304 B 03050305

Lengte Lengte Laadadres Laadadres

HoofdingHoofding

Programma-Programma-codecode

Symbool-Symbool-tabeltabel

Bronprogramma

Uitvoerbaar programma

31

Absolute Lader LAADGR 300LAADGR 300 HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

LAADGR 100LAADGR 100 HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

11311000040004

12211000050005

2111100001

00000000060006

00000000000000

11311001040104

12211001050105

2111100001

00000000060006

00000001000100

11311003040304

12211003050305

2111100001

00000000060006

00000003000300

VertaleVertalerr

VertaleVertalerr

VertaleVertalerr

32

Absolute Lader00000000

00020002

00030003

00040004

00050005

00001001

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000 A B

00330000

03020302

03030303

03040304

03050305

00301301

11311003040304

12211003050305

0000000010

9999999999

2111100001

0000000000 A B

00110000

01020102

01030103

01040104

01050105

00101101

11311001040104

12211001050105

00000000109999999999

2111100001

0000000000

A B

11311000040004

12211000050005

2111100001

00000000060006

00000000000000

11311001040104

12211001050105

2111100001

00000000060006

00000001000100

11311003040304

12211003050305

2111100001

00000000060006

00000003000300

LadeLaderr

33

Absolute Lader

Algoritme Lengte inlezen

Opeenvolgende getallen inlezen opeenvolgende geheugenplaatsen

Start uitvoering

int lengte, *adres;main() {

lengte = getint();

adres = 0;while (lengte > 0){

*adres++ = getint();lengte--;

}/* start uitvoering op adres 0 */

}

Laadadres inlezen

(begin bij Laadadres)

Sprong Laadadres

laadadr = (int *) getint();adres = laadadr;

vanaf laadadr */

, *laadadr;

goto *laadadr;

34

Absolute Lader

int lengte, adres, instr, *laadadr;main() {

lengte = getint();laadadr = (int *) getint();adres = laadadr;while (lengte > 0){

*adres++ = getint();lengte--;

} /* start uitvoering vanaf laadadr */}

| Absolute Lader| Lengte R2| Adres R1 LEZ | Lengte HIA R2,R0 HIA.a R1,0 LUS: VGL.w R2,0 VSP KLG,0 | Start LEZ | Instr BIG R0,0(R1+) AFT.w R2,1 SPR LUS EINDPR

LEZ | LaadadresHIA R3,R0

| Laadadres R3

(R3)

HIA R1,R3

35

Relocerende Lader

Nadeel absolute lader: Programmeur moet vóór vertaling

laadadres kennen

Vertaler Lader: “Hoe adressen aanpassen” Relocatietabel

relatief adresrelatief adres bewerkingbewerking

36

Vertaler Relocerende Lader

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

Lengte Lengte Laadadres Laadadres

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

0000000006000600000000000000

#symbolen A 00040004 B 00050005 #relocatie 0000 +#LAADADRES#+#LAADADRES#

0002 +#LAADADRES#+#LAADADRES#

9999999999999999999900000000

00020002

00030003

00040004

00050005

00001001

37

Vertaler Relocerende Lader

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

Vertaler (1ste stap):

Symb.Symb.AdresAdres

Abs.Abs.AdresAdres

A 4

B 5

38

Vertaler Relocerende Lader

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

0 PPTT

1 LLTT

Symb.Symb.AdresAdres

Abs.Abs.AdresAdres

A 4

B 5

Vertaler (2de stap):111113131110000040004

0000 +#LAADADRES#0000 +#LAADADRES#

39

Vertaler Relocerende Lader

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

1 PPTT

2 LLTT

Symb.Symb.AdresAdres

Abs.Abs.AdresAdres

A 4

B 5

211113131110000040004

0000 +#LAADADRES#0000 +#LAADADRES#

21211111110000010001

0001 +#LAADADRES#0001 +#LAADADRES#0001 -#LAADADRES#0001 -#LAADADRES#

Vertaler (2de stap):

40

Vertaler Relocerende Lader

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

2 PPTT

3 LLTT

Symb.Symb.AdresAdres

Abs.Abs.AdresAdres

A 4

B 5

311113131110000040004

0000 +#LAADADRES#0000 +#LAADADRES#

21211111110000010001

0001 +#LAADADRES#0001 +#LAADADRES#0001 -#LAADADRES#0001 -#LAADADRES#

12122121110000050005

0002 +#LAADADRES#0002 +#LAADADRES#

Vertaler (2de stap):

41

Vertaler Relocerende Lader

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

3 PPTT

4 LLTT

Symb.Symb.AdresAdres

Abs.Abs.AdresAdres

A 4

B 5

411113131110000040004

0000 +#LAADADRES#0000 +#LAADADRES#

21211111110000010001

0001 +#LAADADRES#0001 +#LAADADRES#0001 -#LAADADRES#0001 -#LAADADRES#

12122121110000050005

0002 +#LAADADRES#0002 +#LAADADRES#

99999999999999999999

Vertaler (2de stap):

42

Vertaler Relocerende Lader

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

4 PPTT

5 LLTT

Symb.Symb.AdresAdres

Abs.Abs.AdresAdres

A 4

B 5

511113131110000040004

0000 +#LAADADRES#0000 +#LAADADRES#

21211111110000010001

0001 +#LAADADRES#0001 +#LAADADRES#0001 -#LAADADRES#0001 -#LAADADRES#

12122121110000050005

0002 +#LAADADRES#0002 +#LAADADRES#

9999999999999999999900000000100000000010

Vertaler (2de stap):

43

Vertaler Relocerende Lader

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

5 PPTT

6 LLTT

Symb.Symb.AdresAdres

Abs.Abs.AdresAdres

A 4

B 5

11113131110000040004

0000 +#LAADADRES#0000 +#LAADADRES#

6

21211111110000010001

0001 +#LAADADRES#0001 +#LAADADRES#0001 -#LAADADRES#0001 -#LAADADRES#

12122121110000050005

0002 +#LAADADRES#0002 +#LAADADRES#

999999999999999999990000000010000000001000000000000000000000

Vertaler (2de stap):

44

Vertaler Relocerende Lader

HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

6 PPTT

6 LLTT

Symb.Symb.AdresAdres

Abs.Abs.AdresAdres

A 4

B 5

11113131110000040004

0000 +#LAADADRES#0000 +#LAADADRES#

21211111110000010001

0001 +#LAADADRES#0001 +#LAADADRES#0001 -#LAADADRES#0001 -#LAADADRES#

12122121110000050005

0002 +#LAADADRES#0002 +#LAADADRES#

999999999999999999990000000010000000001000000000000000000000

Vertaler (2de stap):

45

Vertaler Relocerende Lader

6 PPTT

Symb.Symb.AdresAdres

Abs.Abs.AdresAdres

A 4

B 5

11113131110000040004

0000 +#LAADADRES#0000 +#LAADADRES#

21211111110000010001

0001 +#LAADADRES#0001 +#LAADADRES#0001 -#LAADADRES#0001 -#LAADADRES#

12122121110000050005

0002 +#LAADADRES#0002 +#LAADADRES#

999999999999999999990000000010000000001000000000000000000000

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

0000000006000699999999999999999999

#symbolen A 00040004 B 00050005 #relocatie 0000 +#LAADADRES#+#LAADADRES#

0002 +#LAADADRES#+#LAADADRES#

46

Relocerende Lader

Twee stappen: Stap 1:

Uitvoerbaar programma letterlijk geheugen Stap 2: Relocatie-stap:

Adressen aanpassen

47

Relocerende Lader

11311000040004

12211000050005

0000000010

9999999999

2111100001

0000000000

00000000060006

99999999999999999999

#symbolen

A 00040004

B 00050005

#relocatie

0000 +#LAADADRES#+#LAADADRES#

0002 +#LAADADRES#+#LAADADRES#

00330000

03020302

03030303

03040304

03050305

00301301

1112323423

5223241231

4563453242

1231231231

0000000000

9231231231

Stap 1

11311000040004

12211000050005

0000000010

9999999999

2111100001

0000000000

Laadadres = 0300

48

Relocerende Lader

11311000040004

12211000050005

0000000010

9999999999

2111100001

0000000000

00000000060006

99999999999999999999

#symbolen

A 00040004

B 00050005

#relocatie

0000 +#LAADADRES#+#LAADADRES#

0002 +#LAADADRES#+#LAADADRES#

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

0000000010

9999999999

2111100001

0000000000

Stap 2Laadadres = 0300

49

Relocerende Lader

11311000040004

12211000050005

0000000010

9999999999

2111100001

0000000000

00000000060006

99999999999999999999

#symbolen

A 00040004

B 00050005

#relocatie

0000 +#LAADADRES#+#LAADADRES#

0002 +#LAADADRES#+#LAADADRES#

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

0000000010

9999999999

2111100001

0000000000

Stap 2Laadadres = 0300

0000+0000+03000300 = 0300 = 0300

11311003040304

1131100004 + 1131100004 + 03000300 = 1131100304 = 1131100304

50

Relocerende Lader

11311000040004

12211000050005

0000000010

9999999999

2111100001

0000000000

00000000060006

99999999999999999999

#symbolen

A 00040004

B 00050005

#relocatie

0000 +#LAADADRES#+#LAADADRES#

0002 +#LAADADRES#+#LAADADRES#

00330000

03020302

03030303

03040304

03050305

00301301

11311003040304

12211000050005

0000000010

9999999999

2111100001

0000000000

Stap 2Laadadres = 0300

0002+0002+03000300 = 0302 = 0302

12211003050305

1221100005 + 1221100005 + 03000300 = 1221100305 = 1221100305

51

Relocerende Lader

00330000

03020302

03030303

03040304

03050305

00301301

11311003040304

12211003050305

0000000010

9999999999

2111100001

0000000000

LAADGR 300LAADGR 300 HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

11311003040304

12211003050305

2111100001

00000000060006

00000003000300

VertaleVertalerr

52

Relocerende Lader

Voordelen: 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

53

Dynamische Relocatie

Hardware aanpassen: Geheugenbeheereenheid (GBE)

Memory Management Unit (MMU)

Dynamische Relocatie: Adressen aangepast TIJDENS uitvoering

Vergelijk: Indexatie: adres tijdens uitvoering berekend Dyn. Relocatie: alle adressen herberekend

54

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00000000

9999999999BRBR

0000000000OROR

1234567890R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 1234

1234567890GBRGBR

ophalen

55

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00000000

9999999999BRBR

0000000000OROR

1234567890R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0300

1234567890GBRGBR

READ

ophalen

56

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00000000

9999999999BRBR

0000000000OROR

1234567890R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0300

READ

1131100004GBRGBR

ophalen

57

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00010001

1131100004BRBR

0000000000OROR

1234567890R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0300

1131100004GBRGBR

ophalen

58

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00010001

1131100004BRBR

0000000004OROR

1234567890R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0300

1131100004GBRGBR

analyseren

59

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00010001

1131100004BRBR

0000000004OROR

1234567890R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0304READ

1131100004GBRGBR

analyseren

60

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00010001

1131100004BRBR

0000000004OROR

1234567890R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0304

READ

analyseren

0000000010GBRGBR

61

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00010001

1131100004BRBR

0000000010OROR

1234567890R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0304

0000000010GBRGBR

analyseren

62

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00010001

1131100004BRBR

0000000010OROR

1234567890R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0304

0000000010GBRGBR

uitvoeren

63

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00010001

1131100004BRBR

0000000010OROR

0000000010R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0304

0000000010GBRGBR

uitvoeren

64

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00010001

1131100004BRBR

0000000010OROR

0000000010R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0304

0000000010GBRGBR

ophalen

65

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00010001

1131100004BRBR

0000000010OROR

0000000010R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0301READ

0000000010GBRGBR

ophalen

66

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00010001

1131100004BRBR

0000000010OROR

0000000010R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0301

READ

2111100001GBRGBR

ophalen

67

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00020002

2111100001BRBR

0000000010OROR

0000000010R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0301

2111100001GBRGBR

ophalen

68

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00020002

2111100001BRBR

0000000001OROR

0000000010R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0301

2111100001GBRGBR

analyseren

69

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00020002

2111100001BRBR

0000000001OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0301

2111100001GBRGBR

uitvoeren

70

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00020002

2111100001BRBR

0000000001OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0301

2111100001GBRGBR

ophalen

71

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00020002

2111100001BRBR

0000000001OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0302READ

2111100001GBRGBR

ophalen

72

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00020002

2111100001BRBR

0000000001OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0302

READ

1211000005GBRGBR

ophalen

73

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00030003

1221100005BRBR

0000000001OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0302

1221100005GBRGBR

ophalen

74

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00030003

1221100005BRBR

0000000005OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0302

1221100005GBRGBR

analyseren

75

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00030003

1221100005BRBR

0000000005OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0302

1221100005GBRGBR

uitvoeren

76

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000000

BTBT 00030003

1221100005BRBR

0000000005OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0305WRITE

0000000011GBRGBR

uitvoeren

77

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000011

BTBT 00030003

1221100005BRBR

0000000005OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0305

0000000011GBRGBR

uitvoeren

78

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000011

BTBT 00030003

1221100005BRBR

0000000005OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0305

0000000011GBRGBR

ophalen

79

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000011

BTBT 00030003

1221100005BRBR

0000000005OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0303READ

0000000011GBRGBR

ophalen

80

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000011

BTBT 00030003

1221100005BRBR

0000000005OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0303

READ

9999999999GBRGBR

ophalen

81

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000011

BTBT 00040004

9999999999BRBR

0000000005OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0303

9999999999GBRGBR

ophalen

82

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000011

BTBT 00040004

9999999999BRBR

9999999999OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0303

9999999999GBRGBR

analyseren

83

CVO

Besturingsorgaan

Dynamische Relocatie HIA R1,A OPT.w R1,B-A BIG R1,B STPA: 10B: RESGR 1

00330000

03020302

03030303

03040304

03050305

00301301

11311000040004

12211000050005

00000000109999999999

2111100001

0000000011

BTBT 00040004

9999999999BRBR

9999999999OROR

0000000011R1R1

GBE

brbr 03000300 RAMRAM

GARGAR 0303

9999999999GBRGBR

uitvoeren

84

Dynamische Relocatie

Dynamische Relocatie Inhoud Basisregister

= constant Adresvertaling

transparant

Indexatie Inhoud Indexregister

constant Adresberekening

zichtbaar in instructie

85

Dynamische Relocatie

Statische Relocatie Geladen vanaf 0300

Dynamische Relocatie Geladen vanaf 0300

MAIN: HIA.a R0,MAIN DRU STP EINDPR

00330000

03020302

00301301

11210003000300

99999999997299999999

00330000

03020302

00301301

11210000000000

99999999997299999999

300Uitvoer

0Uitvoer

00000000

00020002

00001001

11210000000000

9999999999

7299999999

Programma Programma lijkt geladen lijkt geladen vanaf 0000vanaf 0000

86

Dynamische Relocatie

Geheugenbeheer-eenheid en de programmeur Machine-instructies

Invullen van basisregister In- en uitschakelen van GBE

HIHIBB = Haal In Basisregister HIHIBB 12341234 | br 1234

SGISGI = Spring en schakel GBE In SGISGI 12341234 | GBE in; BT 1234

SGUSGU = Spring en schakel GBE Uit SGU 1234SGU 1234 | GBE uit; BT 1234

87

Dynamische Relocatie

Gevolgen voor vertaler Programma geladen

vanaf 0000 Geen relocatietabel

Gevolgen voor lader ± Absolute Lader Invullen basisregister GBE inschakelen

Andere programma’s (binder)

88

Dynamische Relocatie

Laadadres is bepaald Algoritme

Lengte inlezen Opeenvolgende getallen

inlezen opeenvolgende geheugenplaatsen (begin bij laadadres)

Start uitvoering

| Lader (± Absolute Lader)| Lengte R2| Adres R1 | Laadadres R3 (bepaald!) LEZ | Lengte HIA R2,R0 HIA R1,R3LUS: VGL.w R2,0 VSP KLG,GBE LEZ | Instr. BIG R0,0(R1+) AFT.w R2,1 SPR LUS| br laadadres, GBE inGBE: HIB 0(R3) SGI 0

Laad basisregister Schakel GBE in

89

Cursustekst

Hoofdstuk 3: pag. 45 pag. 62