HANDLEIDING VOOR GEBRUIK INTEL'S ONTWIKKELSYSTEEM IN 8086 MODE. J.W. de Ree WPB juni 1984.

Maat: px
Weergave met pagina beginnen:

Download "HANDLEIDING VOOR GEBRUIK INTEL'S ONTWIKKELSYSTEEM IN 8086 MODE. J.W. de Ree WPB. 0 105. juni 1984."

Transcriptie

1 HANDLEIDING VOOR GEBRUIK INTEL'S ONTWIKKELSYSTEEM IN 8086 MODE. WPB J.W. de Ree juni 1984.

2 InhQudsopgave Hoofdstuk 1: Inleiding Hoofdstuk 2: De 16-bits microprocessoren 2.1 Inleiding 2.2 De 8086/8088 microprocessor en 2.3 De register set 2.4 Segmentatie 2.5 Coprocessing en multiprocessing Hoofdstuk 3: ASM86 Language reference manual 3.1 Inleiding 3.2 Segmentatie SEGMENT/ENDS directive ASSUME directive GROUP directive 3.3 Definitie en initialisatie van data LABEL directive PROC directive Variabelen DB,DW,DD,DQ,DT directives Records RECORD directive Structures STRUC directive ORG directive EVEN directive PURGE directive 3.4 Bewerken van data 8086/87/88 instruction statements De verschillende operands Segment register defaults Overzicht van expressies Arithmetic operators Relational operators Logical operators Attribute overriding operators PTR operator SHORT operator THIS operator SEG operator OFFSET operator TYPE operator LENGTH operator SIZE operator Record specific operators EQU directive 3.5 Directives voor linken programma's PUBLIC directive EXTRN directive END directive pag 1.1 pag 2.1 pag 2.1 pag 2.1 pag 2.2 pag 2.3 pag 2.4 pag 3.1 pag 3.1 pag 3.2 pag 3.2 pag 3.4 pag 3.5 pag 3.6 pag 3.6 pag 3.7 pag 3.9 pag 3.9 pag 3.10 pag 3.11 pag 3.12 pag 3.13 pag 3.15 pag 3.15 pag 3.15 pag 3.16 pag 3.16 pag 3.16 pag 3.18 pag 3.19 pag 3.20 pag 3.21 pag 3.21 pag 3.21 pag 3.22 pag 3.22 pag 3.23 pag 3.23 pag 3.24 pag 3.24 pag 3.24 pag 3.25 pag 3.25 pag 3.26 pag 3.26 pag 3.27 pag 3.27 pag 3.27

3 Inhoudsopgave NAME directive 3.6 De 8086/87/88 instructie set Data transfer Arithmetic Logic Control transfers Processor control 3.7De Macro Processing Language (MPL) Hoofdstuk 4: ASM86 Macro Assembler Operation 4.1 Inleiding 4.2 De invocation line 4.3 De controls 4.4 Listing file en errorprint file Hoofdstuk 5: ASM86 hulpprogramma's 5.1 Inleiding External en public symbols 5.2 LINK CREF LIB LOC OH86 Hoofdstuk 6: CONV Inleiding 6.2 Het gebruik van de convertor pag 3.29 pag 3.29 pag 3.31 pag 3.32' pag 3.33 pag 3.33 pag 3.33 pag 3.34 Instructions pag 4.1 pag 4.1 pag 4.1 pag 4.2 pag 4.3 pag 5. 1 pag 5.1 pag 5.2 pag 5.3 pag 5.5 pag 5.6 pag 5.7 pag 5.9 pag 6.1 pag 6. 1 pag 6.2 Hoofdstuk 7: De isbc 86/12 Single Board Computer 7.1 Inleiding 7.2 Het verzenden van programma's SBC Monitor kommando's Hoofdstuk 8: Een voorbeeld 8.1 Inleiding 8.2 Het programma 8.3 Module INIT Module TEXT 8.5 Module CO 8.6 Het assembleren 8.7 Het linken 8.8 Het locaten 8.9 Omzetten in HEX formaat 8.10 Verzenden en draaien pag 7. 1 pag 7. 1 pag 7. 1 pag 7. 1 pag 7.2 pag 8. 1 pag 8.1 pag 8. 1 pag 8.2 pag 8.) pag 8.4 pag 8.4 pag 8.7 pag 8.8 pag 8.9 pag 8.10 Hoofdstuk~. Woordenlijst pag 9.1

4 Inleiding pag.1. 1 Hoofdstuk 1: Inleiding Deze handleiding is geschreven voor die gebruikers van het ontwikkelsysteem die reeds bekend zijn met het werken met het Intel MDS systeem. Het gebruik van ISIS-II, Credit enz. wordt hier dan ook bekend verondersteld. Lezers welke niet bekend zijn met het werken op het ontwikkelsysteem verwijs ik naar: "Handleiding voor gebruik bij het ISIS-II operating system en het Intel MDS 236 ontwikkelsysteem", geschreven door M. van Liempt. Deze handleiding bevat alleen gegevens betreffende het ontwikkelen van programma's voor de 8086/8088 proceesoren, due alleen gegevens voor het werken met het 8086 deel van het ontwikkelsysteem. In hoofdstuk 2 worden deze processoren in het kort besproken. Hoofdstuk 3 vertelt hoe men programma's in de ASM86 assembler taal moet schrijven, terwijl hoofdstuk 4 aangeeft hoe men de programma's geschreven in assembler taal kan vertalen in machine code. Hoofdstuk 5 geeft enkele hulpprogramma's waarmee men verschillende modules tot een programma kan samenvoegen en een absoluut adres kan geven. In hoofdstuk 6 wordt besproken hoe men oude 8080/8085 modules om kan zetten in 8086 modules. In hoofdstuk 7 wordt de isbc 86/12 Single Board Computer besproken en wordt ook verteld hoe men een programma van het ontwikkelsysteem moet overzenden naar de isbc 86/12. Hoofdstuk 8 geeft een voorbeeld, nl. een interrupt programma. Met behulp van dit programma wordt stap voor stap de hele werkwijze uitgelegd, achtereenvolgens schrijven, assembleren, linken, locaten enz. Hoofstuk 9 geeft de notitie afspraken en in hoofdstuk 10 men een verklarende woordenlijst. vindt De gegevens voor deze handleiding zijn gehaald uit de volgende boeken en manuals: iapx 86,88 Family Utilities User's Guide, nr ASM86 Language Reference Manual, nr ASM86 Macro Assembler Operating Instructions, nr MCS-86 Assembly Language Convertor Operating Instructions for ISIS-II Users, nr An Introduction to ASM86, nr / bit Microprocessor Primer door C.L.Morgan en M.Waite. isbc 86/12 Single board computer hardware reference manual, nr a. isbc957 Intellec-iSBC 86/12 interface and execution package user's guide, nr a.

5 Inleiding pag.1. 2 In dit verslag wordt gebruik gemaakt van de volgende notatie afspraken: Hoofdletters directory-name filename pathname [ ] { } [,... ] <cr> karakters geschreven in hoofdletters moeten ingetikt worden in de volgorde zoals die vermeld wordt. dat deel van een pathname dat dient om de device aan te wijzen welke de file bevat. is een geldende naam voor dat deel van de filename dat de file aanwijst. is een geldil]e bestemming voor een file, bestaat uit directory-name en filename. dat wat tussen [ ] staat is een optie. van aile mogelijkheden tussen { } mag men er slechts een kiezen. het voorgaande item kan herhaald worden, maar elke herhaling vooraf laten gaan door een I. geeft een carriage return aan.

