SOCS

62
1 SOCS Hoofdstuk 1 Computerarchitect uur

description

SOCS. Hoofdstuk 1 Computerarchitectuur. C. Overzicht. Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s. #define N 20 #define DEBUG #define somkwad(x,y) x*x+y*y int a[N], i, j, k; main() { #ifdef DEBUG printint (N); #endif ... #if N > 10 - PowerPoint PPT Presentation

Transcript of SOCS

Page 1: SOCS

1

SOCS

Hoofdstuk 1

Computerarchitectuur

Page 2: SOCS

2

Overzicht

Eenvoudig C Arrays Functies Records Dynamische gegevenstructuren Macro’s

CC

Page 3: SOCS

3

Macro’s#define N 20#define DEBUG#define somkwad(x,y) x*x+y*yint a[N], i, j, k;main(){#ifdef DEBUG

printint (N);#endif

...#if N > 10

i = somkwad(j,a[10]);#else

i = somkwad(a[k],a[j]);#endif

...}

CC

Naam Definitie

Directieven voor Directieven voor de voorvertalerde voorvertaler

Voorvertaler-directieven Definitie van constanten Verkorte notatie van

codefragmenten Voorwaardelijke code

Page 4: SOCS

4

Macro’s#define N 20#define DEBUG#define somkwad(x,y) x*x+y*yint a[N], i, j, k;main(){#ifdef DEBUG

printint (N);#endif

...#if N > 10

i = somkwad(j,a[10]);#else

i = somkwad(a[k],a[j]);#endif

...}

int a[20], i, j, k;main(){

printint (20);

...

i = j*j + a[10]*a[10];

...}

CC

Page 5: SOCS

5

Macro’s#define N 10

#define somkwad(x,y) x*x+y*yint a[N], i, j, k;main(){#ifdef DEBUG

printint (N);#endif

...#if N > 10

i = somkwad(j,a[10]);#else

i = somkwad(a[k],a[j]);#endif

...}

int a[10], i, j, k;main(){

...

i = a[k]*a[k] + a[j]*a[j];

...}

CC

Page 6: SOCS

6

Macro’s in DRAMA

Basisprincipe Eenvoudige DRAMA-macro’s Lokale symbolische adressen Macro-parameters en variabelen Voorwaardelijke macro-opbouw Macro-directieven Genestelde en recursieve macro-oproepen Globale macro-variabelen

Page 7: SOCS

7

Basisprincipe

LPT: 1 bronbevel 1 doelbevel (machinetaal) Uitzondering: macro-oproep Doel:

Stukjes code die verschillende keren voorkomen Slechts 1 keer schrijven (en naam geven) Op verschillende plaatsen inlassen

Page 8: SOCS

8

Basisprincipe

Voorbeeld: y = | a | + | -3 * b * c | + | 4 + e |;

Code om R0 | R0 | ( naam ABSW) Programma: HIA R0,aHIA R0,a

ABSWABSWHIA R1,R0HIA R1,R0HIA.w R0,-3HIA.w R0,-3VER R0,bVER R0,bVER R0,cVER R0,cABSWABSWOPT R1,R0OPT R1,R0HIA.w R0,4HIA.w R0,4OPT R0,eOPT R0,eABSWABSWOPT R1,R0OPT R1,R0BIG R1,yBIG R1,y

Code inlassenCode inlassenom R0 om R0 |R0| |R0|

Page 9: SOCS

9

Macro’s in DRAMA

Basisprincipe Eenvoudige DRAMA-macro’s Lokale symbolische adressen Macro-parameters en variabelen Voorwaardelijke macro-opbouw Macro-directieven Genestelde en recursieve macro-oproepen Globale macro-variabelen

Page 10: SOCS

10

Eenvoudige DRAMA-macro’s

R1 (R1)6

| Macro ZesdeMacht| Macro ZesdeMacht| Resultaat: R1 | Resultaat: R1 (R1) (R1)66

| Wijzigt R1 (resultaat) en R2| Wijzigt R1 (resultaat) en R2MACROMACRO

ZesdeMachtZesdeMacht … … DRAMA code …DRAMA code …

MCREINDEMCREINDE

Directief

Directief

Hoofding• Naam• …

Lichaam/Romp

Interface

Page 11: SOCS

11

Eenvoudige DRAMA-macro’s

R1 (R1)6

| Macro ZesdeMacht| Macro ZesdeMacht| Resultaat: R1 | Resultaat: R1 (R1) (R1)66

| Wijzigt R1 (resultaat) en R2| Wijzigt R1 (resultaat) en R2MACROMACRO

ZesdeMachtZesdeMacht

MCREINDEMCREINDE

VER R1,R1VER R1,R1

VER R1,R2VER R1,R2VER R1,R2VER R1,R2

HIA R2,R1HIA R2,R1

Page 12: SOCS

12

Eenvoudige DRAMA-macro’s

Gebruik van de macro macro-oproep

| Macro ZesdeMacht| Macro ZesdeMacht| Resultaat: R1 | Resultaat: R1 (R1) (R1)66

| Wijzigt R1 en R2| Wijzigt R1 en R2MACROMACRO

ZesdeMachtZesdeMachtVER R1,R1VER R1,R1HIA R2,R1HIA R2,R1VER R1,R2VER R1,R2VER R1,R2VER R1,R2

MCREINDEMCREINDE

| d = (a| d = (a66 * b – c) * b – c)66

HIA R1,aHIA R1,a ……STPSTP

a:a: RESGR 1RESGR 1b:b: RESGR 1RESGR 1c:c: RESGR 1RESGR 1d:d: RESGR 1RESGR 1

Macro-oproepMacro-oproepZesdeMachtZesdeMacht

ZesdeMachtZesdeMacht

VER R1,bVER R1,bAFT R1,cAFT R1,c

BIG R1,dBIG R1,d

Page 13: SOCS

13

Voorvertaler

Voor-Voor-vertalevertale

rr

Bronprogramma(met macro-definities op -oproepen)

Bronprogramma(zonder macro-definities en oproepen)

MACROZesdeMachtVER R1,R1…

MCREINDEHIA R1,aZesdeMachtVER R1,bAFT R1,cZesdeMacht…

HIA R1,aVER R1,R1…VER R1,bAFT R1,cVER R1,R1……

DefinitieDefinitie

OproepOproep

OproepOproep

Page 14: SOCS

14

Voorvertaling