6 paq.2. 1 Hoofdstuk 2: De 16-bits microprocessoren 2.1; Inleiding In dit hoofdstuk worden enkele basis concepten van de 8086/8088 microprocessoren besproken. Dit is noodzakelijk omdat de opbouw van een 16-bits microprocessor anders is dan de opbouw van een 8-bits processor zoals de 8080/8085. Een 16-bits microprocessor heeft vele voordelen t.o.v. een 8- bits microprocessor, zoals: 1) de 16-bits processor is veel nauwkeuriger omdat hij data van 16 bits breedte verwerkt i.p.v. data van 8-bits breedteo 2) de instructie-set van een 16-bits processor is veel uitgebreider en krachtiger dan die van een 8-bits processor, bv. on-chip delen en vermenigvuldigen. 3) de 16-bits processor kan een veel groter geheugen gebruiken, 1 Mbyte t.o.v. 64 Kbyte bij een 8-bits processor. 4) de 16-bits processoren kunnen door hun speciale structuur gebruik maken van gespecialiceerde co-processoren die bepaalde taken overnemen zodat de microprocessor iets anders kan doen. Zo zijn er bv. een speciale rekenprocessor (de 8087) en een speciale I/O-processor (de 8089). Deze speciale co-processoren hebben een eigen instructie set. 2.2 De 8086/8088 microprocessoren De 8086 en 8088 zijn beide 16 bits microprocessoren met een identieke interne opbouw en instructie set. Het verschil is dat de 8086 ontworpen is om met een 16 bits data bus te werken terwijl de 8088 een 8 bits data bus nodig heeft. Dit laatste heeft als voordeel dat men eenvoudig de huidige, goedkope 8- bits geheugen chips kan toepassen. Zowel de 8086 als de 8088 passen de techniek van uinstruction queuing" toe om de snelheid van de processor te vergroten. Een gebied binnen in de chip, de "instruction queue U, bevat enkele bytes instructie. Als de processor klaar is voor de volgende instructie, dan hoeft hij geen bytes uit het geheugen te halen omdat de gehele instructie zich al in de "instruction queue" bevindt. Hierdoor wordt de belasting van de data- en adres-bussen verlaagd waardoor de computer sneller en efficienter kan werken. De 8086/8088 kan 1 Mbyte geheugen aanschrijven. Hiervoor

7 pag.2. 2 gebruikt men een techniek genaamd segmentatie, zie pag.2.3. Om het aantal pin-aansluitingen van het IC te beperken tot 40 pinnen past men de technieken van time multiplexing en encoding toe voor de verschillende signalen. Voor data- en adres-signalen gebruikt men time multiplexing, voor de verschillende controle signalen gebruikt men encoding. Deze technieken hebben wei als gevolg dat men systemen moet ontwerpen om de oorspronkelijke signalen terug te krijgen. Hiervoor heeft men echter speciale IC's ontworpen. De 8086/8088 heeft een zeer krachtige interrupt struktuur, zie ook hoofdstuk 8. In de 8086 zijn er zo"n 1000 bytes die tot 256 vector pointers kunnen bevatten. De 8086/8088 doet I/O operaties in een apart deel van het geheugen, genaamd de I/O space. De I/O space is tot 64 Kbyte lang. 2.3 De register set De 8086 en de 8088 hebben een identieke register set van veertien 16-bits interne registers, zie onderstaande figuur: IX C. A 1M em ll, ) IL ~ti L CL ~ll: U OM OL rm" l!," or ACCUMUUTOR 'An COUMT OATl STACK 'OlNT(R IAU PO'MTn $CUlC! '''Oll DUr'NAnOIi 'Norl IV [ un L- CS os 15 IS UG,ST H S.AOIO) '"SToveno" 'Olllfll STATU! 'LAGS COOt Sl&., IIT OAU S!G"IN' sue. SUMt"T lit SEOMt.T )""

8 paq.2. 3 De registers van de 8086/8088 zijn als voigt onderverdeeld: - vier 16-bits general registers, AX, BX, CX en DX welke ook als 8-bits registers gebruikt kunnen worden. X staat voor 16-bits, H staat voor high, L staat voor low, A voor accumulator, B voor base, C voor counter en D voor data. - vier 16-bits pointer- en index-registers: SP (stack pointer), BP (base pointer), SI (source index) en DI (destination index). - een 16-bits flags register welke verschillende status bits van de processor bevat. Dit zijn, zie volgende figuur, de zero flag (ZF), sign flag (SF), parity flag (PF), carry flag (CF), auxiliary flag (AF), direction flag (DF), interrupt flag (IF), overflow flag (OF) en trap flag (TF). 15 o - vier segment registers, CSt DS. SS en ES, resp. code, data, stack en extra segment register. - een instruction pointer IP. 2.4 Segmentatie Segmentatie is een methode om geheugencellen te adresseren waarbij twee gegevens nodig zijn: nl. een offset en een segment base. De segment base wijst naar een gebied in het geheugen (het segment) en de offset wijst naar het adres binnen dat gebied. Met behulp van deze methode kan men dus ook modulair ontwikkelen en men kan modules ontwikkelen welke volledig relocatable zijn (aileen de base veranderen). Bij de 8086/8088 zijn de segmenten maximaal 64 Kbytes groot. De base van een segment wordt in een van de vier segment registers (SS, CSt ES, DS) opgeslagen. De base wordt ook wei segment paragraph address genoemd omdat een segment aileen kan starten op een paragraph address ( deelbaar door 16H). Om het werkelijke geheugen adres te berekenen wordt de base met 16H vermenigvuidigd (een nul plaatsen achter base getal) en wordt de offset erbij opgeteld. Op deze wijze krijgt men een 20 bits breed adres zodat men 1 Mbyte kan adresseren. Bij het programmeren moet men begin en einde van het segment aangeven, zie hoofdstuk 3.

9 pag Coprocessing en multiprocessing V~~r het krijgen van betere en krachtigere computers kan men in een computer meerdere processoren laten samenwerken. Dit samenwerken kan op twee manieren, nl. coprocessing en multiprocessing: Coprocessing: twee of meer processoren delen dezelfde instructie stroom. Dit wil zeggen dat beide processoren hetzelfde programma volgen maar dat ze om de beurt instructies uitvoeren omdat bepaalde instructies het best door een bepaalde processor uitgevoerd kunnen worden (bv. de 8087 rekenprocessor). Multiprocessing: twee of meer processoren delen dezelfde geheugen ruimte, maar opereren op verschillende instructie stromen. Elke processor heeft dus zijn eigen programma. Het is mogelijk dat een processor de leiding heeft en de andere processoren leidt d.m.v. berichten in het geheugen (bv. de 8089 IIO processor). Het grote voordeel van coprocessing en multiprocessing is dat de centrale processor bepaalde taken niet zelf meer hoeft te doen maar deze kan laten doen door andere processoren. Hierdoor kan de centrale processor zich concentreren op de werking van het systeem als geheel. V~~r toepassing van deze technieken zijn speciale instructies aanwezig zodat de centrale processor weet dat hij deze instructie door een andere processor moet laten uitvoeren. Verder zijn er speciale besturingssignalen en besturingsinstructies nodig v~~r synchronisatie van de verschillende processoren.

10 ASM86 Assembler pag.3. 1 Hoofdstuk 3: ASM86 Language reference manual 3.1 Inleiding De assembler produceert object modules van programma's geschreven in ASM86 assembler taal. Deze object modules bevatten machine instructies en data. Er zijn verschillende hulpprogramma's voor het modulair ontwikkelen van software voor de 8086/8088, zoals: - - CONVB6: zet 8080/8085 source files om in ASMB6 source files. LINK86: combineert object modules tot load modules. - - LOC86: kent aan load modules een absoluut geheugen adres toe. LIB86: helpt om zelf library's te maken van object files. - OH86: zet 8086/8088 absolute object module om in Intel hex formaat. Het eerste hulpprogramma wordt besproken in hoofdstuk 6, de vier volgenden in hoofdstuk 5. Als men een programma in assembler taal geschreven heeft, dan moet dit vertaald worden. Dit vertalen wordt gedaan door de ASM86 Macro Assembler. In hoofdstuk 4 wordt besproken hoe men de assembler moet oproepen en welke controls men kan geven. Met de 8086 kan men zowel met data van 16 bits of van 8 bits lengte werken. De assembler controleert of de verschillende variabelen wei van hetzelfde type z~jn. Dit voorkomt dat per vergissing een 16 bits variabele in een 8 bits bestemming geplaatst wordt. De assembler heeft voor gelijksoortige instructies slechts een mnemonic, by. MOV voor aile soorten data transport, of dit nu geheugen-geheugen of geheugen-register transport is. De assembler laat forward references naar variabelen en labels toe, d.w.z. dat verwezen mag worden naar variabelen en labels welke pas later in het programma gedefinieerd worden. Bij forward references moet de assembler raden welk type de variabele of label zijn zal. Dit raden kan mislukken en tot foutmeldingen leiden. Daarom moet men forward references zoveel mogelijk proberen te vermijden. De assembler maakt geen onderscheid tussen upper- en lower-case letters.

11 ASM86 Assembler pag,3, Segmentatie In deze paragraaf worden enkele assembler directives besproken, nl. het SEGMENT/ENDS directive ( definieert een segment ), het ASSUME directive ( geeft aan welk register de base bevat) en het GROUP directive ( gebruikt om verschillende 10- gische segmenten tot een fysisch segment te combineren ). Bij het beschrijven van de directives wordt steeds dezelfde werkwijze gebruikt: eerst de naam, dan de syntax, vervolgens een beschrijving en tot slot de Field Values (geven aan wat er precies op de velden van de syntax moet of mag staan). Het SEGMENT/ENDS directive: Syntax: name SEGMENT [align-type] [combine-type] [classname] name ENDS Het SEGMENT/ENDS directive wordt gebruikt om een logisch segment te definieren welke met anderen gecombineerd kan worden. Field Values: name: een unieke ASM86 identifier, de naam voor het segment. [align-type]: dit veld geeft aan op welke plaats in het geheugen het segment kan beginnen. Het veld kan de vo1- gende waarden aannemen: 1) niet gespecificeerd: default waarde van paragraph alignment, zie 2). 2) PARA paragraph alignment: het segment moet starten op een adres dee1baar door 16, dus beginadres moet eindigen op OH. 3) BYTE byte alignment: het segment mag op elk wi11ekeurig adres beginnen. 4) WORD - word alignment: het segment moet op een even adres moet 0 zijn. 5) PAGE - page alignment: segment moet een adres waarvan de twee laatste beginnen, dus laatste bit van beginadres starten op hexadecimale eindigen op cijfers nul zijn, dus beginadres moet OOH. 6) INPAGE inpage alignment: het gehele segment moet binnen 256 bytes passen, en het segment mag een

12 ASM86 Assembler pag.3. 3 page alignment grens niet overschrijden. [combine type]: geeft aan hoe het segment gecombineerd wordt met segmenten van andere modules tot een fysisch segment in het geheugen. Het veld kan de volgende waarden aannemen: 1) Niet gespecificeerd: combinable, het segment den. default waarde van nonzal niet gecombineerd wor- 2) PUBLIC: aile segmenten van gelijke naam gespecificeerd PUBLIC worden gecombineerd tijdens LINK86). Lengte van het fysisch segment is gelijk aan de som van de lengtes van de afzonderlijke segmenten. 3) COMMON: aile segmenten van gelijke naam gespecificeerd COMMON worden "overlapped" tot een fysisch segment. AIle gecombineerde segmenten beginnen op hetzelfde adres en de lengte van het fysisch segment is gelijk aan de Iengte van hetiangste segment dat gecombineerd wordt. 4) STACK: aile segmenten van gelijke naam gespecificeerd STACK worden "overlapped" tot een fysisch segment. AIle segmenten eindigen op hetzelfde adres en groeien naar beneden. 5) MEMORY: aile segmenten van gelijke naam gespecificeerd MEMORY worden gecombineerd tot een fysisch geheugen segment, beginnend bovenop de andere segmenten. 6) AT expression: dit is een absoluut fysisch segment dat op de door de expressie aangegeven moet beginnen. plaats ['ciassname']: geeft aan dat de segmenten door LOC86 bij elkaar in het geheugen geplaatst moeten worden in een bepaald deel van het fysisch geheugen, bv. in ROM. Voorbeeld: DATA SEGMENT PUBLIC ABYTE AWORD ANOTHERBYTE ANOTHERWORD DB 0 DW 0 DB 0 DW 0 DATA ENDS In dit voorbeeid definieert men een segment DATA dat bestaat uit twee bytes en twee words, allen met waarde nul. Dit segment wordt gecombineerd met andere segmenten van dezeifde

13 ASM86 Assembler pag.3. 4 naam gespecificeerd PUBLIC. Binnen een module mag men een segment zo vaak openen en sluiten als men wil. De assembler behandelt aile verschillende delen als een geheel. Bij het heropenen hoeft men de attributen niet meer te "setten"; het is echter niet toegestaan eerder gedefinieerde attributen te veranderen. Het is ook mogelijk om segmenten te nesten, het geneste segment moet gesloten worden voordat men het omvattende segment kan sluiten. Het default segment??seg: tijdens run-time moeten variabelen en instructies in een bepaald segment liggen. dit segment niet vermeld is, dan zal de assembler er zelf maken genaamd??seg waarin de data en code zullen liggen. aile Als een Het ASSUME directive: Syntax: ASSUME segreg:segpart[,... J of ASSUME NOTHING Het ASSUME directive geeft aan in welk register ( segreg ) de base staat van waaruit een segment ( segpart) geadresseerd is. Het ASSUME directive wordt gebruikt om tijdens run-time te definieren wat de inhoud van de segment registers zal Zl)n. Het ASSUME directive initialiseert de registers echter niet. Field Values: segreg: een van de 8086/8088 segment registers: CS, OS, SS of ES. segpart: dit veld definieert een paragraph number op een van de volgende manieren: 1) een segment name, zie voorbeeld. 2) een eerder gedefinieerde group name, zie volgend directive. 3) een expressie van de vorm: SEG variable-name, SEG label-name of SEG external-name, zie pag ) het keyword NOTHING dat aangeeft dat in het aangegeven segment register niets gedefinieerd is. De vorm ASSUME NOTHING geeft aan dat in aile vier de segment registers niets gedefinieerd is.

14 ASM86 Assembler pag.3. 5 vb. ASSUME DS:DATA, CS:CODE In dit voorbeeld is het segment DATA adresseerbaar via register DS en het segment CODE via register CS. Het is mogelijk forward references in een ASSUME directive toe te passen, mits gerefereerd wordt naar de naam van een segment. Als dit niet het geval is, dan geeft de assembler een foutmelding. Het GROUP directive: Syntax: name GROUPS segpart [1'.. J Het GROUPS directive wordt gebruikt om een groep logische segmenten zodanig te combineren dat zij een fysisch segment vormen ( adresseerbaar vanaf dezelfde base) na LOC86. De lengte van de group is gelijk aan de som van de lengtes van de afzonderlijke groepen, maar moet binnen 64 Kbyte passen. Field Values: name: een unieke ASM86 identifier, de naam voor de groep. segpart: dit veld definieert een paragraph number op een van de volgende manieren: 1) een segment-name. 2} een expressie van de vorm: SEG variable-name, SEG label-name of SEG external-name, zie pag vb. DATAGRP GROUP DATA1, DATA2 In dit voorbeeld worden de twee segmenten DATA1 en DATA2 gecombineerd tot de group DATAGRP.

15 ASM86 Assembler pag Definitie en initialisatie van data Tot de meest gebruikte objecten in een programma behoren variabelen en labels. Variabelen refereren naar data items, gebieden in het geheugen waar waarden zijn opgeslagen. Labels zijn symbolische namen voor code secties waarheen gesprongen kan worden of welke gecalled kunnen worden. Elke variabele heeft drie attributen: 1) segment: nieerd is. het segment waarbinnen de variabele gedefi 2) offset: offset van de variabele t.o.v. de base. 3) type: de grootte van de data items uitgedrukt in bytes. De mogelijkheden zijn: - - BYTE: WORD: een 1 byte woard, 8086/8088 data type. een 2 bytes waard, 8086/8088 data type. - - DWORD: QWORD: een 4 bytes woard, 8086/8087/8088 data type. een 8 bytes woord, 8087 data type. - TBYTE: een 10 bytes woord, 8087 data type. structure: een multi-byte, "structured" 8086/8088 data type, zie pag record: een 8 of 16 bits "bit-gecadeerd" 8086/8088 data type, zie pag Een variabele kan op twee manieren gedefinieerd worden, nl. door een data definitie statement en door het LABEL directive: 1)Definitie d.m.v. een data definitie statement: zie pag.3.9 2)Definitie d.m.v. het LABEL directive: Het LABEL directive: Syntax: name LABEL type Met het LABEL directive kan men labels en variabelen definieren. Field Values: name: een unieke ASM86 identifier, de naam van het label of de variabele. type: dit veld definieert het type dat aan de naam gegeven wordt. Voor een variabele kan dit zijn: EYTE, WORD, DWORD, QWORD, TBYTE, structure of record. Voor een label kan het type NEAR of FAR zijn.

16 ASM86 Ass~mbler pag.j. 7 Labels definieren adressen waar uitvoerbare instructies staan. Een label is een locatie waarnaar toe gesprongen kan worden, of welke gecalled kan worden. Een label heeft, net als een variabele, drie attributen, waarvan twee hetzelfde ais bij variabele: 1) segment: hetzelfde als bij variabele. 2) offset: hetzelfde als bij variabele. 3) type: dit specificeert het type sprong of CALL dat naar een locatie gemaakt moet worden. Er zijn twee types: - NEAR: d.w.z. dat de locatie waarnaar verwezen wordt binnen het fys ch segment ligt ( vanaf dezelfde base bereikbaar ). - FAR: d.w.z. dat de locatie waarnaar verwezen wordt buiten het fysisch segment ligt ( niet vanaf dezelfde base bereikbaar ). Een label kan op drie manieren gedefinieerd worden: 1) door een naam gevolgd door "." en een instructie statement. Dit is de meest gebruikelijke methode: vb.: NEARLAB: MOV AX,BX 2) door het LABEL directive, zie bij definitie van variabelen 3) door het PROC directive: Het PROC directive: Syntax: name PROC [type] name ENDP Een PROC directive wordt gebruikt om een label te definieren. Tussen PROC en ENDP staat een reeks instructies die meestal als een subroutine behandeld worden. Deze reeks instructies kan men dan in het hoofdprogramma oproepen door de labelnaam. Binnen het PROC/ENDP paar moet dan ook een return instructie staan zodat het programma weer naar het hoofdprogramma terug kan keren. Field Values: name: label. een unieke ASM86 identifier, de naam van het type: dit veld specificeert het type van het

17 ASM86 Assembler pag.3. 8 label. Het type kan zijn: 1} niet gespecificeerd: NEAR. 2) NEAR. 3)FAR. als default waarde Een ander soort data is de constante, dit is een echt getal zonder attributen. Voor de verschillende soorten constanten zie de volgende tabel: Constant Type Rules for Formation Examples Binary A sequence of O's and 1's followed by the 11B (Base 2) letter 'B' B Octal A sequence of digits 0 through 7 followed (BaseS) by either the letter '0' or the letter '0' n7n0 Decimal A sequence of digits 0 though 9, optlon (Base 10) ally followed by the letter '0' Hexadecimal A sequence of digits 0 through 9 and lor 55H (Base 16) letters A through F followed by the letter 2EH 'H'. (Sequence must begin with 0-9) OBEACH OFEH ASCII Any ASCII string enclosed In quotes 'A','BC' (More than 2 chars. valid for DB only.) 'UPDATE.EXT' Decimal Real A decimal fraction, optionally followed by > (Base 10) an exponent. The fraction is a sequence.oo2e7 of digits 0 through 9. A decimal point is 1E-32 required if no exponent Is present and is 1. optional otherwise. The exponent starts with an E, followed by an optional sign and digits from 0-9. Hexadecimal A sequence of digits 0-9 andlor letters A 40490FDBR Real (Base 16) through F followed by the letter R. The OCOOOOOOOR sequence must begin with 0-9. Total number of digits must be (8, 16, 20) or (9, 17, 21). If odd numbered, the lirs! digit mustbeo.

18 ASM86 Assembler pag.3. 9 Definitie en initialisatie van variabelen. DB, DW, DD, DQ, DT directives: soort initialisatie: syntax: 1 byte initialisatie: [name] DB init [,.. ] 2 byte initialisatie: [name] DW init [,.. ] 4 byte initialisatie: [name] DD init [,.. ] 8 byte initialisatie: [name] DQ init [,.. ] 10 byte initialisatie: [name] DT init [,.. ] Deze directives worden gebruikt am variabelen te definieren en/of om geheugen te initialiseren. Als de directive met naam gebruikt wordt, dan definieert men de genaamde variabele en initialiseert men deze tevens met de gewenste waarde. Bet type van de variabele is afhankelijk van het gebruikte directive. Field Values: [name]; een unieke ASM86 identifier. Bet definieert een variabele waarvan de offset gelijk is aan de location counter die dan geldt. init: er zijn 5 verschillende manieren am een variabele te initialiseren: 1) door een constante expressie, waarvan de vorm afhankelijk is van het soort type. vb. TEN DB 10 In dit voorbeeld definieert men een als een byte met waarde 10. variabele TEN 2) door het karakter "?" voor onbekende initialisatie. Hiermee kan men een geheugenplaats reserveren met onbekende inhoud, bv. RESERVE DB? In dit voorbeeld reserveert men een geheugenplaats van 1 byte lengte met onbekende waarde. 3) initialisatie met een address-expression, aileen OW of DD. Men kan een variabele initialiseren met

19 ASM86 Assembler pag de naam van een variabele t label, segment of group. Bij gebruik van een variabele- of labelnaam in een DW directive wordt geinitialiseerd met de offset van die variabele of label. Bij gebruik van een segment- of group-naam in een DW directive wordt geinitialiseerd met het paragraph number van dat segment of die group. Bij gebruik van het DO directive wordt bij vermelden van de naam van een variabele of label de offsethiervan in het lower order word en het paragraph number in het higher order word van DD geplaatst. 4) initialisatie van een DB met een string, waarbij de string tussen moet staan, bv. ALFABET DB 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 5) herhaalde initialisering: hiermee is het mogelijk om een geheugen deel te initialiseren. Dit gebeurt met de DUP constructie. vb. repeatval DUP (val [,... ]) Hierin is repeatval een geheel getal dat aangeeft hoe vaak de initialisatie herhaald moet worden. Als waarde tussen ( ) kan gekozen worden uit een combinatie van de 4 voorgaande mogelijkheden, en ook een andere DUP.. vb. TEN DB 7 DUP (10) In dit voorbeeld definieert men 7 variabelen met naam TEN die allen de waarde 10 hebben. Introductie van records ASM86 heeft een speciaal data initialisatie statement waarmee men bit gecodeerde structuren I genaamd records, kan construeren. Een record mag 8 of 16 bits lang zijn. Elk record heeft per definitie een aantal velden welke een bepaald aantal bits per veld bevatten. In deze velden kan men informatie opslaan en bewerken. Records zijn handig als men bepaalde bits in een structure wil bewerken, bv. flag bits. De operators welke gebruikt worden om de velden te bewerken worden beschreven in par. 3.4.(pag. 3.25). Om records te gebruiken zijn twee stappen nodig. Tijdens de eerste stap definieert men de record en zijn velden. De tweede stap gebruiktde recordnaam in een data initialisatie

20 ASM86 Assembler pag statement om de opgeslagen data echt toe te wijzen. Het RECORD directive: Syntax: [name) RECORD field-name:exp[=initval] [,... J Met het RECORD directive kan men een record definieren en aangeven uit hoeveel velden het record be staat en uit hoeveel bits een veld bestaat. Field Values: name: cord. een unieke ASM86 identifier, de naam voor het refield-name: een unieke ASM86 identifier, de naam voor een bit veld binnen een record. exp: een constante of een expressie welke waarde van 1 tot 16. Deze waarde geeft aan bits het veld bestaat. De som van aile exp's definitie mag niet groter zijn dan 16. leidt tot een uit hoeveel in een record [=initvaij: dit is een constante of een expressie welke leidt tot een waarde welke gerepresenteerd kan worden door het aantal bits in het veld. Als geen initval gegeven wordt, dan is de default waarde nul. vb. ERRORSFLAG RECORD A:6, B:6, C:4 In dit voorbeeld wordt een record genaamd ERRORS FLAG gedefinieerd. Dit record bestaat uit 3 velden A, B en C, resp. 6, 6 en 4 bits lang. De bits zijn niet geinitialiseerd en hebben dus waarde nul. Partial records: dit is een record dat niet een heel "byte" of een heel "word" bezet. Het totaal aantal bits in het record is dan ongelijk aan 8 of 16. De assembler plaatst de gegeven bits in de least significant bits van het "byte" of "word". De ongebruikte most significant bits krijgen waarde nul.

21 ASM86 Assembler pag Rekord initialisering en toewiiziging Syntax: [name] record-name <[exp] [,... ]> of [name] record-name repeatval DUP «[exp] [,... ]» ini Met dit directive kan men de data bits van het record tialiseren of de oude waarden overschrijven., Field Values: [name]: een unieke ASM86 identifier, de naam van het byte of word dat toegewezen wordt. record-name: de naam van het eerder gedefiriieerde record. [exp]: als optie kan men de default waarden overschrijven. De expressie moet leiden tot een getal dat past binnen het aantal bits waaruit het veld bestaat. Bij een record van n velden, moet elk veld tussen de < > vermeld worden, hetzij door de initwaarde t hetzij door een komma indien men de bestaande waarde niet wilt veranderen. bv. <f1,f2,...,fn) en <././... /fn) Bij het laatste voorbeeld laatste veld overschreven. wordt alleen de waarde van het repeatval: een geheel getal dat aangeeft hoeveel records gevuld moeten worden. vb. FLAGS ERRORFLAG <0,3,0) In dit voorbeeld geeft record ERRORSFLAG resp. men de velden A, B en evan het de waarden 0, 3 en O. Introductie van structures Men kan "structered" data blokken definieren die opgebouwd zijn uit de basis types van data initialisatie statements. Deze data blokken heten structures. Een structure is opgebouwd uit data initialisatie statements welke de velden binnen een blok definieren. Elk van deze velden kan afzonderlijk bewerkt worden. Structures worden gedefinieerd m.b.v. het STRue directive.

De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012

De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012 De CPU in detail Hoe worden instruc4es uitgevoerd? Processoren 28 februari 2012 Tanenbaum hoofdstuk 2 von Neumann - architectuur. Tanenbaum, Structured Computer Organiza4on, FiMh Edi4on, 2006 Pearson Educa4on,

Nadere informatie

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Syntax- (compile), runtime- en logische fouten Binaire operatoren Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle

Nadere informatie

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Geheugenbeheer. ICT Infrastructuren 2 december 2013 Geheugenbeheer ICT Infrastructuren 2 december 2013 Doelen van geheugenbeheer Reloca>e (flexibel gebruik van geheugen) Bescherming Gedeeld/gemeenschappelijk geheugen Logische indeling van procesonderdelen

Nadere informatie

Indirecte adressering

Indirecte adressering Indirecte adressering 1 pagina 1 Absolute adressering - Directe adressering Operand Operand- Supplementaire Beschrijving adres toegangsbreedte (voorbeeld) I 37.4 byte, woord, Ingangen dubbelwoord Q 27.7

Nadere informatie

Getalformaten, timers en tellers

Getalformaten, timers en tellers Getalformaten, timers en tellers S_CU CU S PV R CV DEZ CV_BCD S_ODT S TV BI R BCD 1 pagina 1 Getalformaten (16 bits) PG CPU BCD W#16#296 Voorteken (+) 2 9 6 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 Positieve getallen

Nadere informatie

Hoe werkt een computer precies?

Hoe werkt een computer precies? Hoe werkt een computer precies? Met steun van stichting Edict Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Overview Introductie SIM-PL Simulatietool voor werking computer

Nadere informatie

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam Van Poort tot Pipeline Pipeline processor One cycle machine Calculator File of registers Assembly

Nadere informatie

Programmeren met Arduino-software

Programmeren met Arduino-software Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies 17 Operaties op bits In hoofdstuk 1 is gezegd dat C oorspronkelijk bedoeld was als systeemprogrammeertaal om het besturingssysteem UNIX te implementeren. Bij dit soort toepassingen komt het voor dat afzonderlijke

Nadere informatie

Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading

Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading Geheugen en Adressering Binding Geheugen (main memory, primary storage) is noodzakelijk voor de uitvoering van programma's. te beschouwen als array van adresseerbare bytes (of woorden). verschillende processen

Nadere informatie

Hoe werkt een rekenmachine?

Hoe werkt een rekenmachine? Hoe werkt een rekenmachine? Uit welke hardware-componenten bestaat een rekenmachine? Welke instructies kan de machine uitvoeren? Practicum met de rekenmachine I Constante getallen Instructies van het type

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding

VAN HET PROGRAMMEREN. Inleiding OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie

Talstelsels en getalnotaties (oplmodel)

Talstelsels en getalnotaties (oplmodel) Talstelsels en getalnotaties (oplmodel) herhalingsvragen 1. Waarom werken computers binair? Omdat binaire computers veel makkelijker te maken is. De kans op fouten is ook veel kleiner. het spanningsverschil

Nadere informatie

Java. Basissyllabus. Egon Pas

Java. Basissyllabus. Egon Pas Java Basissyllabus Egon Pas 2011 BeanPole bvba Gasmeterlaan 92-9000 Gent BTW BE 472.902.516 Tel: + 32 9 224 42 17 Fax: + 32 9 223 62 88 www.beanpole.be info@beanpole.be 1 Programmeren 1.1 Hoe werkt een

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

FAT32 disk structuur 2007 stam.blogs.com

FAT32 disk structuur 2007 stam.blogs.com FAT32 disk structuur 2007 stam.blogs.com Master Boot Record De Master Boot Record is vrijwel hetzelfde voor alle besturingssystemen. Het ligt binnen de eerste sector van de harddisk: Cylinder 0, Head 0,

Nadere informatie

Vraag 1 (2 punten) (iii) Een lees-opdracht van virtueel adres 2148 seg 0, offset 2148 - idem

Vraag 1 (2 punten) (iii) Een lees-opdracht van virtueel adres 2148 seg 0, offset 2148 - idem Tentamen A2 (deel b) 24-06-2004 Geef (liefst beknopte en heldere) motivatie bij je antwoorden; dus niet enkel ja of nee antwoorden, maar ook waarom. Geef van berekeningen niet alleen het eindresultaat,

Nadere informatie

Debugging in embedded en native systemen met GDB

Debugging in embedded en native systemen met GDB Debugging in embedded en native systemen met GDB A.M. ten Doesschate July 15, 2015 Abstract Een korte beschrijving : intro gebruik met welke tools en hulpmiddelen van de GDB setup en een summier aantal

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

slides12.pdf December 14, 2001 1

slides12.pdf December 14, 2001 1 Onderwerpen Inleiding Algemeen 12 Getallen Getallen Representaties Rekenen Problemen Piet van Oostrum 12 dec 2001 INL/Alg-12 1 X INL/Alg-12 1 X Getallen Soorten getallen Wat is een getal? Experiment: met

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 5: Timers/counters & Interrupts Timers/counters Hardware timers/counters worden in microcontrollers gebruikt om onafhankelijk van de CPU te tellen. Hierdoor kunnen andere

Nadere informatie

In deze aflevering van deze serie zal ik proberen een groot gebrek van Turbo Pascal weg te nemen, namelijk het gemis aan Random Access Files.

In deze aflevering van deze serie zal ik proberen een groot gebrek van Turbo Pascal weg te nemen, namelijk het gemis aan Random Access Files. Turbo Pascal deel 7 Erik van Bilsen MSX Club Magazine 40 Scanned, ocr ed and converted to PDf by HansO, 2001 In deze aflevering van deze serie zal ik proberen een groot gebrek van Turbo Pascal weg te nemen,

Nadere informatie

Turbo Pascal deel 3 MSX CLUB MAGAZINE 36. Erik van Bilsen. Scanned, ocr ed and converted to PDF by HansO, 2001

Turbo Pascal deel 3 MSX CLUB MAGAZINE 36. Erik van Bilsen. Scanned, ocr ed and converted to PDF by HansO, 2001 Turbo Pascal deel 3 MSX CLUB MAGAZINE 36 Erik van Bilsen Scanned, ocr ed and converted to PDF by HansO, 2001 In deze aflevering van de cursus gaan we scrollen en wel smooth-scroll in maar liefst vier richtingen.

Nadere informatie

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf

Nadere informatie

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis

VRIJ TECHNISCH INSTITUUT Burg.Geyskensstraat 11 3580 BERINGEN. De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis Burg.Geyskensstraat 11 3580 BERINGEN De PLC geïntegreerd in de PC. Vak: Toegepaste informatica Auteur: Ludwig Theunis Versie: vrijdag 2 november 2007 2 Toegepaste informatica 1 De Microprocessor Zowel

Nadere informatie

SQL datadefinitietaal

SQL datadefinitietaal SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen

Nadere informatie

Gegevensopslag in databouwstenen

Gegevensopslag in databouwstenen Gegevensopslag in databouwstenen 1 pagina 1 Databouwstenen (DB) OB1 Functie FC10 Functie FC20 Toegang tot alle bouwstenen Globale data DB20 Functiebouwsteen FB1 Instantie-DB van FB1 Instantiedata DB5 2

Nadere informatie

Talstelsels, getalnotaties en Ascii code

Talstelsels, getalnotaties en Ascii code Talstelsels, getalnotaties en Ascii code 1 Algemeenheden Digitale systemen werken met nullen en enen omdat dit elektronisch gemakkelijke te verwezenlijken is. De transistor wordt in digitale systemen als

Nadere informatie

Programmeren. Cursus Python

Programmeren. Cursus Python Programmeren Cursus Python Cursus Python Omschrijving In deze cursus leren de deelnemers te programmeren in de objectgeoriënteerde programmeertaal Python. Python is een taal die vaak wordt gebruikt voor

Nadere informatie

QR-code op aanvoerbrief 2.xx.0: Specificaties

QR-code op aanvoerbrief 2.xx.0: Specificaties QR-code op aanvoerbrief 2.xx.0: Specificaties Door: Bert Velthuijs Datum 1e versie: 5 april 2012 (versie 0.xx) Datum laatste wijziging 20 september 2012 Huidige Versie: 2.xx.0 Wijzigingen 19 juli 2012

Nadere informatie

De computer als processor

De computer als processor De computer als processor DE FYSIEKE COMPUTER Componenten van de computerconfiguratie Toetsenbord Muis Scanner Microfoon (Extern geheugen) Invoerapparaten Uitvoerapparaten Monitor Printer Plotter Luidspreker

Nadere informatie

Een mechaniekje met mogelijkheden in forth (2002) Albert Nijhof

Een mechaniekje met mogelijkheden in forth (2002) Albert Nijhof TO Een mechaniekje met mogelijkheden in forth (2002) Albert Nijhof 1. Inleiding Forth is een low-level en tegelijkertijd een high-level programmeertaal. Datawoorden zetten een adres op stack waar je vervolgens

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 2 Binaire getallen, BCD, Gray, ASCII, 7-segment Jesse op den Brouw INLDIG/205-206 Decimaal talstelsel Ons talstelsel is een zogenaamd positioneel talstelsel. Een getal

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

NCTS - INFORMATIE INZAKE NIEUWIGHEDEN VOOR 2010

NCTS - INFORMATIE INZAKE NIEUWIGHEDEN VOOR 2010 NCTS - INFORMATIE INZAKE NIEUWIGHEDEN VOOR 2010 Op basis van het nieuwe artikel 365, lid 4 (NCTS) en het nieuwe artikel 455bis, lid 4 (NCTS-TIR) van het Communautair Toepassingswetboek inzake douane 1

Nadere informatie

De Deskline configurator Advanced handleiding

De Deskline configurator Advanced handleiding De Deskline configurator Advanced handleiding Deze handleiding is voor versie 1.2.3 en hoger Zorg dat er een USB2LIN is aangesloten op de computer ( Gebruik versie 1.66 en hoger ) Zorg dat er geen andere

Nadere informatie

Een typisch programma in C en C++ bestaat uit een aantal onderdelen:

Een typisch programma in C en C++ bestaat uit een aantal onderdelen: Eerste stappen in C. Een typisch programma in C en C++ bestaat uit een aantal onderdelen: /* Alles wat op meerdere lijnen staat zoals hier is commentaar. */ // Dit is commentaar op 1 lijn. Geldig tot einde

Nadere informatie

Jörg R. Hörandel Afdeling Sterrenkunde http://particle.astro.ru.nl/goto.html?prog1516

Jörg R. Hörandel Afdeling Sterrenkunde http://particle.astro.ru.nl/goto.html?prog1516 Jörg R. Hörandel Afdeling Sterrenkunde http://particle.astro.ru.nl/goto.html?prog1516 1 Jörg R. Hörandel Afdeling Sterrenkunde http://particle.astro.ru.nl/goto.html?prog1516 2 wiskunde om 8:45 in HG00.023

Nadere informatie

IDGetter BDX118 T1121 Manual V00.00.024

IDGetter BDX118 T1121 Manual V00.00.024 XLN-t bvba Hoogstraat 52 B 2580 Putte-Beerzel Belgie - Belgium tel +32 (0) 15 24 92 43 fax +32 (0) 15 25 10 58 RPR Mechelen BTW BE 423 212 087 Bank 733-2011497-38 IDGetter BDX118 T1121 Manual V00.00.024

Nadere informatie

Digitale technieken Deeltoets II

Digitale technieken Deeltoets II Digitale technieken Deeltoets II André Deutz 11 januari, 2008 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.

Nadere informatie

Hieronder volgt een overzicht van relevante contactpersonen binnen KPN Telecom.

Hieronder volgt een overzicht van relevante contactpersonen binnen KPN Telecom. 1. Contact personen 2. Rent-a-Switch service 3. Validaties 4. Afhandeling Rent-a-Switch orders 5. Foutmeldingen 1. Contact personen Hieronder volgt een overzicht van relevante contactpersonen binnen KPN

Nadere informatie

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC Inhoud vandaag Interrupts Algemeen ARM7 AIC Interrupts Wat is een interrupt? Een interrupt is een onderbreking van de huidige bezigheden ten gevolge van een externe gebeurtenis, zodanig dat de bezigheden

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent Het relaas van de beginnende programmeur Het hoe en waarom van de assistent 1. Help, mijn code doet niks... Mogelijke oplossingen: Heb je op run geduwd (groene pijltje)? Zolang je niet op 'run' duwt, kent

Nadere informatie

Bijlage D. Binair rekenen

Bijlage D. Binair rekenen Bijlage D Binair rekenen Bits, bytes en computerwoorden Alle huidige computersystemen zijn gebaseerd op digitale logica. Elk geheugenelement kent een geladen en een niet-geladen positie. Vaak wordt dit

Nadere informatie

Pascal uitgediept Data structuren

Pascal uitgediept Data structuren Pascal uitgediept Data structuren MSX Computer & Club Magazine nummer 68-juni/juli 1994 Herman Post Scanned, ocr ed and converted to PDF by HansO, 2001 In deze aflevering wordt bekeken hoe zelf een datastructuur

Nadere informatie

S u b n e t t e n. t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000.

S u b n e t t e n. t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000. S u b n e t t e n t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000 Part 1 Inhoud Wat is een subnet?... 2 Waarom?... 3 Het begin.... 3 Een voorbeeld...

Nadere informatie

Beter, Sneller, Mooier. Processoren 27 maart 2012

Beter, Sneller, Mooier. Processoren 27 maart 2012 Beter, Sneller, Mooier Processoren 27 maart 2012 Beter! Sneller! Krach:gere CPU: microcode Snellere CPU: pipeline, out- of- order execu:on Sneller RAM: cache meer mogelijkheden... Welke extra s kan processor-

Nadere informatie

Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/2014-2015

Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/2014-2015 Microcontrollers Week 2 Opbouw ATmega32 controller, instructies Jesse op den Brouw INLMIC/2014-2015 Blokdiagram ATmega32 2 ATmega32 Features 131 instructies 32 KB Flash ROM programmageheugen 2 KB Intern

Nadere informatie

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c Een Minimaal Formalisme om te Programmeren We hebben gezien dat Turing machines beschouwd kunnen worden als universele computers. D.w.z. dat iedere berekening met natuurlijke getallen die met een computer

Nadere informatie

Lab Webdesign: Javascript 11 februari 2008

Lab Webdesign: Javascript 11 februari 2008 H2: BASISBEGRIPPEN In dit hoofdstuk zullen er enkele basisbegrippen worden behandelt PLAATSING VAN JAVASCRIPT-CODE DE SCRIPT-TAG De script-tag geeft aan dat er gebruik zal worden gemaakt van een scripttaal.

Nadere informatie

Intro S7-1200. datum: onderwerp: door: aan: dinsdag 11 juni 2013 Introductie S7-1200 onder TIA Portal Industrial Automation

Intro S7-1200. datum: onderwerp: door: aan: dinsdag 11 juni 2013 Introductie S7-1200 onder TIA Portal Industrial Automation Intro S7-1200 datum: onderwerp: door: aan: dinsdag 11 juni 2013 Introductie S7-1200 onder TIA Portal Industrial Automation Wat is TIA Portal? Noviteiten 1500 CPU ET200SP remote IO Noviteiten 1200 en 1500

Nadere informatie

Tentamen Computersystemen

Tentamen Computersystemen Tentamen Computersystemen baicosy06 2e jaar bachelor AI, 2e semester 24 september 2013 13u-15u IWO 4.04A (blauw), Academisch Medisch Centrum, Meidreef 29, Amsterdam ZuidOost Het is niet toegestaan de communicatie

Nadere informatie

Groepen, ringen en velden

Groepen, ringen en velden Groepen, ringen en velden Groep Een groep G is een verzameling van elementen en een binaire operator met volgende eigenschappen: 1. closure (gesloten): als a en b tot G behoren, doet a b dat ook. 2. associativiteit:

Nadere informatie

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

Samenvatting Computer Architectuur 2006-2007

Samenvatting Computer Architectuur 2006-2007 Controletransferinstructies = Instructies die verandering brengen in de zuiver sequentiële uitvoering van de instructies. Ze doen dit door de instructiewijzer een andere waarde te geven. Ze kunnen met

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

extra oefening algoritmiek - antwoorden

extra oefening algoritmiek - antwoorden extra oefening algoritmiek - antwoorden opgave "Formule 1" Maak een programma dat de gebruiker drie getal A, B en C in laat voeren. De gebruiker zorgt ervoor dat er positieve gehele getallen worden ingevoerd.

Nadere informatie

Maak een pivot uit een Generic.List

Maak een pivot uit een Generic.List Maak een pivot uit een Generic.List Introductie in extensions, reflection en code generation Nivo: 400 Introductie In bepaalde gevallen komt het voor dat je een Generic.List van een specifieke class hebt,

Nadere informatie

Deel 2 S7 Graph Ont4 - GA3

Deel 2 S7 Graph Ont4 - GA3 Deel 2 S7 Graph Ont4 - GA3 Deel 2 : Graph 09/05 1 Wanneer er in een installatie een sequentiële beweging geprogrammeerd moet worden is het interessant om gebruik te maken van S7 Graph. De progammastructuur

Nadere informatie

Registers & Adressering. F. Rubben, ing 2008-2010

Registers & Adressering. F. Rubben, ing 2008-2010 Registers & Adressering, ing 2008-2010 Inhoud Leerstof tot nu toe Opbouw registers Benaming registers Opbouw data Verloop programma Leerstof tot nu toe: Bouw PLC Intern Extern fabrikanten Aansluiten I/O

Nadere informatie

Gebruikershandleiding Versie 1.07

Gebruikershandleiding Versie 1.07 Gebruikershandleiding Versie 1.07 NE Copyright 2006, by DIALOC ID All rights reserved Gebruikershandleiding Chip programmer DIALOC ID reserves the right to modify the software described in this manual

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 4 Binaire optellers, tellen, vermenigvuldigen, delen Jesse op den Brouw INLDIG/25-26 Optellen Optellen is één van meest gebruikte rekenkundige operatie in digitale systemen.

Nadere informatie

Edifact / IHFN Reference guide 7/10/2004. Identificatie

Edifact / IHFN Reference guide 7/10/2004. Identificatie Identificatie Type : Documentatie Language : Edifact / InHouse File Normalised Date : 1/08/2000 Analist : TO08 - Jérôme Decasteau Inleiding Dit document is bestemd voor alle personen die de Edifact / IHFN

Nadere informatie

Les A-03 Binaire en hexadecimale getallen

Les A-03 Binaire en hexadecimale getallen Les A-03 Binaire en hexadecimale getallen In deze les wordt behandeld hoe getallen kunnen worden voorgesteld door informatie die bestaat uit reeksen 0-en en 1-en. We noemen deze informatie digitale informatie.

Nadere informatie

TCP-IP message van partner PLC naar Alarmsysteem met als inhoud alarmen en analoge waarden in Format code 01.

TCP-IP message van partner PLC naar Alarmsysteem met als inhoud alarmen en analoge waarden in Format code 01. TCP-IP message van partner PLC naar Alarmsysteem met als inhoud alarmen en analoge waarden in Format code 01. De TCP-IP buffer is een byte-array van 1000 byte lang. byte Omschrijving voorbeeld 0 TCP/IP

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

Datastructuren: stapels, rijen en binaire bomen Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)

Nadere informatie

Het koppelen van de u-remote aan de AC500-eco via Modbus TCP. A quick start guide. Jaap Ruiten

Het koppelen van de u-remote aan de AC500-eco via Modbus TCP. A quick start guide. Jaap Ruiten Het koppelen van de u-remote aan de AC500-eco via Modbus TCP. A quick start guide Jaap Ruiten Het koppelen van Weidmüller u-remote aan een AC500-eco plc. Thema: u-remote Modbus TCP Bladzijde 1 Inhoudsopgave

Nadere informatie

Hoofdstuk 7: Werken met arrays

Hoofdstuk 7: Werken met arrays Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel

Nadere informatie

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie www.arduino.cc Arduino en DDS DDS chips DDS = Direct Digital (frequency) Synthesis Output = sinusvormig signaal Maximum frequentie = ½ klokfrequentie Frequentie bepaald door tuning word Grootste fabrikant:

Nadere informatie

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015

Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015 Microcontrollers Introductie INLMIC Jesse op den Brouw INLMIC/2014-2015 Microcontroller Uit Wikipedia A microcontroller (sometimes abbreviated µc or uc) is a small computer on a single integrated circuit

Nadere informatie

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double. Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 3: Eenvoudige externe hardware & hardware programmeren in C Hardware programmeren in C Inmiddels ben je al aardig op gang gekomen met het programmeren van microcontrollers.

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Examen Operating Systemen (2R230) op vrijdag 26 augustus 2005, 14.00-17.00 uur. Het tentamen bestaat uit drie delen die apart worden

Nadere informatie

maplev 2012/5/1 15:47 page 469 #471 Procedures (vervolg)

maplev 2012/5/1 15:47 page 469 #471 Procedures (vervolg) maplev 2012/5/1 15:47 page 469 #471 Module 30 Procedures (vervolg) Onderwerp Voorkennis Expressies Procedures: Bereik van lokale variabelen, call by evaluated name, level-1-evaluatie van lokale variabelen,

Nadere informatie

Een eenvoudig algoritme om permutaties te genereren

Een eenvoudig algoritme om permutaties te genereren Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden

Nadere informatie

Digitale en analoge technieken

Digitale en analoge technieken Digitale en analoge technieken Peter Slaets February 14, 2006 Peter Slaets () Digitale en analoge technieken February 14, 2006 1 / 33 Computerarchitectuur 1 Processors 2 Primair geheugen 3 Secundair geheugen

Nadere informatie

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden.

Uitleg. Welkom bij de Beverwedstrijd 2006. Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Uitleg Welkom bij de Beverwedstrijd 2006 Je krijgt 15 vragen, die je in maximaal 45 minuten moet beantwoorden. Je krijgt 5 vragen van niveau A, 5 vragen van niveau B en 5 vragen van niveau C. Wij denken

Nadere informatie

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster 4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens

Nadere informatie

Software 1. php mysql. bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar 2010-2011 semester 1

Software 1. php mysql. bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar 2010-2011 semester 1 Software 1 php mysql bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar 2010-2011 semester 1 Alain Simons alain.simons@artesis.be Basis php 1. Introductie 2.

Nadere informatie

Lab Webdesign: Javascript 11 februari 2008

Lab Webdesign: Javascript 11 februari 2008 H3: HERHALINGSLUSSEN EN LOGICA Om de voorbeelden niet nodeloos lang te maken, zullen we in het vervolg niet altijd de SCRIPT-tags en de HTML-commentaarregels herhalen. Om de JavaScript-opdrachten --de

Nadere informatie

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10

HOGESCHOOL VAN AMSTERDAM Informatica Opleiding. CPP 1 van 10 CPP 1 van 10 ADSdt 1-2009 TENTAMENVOORBLAD Voor aanvang van het tentamen s.v.p. de tentamengegevens goed doorlezen om eventuele misverstanden te voorkomen!! Naam student : Studentnummer : Groep : Studieonderdeel

Nadere informatie

Software Reverse Engineering. Jacco Krijnen

Software Reverse Engineering. Jacco Krijnen Software Reverse Engineering Jacco Krijnen Opbouw Inleiding en definitie Techniek Assemblers/Disassemblers Compilers/Decompilers Toepassingen Security Overige Softwarebeveiliging Piracy Anti RE technieken

Nadere informatie

Activiteit 1. Tel de punten Binaire Getallen. Samenvatting. Kerndoelen. Vaardigheden. Leeftijd. Materiaal

Activiteit 1. Tel de punten Binaire Getallen. Samenvatting. Kerndoelen. Vaardigheden. Leeftijd. Materiaal Activiteit 1 Tel de punten Binaire Getallen Samenvatting Data in de computer worden opgeslagen als een serie van nullen en enen. Hoe kunnen we woorden en getallen weergeven met alleen deze twee symbolen?

Nadere informatie

Wat is Arduino? Arduino = microprocessor (Atmel)

Wat is Arduino? Arduino = microprocessor (Atmel) Intro tot Arduino Wat is Arduino? Volgens de website: Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers,

Nadere informatie

Formulieren maken met Dreamweaver CS 4/CS 5

Formulieren maken met Dreamweaver CS 4/CS 5 Formulieren maken met Dreamweaver CS 4/CS 5 In deze handleiding leer je om een formulier en elementen die je binnen een formulier kunt gebruiken, te ontwerpen met Dreamweaver. Het uitgangspunt is dat dit

Nadere informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk

Nadere informatie

Hoofdstuk 2. De Von Neumann-architectuur

Hoofdstuk 2. De Von Neumann-architectuur Input Interface Output Interface Informatica Deel III Hoofdstuk 2 De Von Neumann-architectuur 2.1. Organisatie. De overgrote meerderheid der digitale computers zijn georganiseerd zoals weergegeven in fig.

Nadere informatie

ASRemote WebService. Via deze webservice kunt u:

ASRemote WebService. Via deze webservice kunt u: ASRemote WebService De ASRemote WebService is een SOAP Webservice die softwarematige communicatie met Exact Globe mogelijk maakt vanaf een willekeurige locatie op het internet. Via deze webservice kunt

Nadere informatie

Toelichting op modbus-koppeling van Robur toestellen en frames

Toelichting op modbus-koppeling van Robur toestellen en frames Toelichting op modbus-koppeling van Robur toestellen en frames Dit document beschrijft de achtergrondinformatie en belangrijkste adressen voor de modbus-koppeling van Robur warmtepompen en koelmachines

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class

Nadere informatie

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester. In onderstaande oefeningen zijn kleuren gebruikt. Deze dienen aleen om de structuren makkelijker terug te kunnen herkennen. Ze worden niet standaard zo gebruikt. De dunne rood/roze balken zijn ook geen

Nadere informatie

Wat is een busverbinding?

Wat is een busverbinding? Wat is een busverbinding? gemeenschappelijke verbinding tussen CPU, geheugen en I/O-schakelingen onderscheid tussen: databus/adresbus/controlbus intern/extern serieel/parallel unidirectioneel/bidirectioneel

Nadere informatie

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003 SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets

Nadere informatie

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces.

Hoofdstuk 1: Inleiding. Hoofdstuk 2: Klassen en objecten Datahiding: afschermen van implementatiedetails. Naar de buitenwereld toe enkel interfaces. Hoofdstuk 1: Inleiding Objectoriëntatie: 1. Objecten & klassen: samenwerking van componenten om bepaald doel te bereiken; herbruikbaarheid. 2. Encapsulation: afschermen gedragingen en kenmerken van de

Nadere informatie

NL MIG Base Set. Toelichting voorgestelde versie 1.0 NPDM

NL MIG Base Set. Toelichting voorgestelde versie 1.0 NPDM NL MIG Base Set Toelichting voorgestelde versie 1.0 Wat is gewijzigd? Aandachtspunten uit vorige bijeenkomst verwerkt Verder uitgewerkt i.s.m. Douane waarbij ook MSW is meegenomen: General Introduction

Nadere informatie

Zelftest Programmeren in Java

Zelftest Programmeren in Java Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test

Nadere informatie