MACROMACROZesdeMachtZesdeMachtVER R1,R1VER R1,R1HIA R2,R1HIA R2,R1VER R1,R2VER R1,R2VER R1,R2VER R1,R2

MCREINDMCREINDHIA R1,aHIA R1,aZesdeMachtZesdeMachtVER R1,bVER R1,bAFT R1,cAFT R1,cZesdeMachtZesdeMachtBIG R1,dBIG R1,d……STPSTP

a:a: RESGR 1RESGR 1……

HIA R1,aHIA R1,aZesdemachtZesdemacht VER R1,bVER R1,bAFT R1,cAFT R1,cZesdemachtZesdemacht

BIG R1,dBIG R1,d……STPSTP

a:a: RESGR 1RESGR 1……

Macro-oproepMacro-expansie

VER R1,R1VER R1,R1HIA R2,R1HIA R2,R1VER R1,R2VER R1,R2VER R1,R2VER R1,R2

VER R1,R1VER R1,R1HIA R2,R1HIA R2,R1VER R1,R2VER R1,R2VER R1,R2VER R1,R2

Page 15: SOCS

15

Opmerkingen

LPT (assembleertaal)+ mogelijkheid macro’s te definieren= macro-assembleertaal

Macro-definitie: textueel voor eerste oproep

Afspraak: Vooraan in programma: alle macro-definities Daarna: Drama-programma (+ macro-oproepen)

Page 16: SOCS

16

Symbolische adressen

Lichaam van macro: Om het even wat Dus ook symbolische adressen

LUS: VGL.w R1,0 Voorbeeld:

Macro voor ABSW R0 | R0 |

Page 17: SOCS

17

Symbolische adressen

R0 | R0 | | y = |a|+|-3*b*c|+|4+e|| y = |a|+|-3*b*c|+|4+e|HIA R0,aHIA R0,aABSWABSWHIA R1,R0HIA R1,R0HIA.w R0,-3HIA.w R0,-3VER R0,bVER R0,bVER R0,cVER R0,cABSWABSWOPT R1,R0OPT R1,R0HIA.w R0,4HIA.w R0,4OPT R0,eOPT R0,eABSWABSWOPT R1,R0OPT R1,R0BIG R1,yBIG R1,y

| Macro ABSW| Macro ABSW| Resultaat: R0 | Resultaat: R0 |R0| |R0|| Wijzigt R0 (resultaat)| Wijzigt R0 (resultaat)MACROMACRO

ABSWABSW

MCREINDEMCREINDE

VGL.w R0,0VGL.w R0,0

VER.w R0,-1VER.w R0,-1einde:einde:

VSP NNEG,eindeVSP NNEG,einde

Page 18: SOCS

18

Voorvertaling

MACROMACROABSWABSW

VGL.w R0,0VGL.w R0,0VSP NNEG,eindeVSP NNEG,eindeVER R0,-1VER R0,-1

einde:einde: MCREINDMCREIND

HIA R0,aHIA R0,aABSWABSWHIA R1,R0HIA R1,R0HIA.w R0,-3HIA.w R0,-3VER R0,bVER R0,bVER R0,cVER R0,cABSWABSWOPT R1,R0OPT R1,R0HIA.w R0,4HIA.w R0,4OPT R0,eOPT R0,eABSWABSWOPT R1,R0OPT R1,R0BIG R1,yBIG R1,y

HIA R0,aHIA R0,aABSWABSW

HIA R1,R0HIA R1,R0HIA.w R0,-3HIA.w R0,-3VER R0,bVER R0,bVER R0,cVER R0,cABSWABSW

OPT R1,R0OPT R1,R0HIA.w R0,4HIA.w R0,4OPT R0,eOPT R0,eABSWABSW

OPT R1,R0OPT R1,R0BIG R1,yBIG R1,y

VGL.w R0,0VGL.w R0,0VSP NNEG,eindeVSP NNEG,eindeVER.w R0,-1VER.w R0,-1

einde:einde:

VGL.w R0,0VGL.w R0,0VSP NNEG,eindeVSP NNEG,eindeVER.w R0,-1VER.w R0,-1

einde:einde:

VGL.w R0,0VGL.w R0,0VSP NNEG,eindeVSP NNEG,eindeVER.w R0,-1VER.w R0,-1

einde:einde:

Page 19: SOCS

19

Macro’s in DRAMA

Basisprincipe Eenvoudige DRAMA-macro’s Lokale symbolische adressen Macro-parameters en variabelen Voorwaardelijke macro-opbouw Macro-directieven Genestelde en recursieve macro-oproepen Globale macro-variabelen

Page 20: SOCS

20

Lokale symbolische adressen

Alleen betekenis BINNEN een macro-definitie Voorvertaler zet om naar

UNIEK symbolisch adres Lokaal symbolisch adres = $etiket UNIEK symbolisch adres =

_1etiket, _2etiket, _3etiket, … bij eerste, tweede, derde macro-oproep

Page 21: SOCS

21

Lokale symbolische adressen

R0 | R0 | | y = |a|+|-3*b*c|+|4+e|| y = |a|+|-3*b*c|+|4+e|HIA R0,aHIA R0,aABSWABSWHIA R1,R0HIA R1,R0HIA.w R0,-3HIA.w R0,-3VER R0,bVER R0,bVER R0,cVER R0,cABSWABSWOPT R1,R0OPT R1,R0HIA.w R0,4HIA.w R0,4OPT R0,eOPT R0,eABSWABSWOPT R1,R0OPT R1,R0BIG R1,yBIG R1,y

| Macro ABSW| Macro ABSW| Resultaat: R0 | Resultaat: R0 |R0| |R0|| Wijzigt R0 (resultaat)| Wijzigt R0 (resultaat)MACROMACRO

ABSWABSW VGL.w R0,0VGL.w R0,0

VSP NNEG,eindeVSP NNEG,einde VER.w R0,-1VER.w R0,-1 einde:einde:MCREINDEMCREINDE$$

$$eindeeinde

Page 22: SOCS

22

Voorvertaling

MACROMACROABSWABSW

VGL.w R0,0VGL.w R0,0VSP NNEG,VSP NNEG,$$eindeeindeVER.w R0,-1VER.w R0,-1

$$einde:einde: MCREINDMCREIND

HIA R0,aHIA R0,aABSWABSWHIA R1,R0HIA R1,R0HIA.w R0,-3HIA.w R0,-3VER R0,bVER R0,bVER R0,cVER R0,cABSWABSWOPT R1,R0OPT R1,R0HIA.w R0,4HIA.w R0,4OPT R0,eOPT R0,eABSWABSWOPT R1,R0OPT R1,R0BIG R1,yBIG R1,y

HIA R0,aHIA R0,aABSWABSW

HIA R1,R0HIA R1,R0HIA.w R0,-3HIA.w R0,-3VER R0,bVER R0,bVER R0,cVER R0,cABSWABSW

OPT R1,R0OPT R1,R0HIA.w R0,4HIA.w R0,4OPT R0,eOPT R0,eABSWABSW

OPT R1,R0OPT R1,R0BIG R1,yBIG R1,y

VGL.w R0,0VGL.w R0,0VSP NNEG,VSP NNEG,_1_1eindeeindeVER.w R0,-1VER.w R0,-1

_1_1einde:einde:

VGL.w R0,0VGL.w R0,0VSP NNEG,VSP NNEG,_2_2eindeeindeVER.w R0,-1VER.w R0,-1

_2_2einde:einde:

VGL.w R0,0VGL.w R0,0VSP NNEG,VSP NNEG,_3_3eindeeindeVER.w R0,-1VER.w R0,-1

_3_3einde:einde:

Page 23: SOCS

23

Macro’s in DRAMA

Basisprincipe Eenvoudige DRAMA-macro’s Lokale symbolische adressen Macro-parameters en variabelen Voorwaardelijke macro-opbouw Macro-directieven Genestelde en recursieve macro-oproepen Globale macro-variabelen

Page 24: SOCS

24

Macro-parameters

Bruikbaarheid van macro beperkt Gegevens beschikbaar in accumulator of

in geheugenregister Parameters

Mogelijkheid om ingelaste code aan noden aan te passen

Voorbeeld ABSW R1 | R1 |R1| ABSW R2 | R2 |R2|

Parameters In hoofding: naam1, naam2, … In lichaam: <naam1>, <naam1>, …

Page 25: SOCS

25

Macro-parameters

Ri | Ri | | y = |a|+|-3*b*c|+|4+e|| y = |a|+|-3*b*c|+|4+e|HIA R0,aHIA R0,aABSW R0ABSW R0HIA.w R1,-3HIA.w R1,-3VER R1,bVER R1,bVER R1,cVER R1,cABSW R1ABSW R1OPT R0,R1OPT R0,R1HIA.w R2,4HIA.w R2,4OPT R2,eOPT R2,eABSW R2ABSW R2OPT R0,R2OPT R0,R2BIG R0,yBIG R0,y

| Macro ABSW Ri| Macro ABSW Ri| Parameter Ri| Parameter Ri| Resultaat: Ri | Resultaat: Ri |Ri| |Ri|| Wijzigt Ri (resultaat)| Wijzigt Ri (resultaat)MACROMACRO

ABSW RiABSW Ri

MCREINDEMCREINDE

VGL.w <Ri>,0VGL.w <Ri>,0

VER.w <Ri>,-1VER.w <Ri>,-1$$einde:einde:

VSP NNEG,VSP NNEG,$$eindeeinde

Parameter

Parameter

Page 26: SOCS

26

Voorvertaling

MACROMACROABSW RiABSW Ri

VGL.w <Ri>,0VGL.w <Ri>,0VSP NNEG,VSP NNEG,$$eindeeindeVER.w <Ri>,-1VER.w <Ri>,-1

$$einde:einde: MCREINDMCREIND

HIA R0,aHIA R0,aABSW R0ABSW R0HIA.w R1,-3HIA.w R1,-3VER R1,bVER R1,bVER R1,cVER R1,cABSW R1ABSW R1OPT R0,R1OPT R0,R1HIA.w R2,4HIA.w R2,4OPT R2,eOPT R2,eABSW R2ABSW R2OPT R0,R2OPT R0,R2BIG R0,yBIG R0,y

HIA R0,aHIA R0,aABSW R0ABSW R0

HIA.w R1,-3HIA.w R1,-3VER R1,bVER R1,bVER R1,cVER R1,cABSW R1ABSW R1

OPT R0,R1OPT R0,R1HIA.w R2,4HIA.w R2,4OPT R2,eOPT R2,eABSW R2ABSW R2

OPT R0,R2OPT R0,R2BIG R0,yBIG R0,y

VGL.w VGL.w R0R0,0,0VSP NNEG,VSP NNEG,_1_1eindeeindeVER.w VER.w R0R0,-1,-1

_1_1einde:einde:

VGL.w VGL.w R1R1,0,0VSP NNEG,VSP NNEG,_2_2eindeeindeVER.w VER.w R1R1,-1,-1

_2_2einde:einde:

VGL.w VGL.w R2R2,0,0VSP NNEG,VSP NNEG,_3_3eindeeindeVER.w VER.w R2R2,-1,-1

_3_3einde:einde:

Page 27: SOCS

27

Macro-parameters

Ri | Ri | | y = |a|+|-3*b*c|+|4+e|| y = |a|+|-3*b*c|+|4+e|HIA R0,aHIA R0,aABSW 0ABSW 0HIA.w R1,-3HIA.w R1,-3VER R1,bVER R1,bVER R1,cVER R1,cABSW 1ABSW 1OPT R0,R1OPT R0,R1HIA.w R2,4HIA.w R2,4OPT R2,eOPT R2,eABSW 2ABSW 2OPT R0,R2OPT R0,R2BIG R0,yBIG R0,y

| Macro ABSW i| Macro ABSW i| Parameter i| Parameter i| Resultaat: Ri | Resultaat: Ri |Ri| |Ri|| Wijzigt Ri (resultaat)| Wijzigt Ri (resultaat)MACROMACRO

ABSW iABSW i

MCREINDEMCREINDE

VGL.w R<i>,0VGL.w R<i>,0

VER.w R<i>,-1VER.w R<i>,-1$$einde:einde:

VSP NNEG,VSP NNEG,$$eindeeinde

Page 28: SOCS

28

Voorvertaling

MACROMACROABSW iABSW i

VGL.w R<i>,0VGL.w R<i>,0VSP NNEG,VSP NNEG,$$eindeeindeVER.w R<i>,-1VER.w R<i>,-1

$$einde:einde: MCREINDMCREIND

HIA R0,aHIA R0,aABSW 0ABSW 0HIA.w R1,-3HIA.w R1,-3VER R1,bVER R1,bVER R1,cVER R1,cABSW 1ABSW 1OPT R0,R1OPT R0,R1HIA.w R2,4HIA.w R2,4OPT R2,eOPT R2,eABSW 2ABSW 2OPT R0,R2OPT R0,R2BIG R0,yBIG R0,y

HIA R0,aHIA R0,aABSW 0ABSW 0

HIA.w R1,-3HIA.w R1,-3VER R1,bVER R1,bVER R1,cVER R1,cABSW 1ABSW 1

OPT R0,R1OPT R0,R1HIA.w R2,4HIA.w R2,4OPT R2,eOPT R2,eABSW 2ABSW 2

OPT R0,R2OPT R0,R2BIG R0,yBIG R0,y

VGL.w RVGL.w R00,0,0VSP NNEG,VSP NNEG,_1_1eindeeindeVER.w RVER.w R00,-1,-1

_1_1einde:einde:

VGL.w RVGL.w R11,0,0VSP NNEG,VSP NNEG,_2_2eindeeindeVER.w RVER.w R11,-1,-1

_2_2einde:einde:

VGL.w RVGL.w R22,0,0VSP NNEG,VSP NNEG,_3_3eindeeindeVER.w RVER.w R22,-1,-1

_3_3einde:einde:

Page 29: SOCS

29

Macro-parameters

z x*x + y*y

| Macro SomKwad| Macro SomKwad| Parameter z,x,y| Parameter z,x,y| Resultaat: z| Resultaat: zx*x+y*yx*x+y*y| Wijzigt R1 en R2| Wijzigt R1 en R2MACROMACRO

SomKwad z,x,ySomKwad z,x,y

MCREINDEMCREINDE

HIA R1,<x>HIA R1,<x>VER R1,R1VER R1,R1HIA R2,<y>HIA R2,<y>VER R2,R2VER R2,R2OPT R1,R2OPT R1,R2BIG R1,<z>BIG R1,<z>

Page 30: SOCS

30

Macro-parameters

z x*x + y*y SomKwad a,b,cSomKwad a,b,c

SomKwad e,R5,fSomKwad e,R5,f

| Macro SomKwad| Macro SomKwad| Parameter z,x,y| Parameter z,x,y| Resultaat: z| Resultaat: zx*x+y*yx*x+y*y| Wijzigt R1 en R2| Wijzigt R1 en R2MACROMACRO

SomKwad z,x,ySomKwad z,x,y

MCREINDEMCREINDE

HIA R1,<x>HIA R1,<x>VER R1,R1VER R1,R1HIA R2,<y>HIA R2,<y>VER R2,R2VER R2,R2OPT R1,R2OPT R1,R2BIG R1,<z>BIG R1,<z>

HIA R1,bHIA R1,bVER R1,R1VER R1,R1HIA R2,cHIA R2,cVER R2,R2VER R2,R2OPT R1,R2OPT R1,R2BIG R1,aBIG R1,a

HIA R1,R5HIA R1,R5VER R1,R1VER R1,R1HIA R2,fHIA R2,fVER R2,R2VER R2,R2OPT R1,R2OPT R1,R2BIG R1,eBIG R1,e

Page 31: SOCS

31

Macro-parameters

z x*x + y*y SomKwad R5,b,cSomKwad R5,b,c

SomKwad e,10,fSomKwad e,10,f

| Macro SomKwad| Macro SomKwad| Parameter z,x,y| Parameter z,x,y| Resultaat: z| Resultaat: zx*x+y*yx*x+y*y| Wijzigt R1 en R2| Wijzigt R1 en R2MACROMACRO

SomKwad z,x,ySomKwad z,x,y

MCREINDEMCREINDE

HIA R1,<x>HIA R1,<x>VER R1,R1VER R1,R1HIA R2,<y>HIA R2,<y>VER R2,R2VER R2,R2OPT R1,R2OPT R1,R2BIG R1,<z>BIG R1,<z>

HIA R1,bHIA R1,bVER R1,R1VER R1,R1HIA R2,cHIA R2,cVER R2,R2VER R2,R2OPT R1,R2OPT R1,R2BIG R1,R5BIG R1,R5

HIA R1,10HIA R1,10VER R1,R1VER R1,R1HIA R2,fHIA R2,fVER R2,R2VER R2,R2OPT R1,R2OPT R1,R2BIG R1,eBIG R1,e

OngeldigOngeldigDrama-Drama-bevelbevel

NietNietverwachtverwachtresultaat!resultaat!

Page 32: SOCS

32

Macro-parameters

If-then-else constructie

if (x <= y) {if (x <= y) {… … kleiner of gelijk …kleiner of gelijk …

} else {} else {… … groter dan …groter dan …

}}

IfThenElse x,KLG,y,klg,grd,R1IfThenElse x,KLG,y,klg,grd,R1

klg:klg: … | kleiner of gelijk… | kleiner of gelijk

……

SPR endifSPR endif

grd:grd: … | groter dan… | groter dan

……

endif:endif: ……

Page 33: SOCS

33

Macro-parameters

If-then-else constructie IfThenElse x,KLG,y,klg,grd,R1IfThenElse x,KLG,y,klg,grd,R1

klg:klg: … | kleiner of … | kleiner of gelijkgelijk

……

SPR endifSPR endif

grd:grd: … | groter dan… | groter dan

……

endif:endif: ……

| Macro IfThenElse| Macro IfThenElse| Parameters:| Parameters:| a,vw,b,dan,anders,reg| a,vw,b,dan,anders,reg| Resultaat: | Resultaat: | if (a vw b) SPR dan| if (a vw b) SPR dan| else SPR anders| else SPR anders| Wijzigt reg. <reg>| Wijzigt reg. <reg>MACROMACRO IfThenElse a,vw,b,dan,\IfThenElse a,vw,b,dan,\ anders,reg anders,reg

MCREINDEMCREINDE

HIA <reg>,<a>HIA <reg>,<a>VGL <reg>,<b>VGL <reg>,<b>VSP <vw>,<dan>VSP <vw>,<dan>

klg:klg: … | kleiner of gelijk… | kleiner of gelijk……SPR endifSPR endif

grd:grd: … | groter dan… | groter dan……

endif:endif: ……SPR <anders>SPR <anders>

HIA R1,xHIA R1,xVGL R1,yVGL R1,yVSP KLG,klgVSP KLG,klgSPR grdSPR grd

Page 34: SOCS

34

Macro-variabelen Doel

Tijdens de expansie berekening uitvoeren Geen declaratie

Bestaan zodra eerste toekenning MEVA-directief

MEVA variabele,expressie Voorbeeld:

MEVA A,10 MEVA B,<A>-20

Beperkingen: Uitdrukking gehele waarde Uitdrukking: macro-variabelen, -parameters, +, -, *, /, (, ) Lokale variabele! na oproep verdwenen

Page 35: SOCS

35

Macro-variabelen

Ri Ri-1 + Ri + Ri+1 TelOp 4TelOp 4

TelOp 8TelOp 8

TelOp 9TelOp 9

TelOp 0TelOp 0

| Macro TelOp| Macro TelOp| Parameter i (0<i<9)| Parameter i (0<i<9)| Resultaat: R| Resultaat: Rii+=R+=Ri-1i-1+R+Ri+1i+1

MACROMACROTelOp iTelOp i

MCREINDEMCREINDE

MEVA reg,<i>-1MEVA reg,<i>-1OPT R<i>,R<reg>OPT R<i>,R<reg>MEVA reg,<i>+1MEVA reg,<i>+1OPT R<i>,R<reg>OPT R<i>,R<reg>

OPT R4,R3OPT R4,R3OPT R4,R5OPT R4,R5

OPT R8,R7OPT R8,R7OPT R8,R9OPT R8,R9 OngeldigOngeldig

Adres als Adres als R10 niet ge-R10 niet ge-definieerddefinieerd

OPT R9,R8OPT R9,R8OPT R9,R10OPT R9,R10

OPT R0,R-1OPT R0,R-1OPT R0,R1OPT R0,R1

OngeldigOngeldigAdres als Adres als R niet ge-R niet ge-definieerddefinieerd

Page 36: SOCS

36

Macro’s in DRAMA

Basisprincipe Eenvoudige DRAMA-macro’s Lokale symbolische adressen Macro-parameters en variabelen Voorwaardelijke macro-opbouw Macro-directieven Genestelde en recursieve macro-oproepen Globale macro-variabelen

Page 37: SOCS

37

Voorwaardelijke macro-opbouw

Doel: Gelijkaardige maar niet identieke code inlassen

Parameters / Variabelen Verschillend aantal bevelen?

Macro-definitie Voor meest algemene geval Voorwaardelijke macro-opbouw:

Alleen die stukken inlassen die nodig zijn Macro-directieven Voorvertaler!

M… Voorbeelden: MEVA, MVGL, MVSP, MSPR, …

Page 38: SOCS

38

Voorwaardelijk macro-opbouw

Res A1 + … + An (n=1 .. 3) | d | d a + b + c a + b + cSom 3,d,a,b,cSom 3,d,a,b,c

| k | k l + m l + mSom 2,k,l,mSom 2,k,l,m

| x | x y ySom 1,x,ySom 1,x,y

| Macro Som| Macro Som| Resultaat: Res = A| Resultaat: Res = A11+…+A+…+ANN

| Wijzigt R1| Wijzigt R1MACROMACRO

Som N,Res,A1,A2,A3Som N,Res,A1,A2,A3

MCREINDEMCREINDE

HIA R1,<A1>HIA R1,<A1>

OPT R1,<A2>OPT R1,<A2>

HIA R1,aHIA R1,aOPT R1,bOPT R1,bOPT R1,cOPT R1,cBIG R1,dBIG R1,d

HIA R1,lHIA R1,lOPT R1,mOPT R1,mBIG R1,kBIG R1,k

HIA R1,yHIA R1,yBIG R1,xBIG R1,x

MVGL <N>,1MVGL <N>,1MVSP GEL,$bergwegMVSP GEL,$bergweg

MVGL <N>,2MVGL <N>,2MVSP GEL,$bergwegMVSP GEL,$bergwegOPT R1,<A3>OPT R1,<A3>

$bergweg: MNTS$bergweg: MNTSBIG R1,<Res>BIG R1,<Res>

Page 39: SOCS

39

Macro’s in DRAMA

Basisprincipe Eenvoudige DRAMA-macro’s Lokale symbolische adressen Macro-parameters en variabelen Voorwaardelijke macro-opbouw Macro-directieven Genestelde en recursieve macro-oproepen Globale macro-variabelen

Page 40: SOCS

40

Macro-directievenDirectief Betekenis

MACRO Nieuwe macro-definitie

MCREINDE Einde van macro-definitie

MVGL uitdr1,uitdr2 MCC resultaat van vergelijking uitdr1 en uitdr2

MVSP conditie,$etiket Indien MCC aan conditie voldoet, ga verder bij $etiket

MSPR $etiket Ga verder bij lijn met $etiket

MEVA variabele,uitdrukking Variabele uitdrukking

MNTS Loos directief

(om macro-etiket voor te plaatsen)

MFOUT “foutenboodschap” Voorvertaler drukt “foutenboodschap” af en stopt de voorvertaling

Page 41: SOCS

41

Voorwaardelijk macro-opbouw

Res (Getal)Exp (0 <= Exp) | b | b a a33

Macht b,a,3,R1Macht b,a,3,R1

| y | y x x00

Macht y,x,0,R0Macht y,x,0,R0

| k | k m m-1-1

Macht k,m,-1,R3Macht k,m,-1,R3

| Macro Macht| Macro Macht| Resultaat: Res = (Getal)| Resultaat: Res = (Getal)ExpExp

| Wijzigt register Reg| Wijzigt register RegMACROMACRO

Macht Res,Getal,Exp,RegMacht Res,Getal,Exp,Reg

MCREINDEMCREINDE

HIA.w <Reg>,1HIA.w <Reg>,1

VER <Reg>,<Getal>VER <Reg>,<Getal>

HIA.w R1,1HIA.w R1,1VER R1,aVER R1,aVER R1,aVER R1,aVER R1,aVER R1,aBIG R1,bBIG R1,b

HIA.w R0,1HIA.w R0,1BIG R0,yBIG R0,y

$lus: MVGL <Exp>,0$lus: MVGL <Exp>,0MVSP GEL,$bergwegMVSP GEL,$bergweg

MSPR $lusMSPR $lusMEVA Exp,<Exp>-1MEVA Exp,<Exp>-1

$bergweg: MNTS$bergweg: MNTSBIG <Reg>,<Res>BIG <Reg>,<Res>

MVGL <Exp>,0MVGL <Exp>,0MVSP GRG,$lusMVSP GRG,$lusMFOUT “Exp moet >= 0”MFOUT “Exp moet >= 0”

HIA.w R3,1HIA.w R3,1*** fout *** Exp moet >= 0*** fout *** Exp moet >= 0

Page 42: SOCS

42

Macro’s in DRAMA

Basisprincipe Eenvoudige DRAMA-macro’s Lokale symbolische adressen Macro-parameters en variabelen Voorwaardelijke macro-opbouw Macro-directieven Genestelde en recursieve macro-oproepen Globale macro-variabelen

Page 43: SOCS

43

Genestelde en recursieve macro-oproepen

Genestelde macro-oproep Binnen macro-definitie andere macro oproepen

Recursieve macro-oproep Binnen macro-definitie zichzelf terug oproepen Mogelijk mits voorwaardelijk macro-opbouw

Page 44: SOCS

44

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0)

| Macro Som| Macro Som| Res=a| Res=a11+…+a+…+ann (0<n<=4) (0<n<=4)| Wijzigt R1| Wijzigt R1MACROMACRO

Som Res,n,a1,a2,a3,a4Som Res,n,a1,a2,a3,a4

MCREINDEMCREINDE

HIA R1,<a1>HIA R1,<a1>Rsom <n>,<a2>,<a3>,<a4>Rsom <n>,<a2>,<a3>,<a4>BIG R1,<Res>BIG R1,<Res>

MVGL <n>,0MVGL <n>,0MVSP GR,$posMVSP GR,$posMFOUT “n moet > 0”MFOUT “n moet > 0”

| Macro RSom| Macro RSom| R1 += b| R1 += b11+…+b+…+bn-1n-1

MACROMACRORsom n,b1,b2,b3Rsom n,b1,b2,b3

MCREINDEMCREINDE

MEVA n,<n>-1MEVA n,<n>-1MVGL <n>,0MVGL <n>,0MVSP KLG,$eindeMVSP KLG,$eindeOPT R1,<b1>OPT R1,<b1>Rsom <n>,<b2>,<b3>Rsom <n>,<b2>,<b3>

$einde: MNTS$einde: MNTS$pos: MVGL <n>,4$pos: MVGL <n>,4

MVSP KLG,$okMVSP KLG,$okMFOUT “n moet <= 4”MFOUT “n moet <= 4”

$ok:$ok: MNTSMNTS

Page 45: SOCS

45

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0) | x | x a + b + c a + b + cSom x,3,a,b,cSom x,3,a,b,c| Macro Som| Macro Som

| Res=a| Res=a11+…+a+…+ann (0<n<=4) (0<n<=4)| Wijzigt R1| Wijzigt R1MACROMACRO

Som Res,n,a1,a2,a3,a4Som Res,n,a1,a2,a3,a4

MCREINDEMCREINDE

HIA R1,<a1>HIA R1,<a1>Rsom <n>,<a2>,<a3>,<a4>Rsom <n>,<a2>,<a3>,<a4>BIG R1,<Res>BIG R1,<Res>

MVGL <n>,0MVGL <n>,0MVSP GR,$posMVSP GR,$posMFOUT “n moet > 0”MFOUT “n moet > 0”

$pos: MVGL <n>,4$pos: MVGL <n>,4MVSP KLG,$okMVSP KLG,$okMFOUT “n moet <= 4”MFOUT “n moet <= 4”

$ok:$ok: MNTSMNTS

HIA R1,aHIA R1,a

ResRes xxnn 33a1a1 aaa2a2 bba3a3 cca4a4

Page 46: SOCS

46

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0) | x | x a + b + c a + b + cSom x,3,a,b,cSom x,3,a,b,c| Macro Som| Macro Som

| Res=a| Res=a11+…+a+…+ann (0<n<=4) (0<n<=4)| Wijzigt R1| Wijzigt R1MACROMACRO

Som Res,n,a1,a2,a3,a4Som Res,n,a1,a2,a3,a4

MCREINDEMCREINDE

HIA R1,<a1>HIA R1,<a1>Rsom <n>,<a2>,<a3>,<a4>Rsom <n>,<a2>,<a3>,<a4>BIG R1,<Res>BIG R1,<Res>

MVGL <n>,0MVGL <n>,0MVSP GR,$posMVSP GR,$posMFOUT “n moet > 0”MFOUT “n moet > 0”

$pos: MVGL <n>,4$pos: MVGL <n>,4MVSP KLG,$okMVSP KLG,$okMFOUT “n moet <= 4”MFOUT “n moet <= 4”

$ok:$ok: MNTSMNTS

HIA R1,aHIA R1,a

Rsom 3,b,c,Rsom 3,b,c,

ResRes xxnn 33a1a1 aaa2a2 bba3a3 cca4a4

Page 47: SOCS

47

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0) | x | x a + b + c a + b + cSom x,3,a,b,cSom x,3,a,b,c

HIA R1,aHIA R1,a

Rsom 3,b,c,Rsom 3,b,c,

| Macro RSom| Macro RSom| R1 += b| R1 += b11+…+b+…+bn-1n-1

MACROMACRORsom n,b1,b2,b3Rsom n,b1,b2,b3

MCREINDEMCREINDE

MEVA n,<n>-1MEVA n,<n>-1MVGL <n>,0MVGL <n>,0MVSP KLG,$eindeMVSP KLG,$eindeOPT R1,<b1>OPT R1,<b1>Rsom <n>,<b2>,<b3>Rsom <n>,<b2>,<b3>

$einde: MNTS$einde: MNTS

OPT R1,bOPT R1,b

Rsom 2,c,,Rsom 2,c,,

nn 3 3b1b1 bbb2b2 ccb3b3

nn 2 2b1b1 bbb2b2 ccb3b3

ResRes xxnn 33a1a1 aaa2a2 bba3a3 cca4a4

Page 48: SOCS

48

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0) | x | x a + b + c a + b + cSom x,3,a,b,cSom x,3,a,b,c

HIA R1,aHIA R1,a

Rsom 3,b,c,Rsom 3,b,c,

| Macro RSom| Macro RSom| R1 += b| R1 += b11+…+b+…+bn-1n-1

MACROMACRORsom n,b1,b2,b3Rsom n,b1,b2,b3

MCREINDEMCREINDE

MEVA n,<n>-1MEVA n,<n>-1MVGL <n>,0MVGL <n>,0MVSP KLG,$eindeMVSP KLG,$eindeOPT R1,<b1>OPT R1,<b1>Rsom <n>,<b2>,<b3>Rsom <n>,<b2>,<b3>

$einde: MNTS$einde: MNTS

OPT R1,bOPT R1,b

Rsom 2,c,,Rsom 2,c,,

OPT R1,cOPT R1,c

Rsom 1,,,Rsom 1,,,

nn 2 2b1b1 bbb2b2 ccb3b3

nn 2 2b1b1 ccb2b2 b3b3

nn 1 1b1b1 ccb2b2 b3b3

ResRes xxnn 33a1a1 aaa2a2 bba3a3 cca4a4

Page 49: SOCS

49

nn 1 1b1b1 b2b2 b3b3

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0) | x | x a + b + c a + b + cSom x,3,a,b,cSom x,3,a,b,c

HIA R1,aHIA R1,a

Rsom 3,b,c,Rsom 3,b,c,

| Macro RSom| Macro RSom| R1 += b| R1 += b11+…+b+…+bn-1n-1

MACROMACRORsom n,b1,b2,b3Rsom n,b1,b2,b3

MCREINDEMCREINDE

MEVA n,<n>-1MEVA n,<n>-1MVGL <n>,0MVGL <n>,0MVSP KLG,$eindeMVSP KLG,$eindeOPT R1,<b1>OPT R1,<b1>Rsom <n>,<b2>,<b3>Rsom <n>,<b2>,<b3>

$einde: MNTS$einde: MNTS

OPT R1,bOPT R1,b

Rsom 2,c,,Rsom 2,c,,

OPT R1,cOPT R1,c

Rsom 1,,,Rsom 1,,,

nn 2 2b1b1 bbb2b2 ccb3b3

nn 1 1b1b1 ccb2b2 b3b3

nn 0 0b1b1 b2b2 b3b3

ResRes xxnn 33a1a1 aaa2a2 bba3a3 cca4a4

Page 50: SOCS

50

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0) | x | x a + b + c a + b + cSom x,3,a,b,cSom x,3,a,b,c

HIA R1,aHIA R1,a

Rsom 3,b,c,Rsom 3,b,c,

| Macro RSom| Macro RSom| R1 += b| R1 += b11+…+b+…+bn-1n-1

MACROMACRORsom n,b1,b2,b3Rsom n,b1,b2,b3

MCREINDEMCREINDE

MEVA n,<n>-1MEVA n,<n>-1MVGL <n>,0MVGL <n>,0MVSP KLG,$eindeMVSP KLG,$eindeOPT R1,<b1>OPT R1,<b1>Rsom <n>,<b2>,<b3>Rsom <n>,<b2>,<b3>

$einde: MNTS$einde: MNTS

OPT R1,bOPT R1,b

Rsom 2,c,,Rsom 2,c,,

OPT R1,cOPT R1,c

Rsom 1,,,Rsom 1,,,

nn 2 2b1b1 bbb2b2 ccb3b3

nn 1 1b1b1 ccb2b2 b3b3

ResRes xxnn 33a1a1 aaa2a2 bba3a3 cca4a4

Page 51: SOCS

51

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0) | x | x a + b + c a + b + cSom x,3,a,b,cSom x,3,a,b,c

HIA R1,aHIA R1,a

Rsom 3,b,c,Rsom 3,b,c,

| Macro RSom| Macro RSom| R1 += b| R1 += b11+…+b+…+bn-1n-1

MACROMACRORsom n,b1,b2,b3Rsom n,b1,b2,b3

MCREINDEMCREINDE

MEVA n,<n>-1MEVA n,<n>-1MVGL <n>,0MVGL <n>,0MVSP KLG,$eindeMVSP KLG,$eindeOPT R1,<b1>OPT R1,<b1>Rsom <n>,<b2>,<b3>Rsom <n>,<b2>,<b3>

$einde: MNTS$einde: MNTS

OPT R1,bOPT R1,b

Rsom 2,c,,Rsom 2,c,,

OPT R1,cOPT R1,c

nn 2 2b1b1 bbb2b2 ccb3b3

ResRes xxnn 33a1a1 aaa2a2 bba3a3 cca4a4

Page 52: SOCS

52

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0) | x | x a + b + c a + b + cSom x,3,a,b,cSom x,3,a,b,c

HIA R1,aHIA R1,a

Rsom 3,b,c,Rsom 3,b,c,

| Macro RSom| Macro RSom| R1 += b| R1 += b11+…+b+…+bn-1n-1

MACROMACRORsom n,b1,b2,b3Rsom n,b1,b2,b3

MCREINDEMCREINDE

MEVA n,<n>-1MEVA n,<n>-1MVGL <n>,0MVGL <n>,0MVSP KLG,$eindeMVSP KLG,$eindeOPT R1,<b1>OPT R1,<b1>Rsom <n>,<b2>,<b3>Rsom <n>,<b2>,<b3>

$einde: MNTS$einde: MNTS

OPT R1,bOPT R1,b

OPT R1,cOPT R1,c

ResRes xxnn 33a1a1 aaa2a2 bba3a3 cca4a4

Page 53: SOCS

53

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0) | x | x a + b + c a + b + cSom x,3,a,b,cSom x,3,a,b,c

HIA R1,aHIA R1,a

OPT R1,bOPT R1,b

OPT R1,cOPT R1,c

| Macro Som| Macro Som| Res=a| Res=a11+…+a+…+ann (0<n<=4) (0<n<=4)| Wijzigt R1| Wijzigt R1MACROMACRO

Som Res,n,a1,a2,a3,a4Som Res,n,a1,a2,a3,a4

MCREINDEMCREINDE

HIA R1,<a1>HIA R1,<a1>Rsom <n>,<a2>,<a3>,<a4>Rsom <n>,<a2>,<a3>,<a4>BIG R1,<Res>BIG R1,<Res>

MVGL <n>,0MVGL <n>,0MVSP GR,$posMVSP GR,$posMFOUT “n moet > 0”MFOUT “n moet > 0”

$pos: MVGL <n>,4$pos: MVGL <n>,4MVSP KLG,$okMVSP KLG,$okMFOUT “n moet <= 4”MFOUT “n moet <= 4”

$ok:$ok: MNTSMNTS

BIG R1,xBIG R1,x

ResRes xxnn 33a1a1 aaa2a2 bba3a3 cca4a4

Page 54: SOCS

54

Genestelde en recursieve macro-oproepen

Res A1 + … + AN (N > 0) | x | x a + b + c a + b + cSom x,3,a,b,cSom x,3,a,b,c

HIA R1,aHIA R1,aOPT R1,bOPT R1,bOPTOPT R1,cR1,cBIGBIG R1,xR1,x

| Macro Som| Macro Som| Res=a| Res=a11+…+a+…+ann (0<n<=4) (0<n<=4)| Wijzigt R1| Wijzigt R1MACROMACRO

Som Res,n,a1,a2,a3,a4Som Res,n,a1,a2,a3,a4

MCREINDEMCREINDE

HIA R1,<a1>HIA R1,<a1>Rsom <n>,<a2>,<a3>,<a4>Rsom <n>,<a2>,<a3>,<a4>BIG R1,<Res>BIG R1,<Res>

MVGL <n>,0MVGL <n>,0MVSP GR,$posMVSP GR,$posMFOUT “n moet > 0”MFOUT “n moet > 0”

$pos: MVGL <n>,4$pos: MVGL <n>,4MVSP KLG,$okMVSP KLG,$okMFOUT “n moet <= 4”MFOUT “n moet <= 4”

$ok:$ok: MNTSMNTS

Page 55: SOCS

55

Macro’s in DRAMA

Basisprincipe Eenvoudige DRAMA-macro’s Lokale symbolische adressen Macro-parameters en variabelen Voorwaardelijke macro-opbouw Macro-directieven Genestelde en recursieve macro-oproepen Globale macro-variabelen

Page 56: SOCS

56

Globale macro-variabelen

Doel: Waarden langer bewaren (over macro-oproepen heen) Constanten

Werkwijze: MEVA buiten macro-definitie

MEVA LAB,1MEVA LAB,1……MACROMACRO SpringSpring SPR NAAR<LAB>SPR NAAR<LAB> MEVA LAB,<LAB>+1MEVA LAB,<LAB>+1 … …MCREINDEMCREINDE……

MEVA N,10MEVA N,10

……VGL.w R1,VGL.w R1,<N><N>VSP GEL,endwhVSP GEL,endwh……

A:A: RESGR RESGR <N><N>

Page 57: SOCS

57

Globale macro-variabelen

MEVA LAB,0MEVA LAB,0MACROMACRO ReserveerPlaats NReserveerPlaats N

MEVA LAB,<LAB>+1MEVA LAB,<LAB>+1SPR NAAR<LAB>SPR NAAR<LAB>

RESGR <N>RESGR <N>NAAR<LAB>:NAAR<LAB>:MCREINDEMCREINDEHIA.w R1,10HIA.w R1,10ReserveerPlaats 10ReserveerPlaats 10OPT R1,bOPT R1,b……HIA.w R2,100HIA.w R2,100ReserveerPlaats 20ReserveerPlaats 20AFT R2,R1AFT R2,R1……

HIA.w R1,10HIA.w R1,10ReserveerPlaats 10ReserveerPlaats 10

OPT R1,bOPT R1,b……HIA.w R2,100HIA.w R2,100ReserveerPlaats 20ReserveerPlaats 20

AFT R2,R1AFT R2,R1……

SPR NAARSPR NAAR11RESGR RESGR 1010

NAARNAAR11::

SPR NAARSPR NAAR22RESGR RESGR 2020

NAARNAAR22::

Page 58: SOCS

58

Globale macro-variabelen

MEVA N,10MEVA N,10……VGL.w R1,VGL.w R1,<N><N>VSP GEL,endwhVSP GEL,endwhHIA.w R2,10HIA.w R2,10……STPSTP

A:A: RESGR RESGR <N><N>

……VGL.w R1,VGL.w R1,1010VSP GEL,endwhVSP GEL,endwhHIA.w R2,10HIA.w R2,10……STPSTP

A:A: RESGR RESGR 1010

MEVA N,30MEVA N,30……VGL.w R1,VGL.w R1,<N><N>VSP GEL,endwhVSP GEL,endwhHIA.w R2,10HIA.w R2,10……STPSTP

A:A: RESGR RESGR <N><N>

……VGL.w R1,VGL.w R1,3030VSP GEL,endwhVSP GEL,endwhHIA.w R2,10HIA.w R2,10……STPSTP

A:A: RESGR RESGR 3030

Page 59: SOCS

59

Directieven buiten macro-definitie

MEVA, MVGL, MVSP, MSPR, MFOUT Ook buiten macro-definitie te gebruiken Voorbeeld:

Voorwaardelijke programma-opbouw Vb. Bepaalde stukken code overslaan

MEVA DEBUG,1MEVA DEBUG,1| Berekening van tussenres. in R1| Berekening van tussenres. in R1

……MVGL <DEBUG>,1MVGL <DEBUG>,1MVSP NGEL,$nodebugMVSP NGEL,$nodebug

HIA R0,R1HIA R0,R1DRUDRU

$nodebug: MNTS$nodebug: MNTS……

Bevelen ingelast als DEBUG=1Bevelen ingelast als DEBUG=1

Page 60: SOCS

60

Directieven buiten macro-definitie

MEVA DEBUG,1MEVA DEBUG,1……HIA.w R1,7HIA.w R1,7AFT R1,bAFT R1,bMVGL <DEBUG>,1MVGL <DEBUG>,1MVSP NGEL,$gdbMVSP NGEL,$gdbHIA R0,R1HIA R0,R1DRUDRU

$gdb:$gdb: MNTSMNTSBIG R1,cBIG R1,c……

……HIA.w R1,7HIA.w R1,7AFT R1,bAFT R1,b

HIA R0,R1HIA R0,R1DRUDRU

BIG R1,cBIG R1,c……

Debugcode Debugcode aanwezigaanwezig

Page 61: SOCS

61

Directieven buiten macro-definitie

MEVA DEBUG,MEVA DEBUG,00……HIA.w R1,7HIA.w R1,7AFT R1,bAFT R1,bMVGL <DEBUG>,1MVGL <DEBUG>,1MVSP NGEL,$gdbMVSP NGEL,$gdbHIA R0,R1HIA R0,R1DRUDRU

$gdb:$gdb: MNTSMNTSBIG R1,cBIG R1,c……

……HIA.w R1,7HIA.w R1,7AFT R1,bAFT R1,b

BIG R1,cBIG R1,c……

Debugcode Debugcode weggelatenweggelaten

Page 62: SOCS

62

Cursustekst

Hoofdstuk 1: pag. 165 einde