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.

Handleiding voor gebruik intel's ontwikkelingsysteem in 8086 mode Ree, de, J.W.

Handleiding voor gebruik intel's ontwikkelingsysteem in 8086 mode Ree, de, J.W. Handleiding voor gebruik intel's ontwikkelingsysteem in 8086 mode Ree, de, J.W. Gepubliceerd: 01/01/1984 Document Version Uitgevers PDF, ook bekend als Version of Record Please check the document version

Nadere informatie

Linux Assembly Uitwerkingen van de vragen en opdrachten

Linux Assembly Uitwerkingen van de vragen en opdrachten Linux Assembly Uitwerkingen van de vragen en opdrachten The choice of a GNU generation Hoofdstuk 3 1. (a) Een system call is een functie geleverd door de kernel (het operating system, een interface tussen

Nadere informatie

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

Computerarchitectuur en netwerken. Memory management Assembler programmering

Computerarchitectuur en netwerken. Memory management Assembler programmering Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 10 september 2018 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management

Nadere informatie

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

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets) TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Nadere informatie

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets) TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (Opm: de onderstreepte opgaven zijn geschikt voor de tussentoets)

Nadere informatie

Assembly en Assemblers. Processoren 5 januari 2015

Assembly en Assemblers. Processoren 5 januari 2015 Assembly en Assemblers Processoren 5 januari 2015 Doel van vandaag Ik heb al losse eindjes over assembly verteld en een voorbeeldprogramma doorlopen. vandaag: algemeen + systematisch overzicht Programmeertalen

Nadere informatie

Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen

Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen Memory Management Process control information Entry point to program Process Control Block Verdelen geheugen over meerdere processen Program Branch instruction Virtual Memory Data Reference to data Processen

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

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

Een korte samenvatting van enkele FORTRAN opdrachten

Een korte samenvatting van enkele FORTRAN opdrachten Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5

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

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object. een symbolische naam voor een object. Variabelen Constanten Variabelen Expressies naam : geeft de plaats in het geheugen aan waarde : de inhoud van het object identifier : een rij van letters en/of cijfers

Nadere informatie

Digitale technieken Microprocessoren

Digitale technieken Microprocessoren Digitale technieken Microprocessoren ir. Patrick Colleman Inhoudstafel Inhoudstafel. Afkortingen. Inleiding - voorwoord 1 Hoofdstuk 1 : Voorstelling van getallen en karakters. 2 1.1 Voorstelling van binaire

Nadere informatie

Tentamen Computersystemen

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

Nadere informatie

scc = b) CD AB

scc = b) CD AB Computerarchitectuur en -organisatie (213030) Dinsdag 21 januari 2040, 13.30 17.00 uur 7 bladzijden met 8 opgaven 4 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam,

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

Computerarchitectuur en netwerken. Memory management Assembler programmering

Computerarchitectuur en netwerken. Memory management Assembler programmering Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 12 september 2016 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management

Nadere informatie

Hoofdstuk 7. Computerarchitectuur

Hoofdstuk 7. Computerarchitectuur Hoofdstuk 7 Computerarchitectuur 1 controlebus CPU MEMORY I/O databus adresbus Figuur 71 Schematische opbouw van een computersysteem 8 Figuur 72 Een busverbinding Buslijn Out E A In Out E B In Out E C

Nadere informatie

Bouwstenen voor PSE. Datatypes en Datastructuren

Bouwstenen voor PSE. Datatypes en Datastructuren Bouwstenen voor PSE Datatypes en Datastructuren Definitie Datatype Klasse van dataobjecten tesamen met operaties om ze te construeren, te manipuleren en te verwijderen. Een datatype omvat een specificatie

Nadere informatie

n o F o r t h voor MSP430 Launchpad 1. Memory map Er zijn twee ROM gebieden (alle getallen zijn hex): , verdeeld in vier blokken van 40

n o F o r t h voor MSP430 Launchpad 1. Memory map Er zijn twee ROM gebieden (alle getallen zijn hex): , verdeeld in vier blokken van 40 n o F o r t h voor MSP430 Launchpad Albert Nijhof & Willem Ouwerkerk (29aug2012) 1. Memory map Er zijn twee ROM gebieden (alle getallen zijn hex): 1000-1100, verdeeld in vier blokken van 40 1000-1040 INFOD

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

Tentamen Computersystemen

Tentamen Computersystemen Tentamen Computersystemen baicosy6 2e jaar bachelor AI, 2e semester 21 oktober 213, 9u-11u OMHP D.9 vraag 1 Van een Single Cycle Harvard machine hebben de componenten de volgende propagation delay time:

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

Microcontrollers Week 4 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Microcontrollers Week 4 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/ Microcontrollers Week 4 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/2018-2019 Week 3 Lussen Ontdenderen Stack Parameteroverdracht 2 Wachtlussen In een programma willen

Nadere informatie

Lab Webdesign: Javascript 3 maart 2008

Lab Webdesign: Javascript 3 maart 2008 H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen

Nadere informatie

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14

Python. Vraag 1: Expressies en types. Vraag 1 b: Types -Ingebouwde functies- Vraag 1 a 3/10/14 Python Vraag 1: Expressies en types Integrated Development Environment (IDE): Ø Wing 101 (gratis te downloaden op www.wingware.com) Oefeningen in de shell >> noemen we de prompt Python commando s = expressies

Nadere informatie

VBA voor Doe het Zelvers deel 20

VBA voor Doe het Zelvers deel 20 VBA voor Doe het Zelvers deel 20 Handleiding van Auteur: leofact Augustus 2015 handleiding: VBA voor Doe het Zelvers deel 20 Vorige aflevering In het vorige deel werd besproken hoe je de structuur en vensteropbouw

Nadere informatie

Interne voorstelling. types en conversies. Binaire en andere talstelsels. Voorstelling van gegevens: bits en bytes

Interne voorstelling. types en conversies. Binaire en andere talstelsels. Voorstelling van gegevens: bits en bytes Interne voorstelling types en conversies Het geheugen wordt ingedeeld in een aantal gebieden van gelijke grootte. Een gebied van 8 bits noemt men een byte (nible een groep van bits). Een (computer)woord

Nadere informatie

Computerarchitectuur. H&P Appendix A: Instruction Set Principles

Computerarchitectuur. H&P Appendix A: Instruction Set Principles Computerarchitectuur H&P Appendix A: Instruction Set Principles Kristian Rietveld http://ca.liacs.nl/ Instruction Sets Een processor moet precies worden verteld wat deze moet doen. Dit staat opgeschreven

Nadere informatie

Computertechniek vorige examens

Computertechniek vorige examens Computertechniek vorige examens Examen 2009 Groep 1 1. Geef de 2 manieren waarop de adressen van de I/O-module in de adresruimte geïntegreerd kunnen zijn. (memory-mapped en isolated dus) 2. Wat is post-indexering?

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

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

Niet-numerieke data-types

Niet-numerieke data-types Intern wordt een karakter voorgesteld als een rij van acht bits, Niet-numerieke data-types string de letter a 01100001 0110 0001 0x61 97 Bij interpretatie van de inhoud van een byte als een geheel getal,

Nadere informatie

11011 Processor MMI Intro. Binaire representatie. Computer: Logische opbouw (Von Neumann) 3-input 1-hot detector.

11011 Processor MMI Intro. Binaire representatie. Computer: Logische opbouw (Von Neumann) 3-input 1-hot detector. NOT NOT NOT NOT NOT NOT 9-09-7 Intro MMI The Digital World 2 Peter van Kranenburg Vandaag: Terugblik vorige week Werking CPU Soorten instructies Werking CPU Cache Pipelining Digitale representatie Tekst

Nadere informatie

Beter, Sneller, Mooier. Processoren 12 januari 2015

Beter, Sneller, Mooier. Processoren 12 januari 2015 Beter, Sneller, Mooier Processoren 12 januari 2015 Beter! Sneller! Krachtigere CPU: maak instructies die meer doen Snellere CPU: pipeline, out-of-order execution Sneller RAM: cache meer mogelijkheden...

Nadere informatie

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014

von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 von-neumann-architectuur Opbouw van een CPU Processoren 1 december 2014 Herhaling: Booleaanse algebra (B = {0,1},., +, ) Elke Booleaanse functie f: B n B m kan met., +, geschreven worden Met Gates (electronische

Nadere informatie

ROM en RAM in een ROMforth

ROM en RAM in een ROMforth Albert Nijhof 24/06/2016 ROM en RAM in een ROMforth Vragen Twee HERE's? Voor een forth die in (Flash)ROM compileert is het uitgangspunt dat programmacode en onveranderlijke data naar ROM gaan en veranderbare

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

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin: Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de

Nadere informatie

Computerarchitectuur. H&P Appendix A: Instruction Set Principles

Computerarchitectuur. H&P Appendix A: Instruction Set Principles Computerarchitectuur H&P Appendix A: Instruction Set Principles Kristian Rietveld http://ca.liacs.nl/ Instruction Sets Een processor moet precies worden verteld wat deze moet doen. Dit staat opgeschreven

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

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

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

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

Muziek. Muziek. Analoog rekenen. Hoofdstuk 1: Van analoog naar digitaal. Analoog. Digitaal. Analoog. Gebruik makend van fysische grootheden Cf Babbage

Muziek. Muziek. Analoog rekenen. Hoofdstuk 1: Van analoog naar digitaal. Analoog. Digitaal. Analoog. Gebruik makend van fysische grootheden Cf Babbage Analoog rekenen Gebruik makend van fysische grootheden Cf Babbage Analoge electronica http://www.chem.uoa.gr/applets/appletopamps/appl_opamps2.html Hoofdstuk : Van analoog naar digitaal De rekenlat of

Nadere informatie

Computerarchitectuur en netwerken Toets 1 4 okt

Computerarchitectuur en netwerken Toets 1 4 okt 11.00 13.00 De open vragen moet je beantwoorden op tentamenpapier. De multiple-choice antwoorden moet je op het vragenblad invullen in de rechtervakjes en dat blad inleveren. Schrijf je naam, studentnummer

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

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? Hoofdstuk 3: Processen: Beschrijving en Besturing Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? 1 Wat is een proces? Een proces is een programma in uitvoering

Nadere informatie

PYTHON REEKS 1: BASICS. Mathias Polfliet

PYTHON REEKS 1: BASICS. Mathias Polfliet PYTHON REEKS 1: BASICS Mathias Polfliet mpolflie@etrovub.be EENVOUDIGE REKENMACHINE 2 soorten getallen Getallen Z -> integers (gehele getallen) Getallen R -> floating points (reële getallen) Door beperkte

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

De Arduino-microcontroller in de motorvoertuigentechniek (2)

De Arduino-microcontroller in de motorvoertuigentechniek (2) De Arduino-microcontroller in de motorvoertuigentechniek (2) E. Gernaat (ISBN 978-90-79302-11-6) 1 Procescomputer 1.1 Microprocessoren algemeen De informatie-verwerking zoals is behandeld, is vrijwel geheel

Nadere informatie

Query SQL Boekje. Fredrik Hamer

Query SQL Boekje. Fredrik Hamer Query SQL Boekje Query SQL Boekje Fredrik Hamer Schrijver: Fredrik Hamer Coverontwerp: Fredrik Hamer ISBN: 9789402162103 Fredrik Hamer Inhoudsopgave A. Aanhef bepalen 17 Aantal 18 Aantal dagen tussen

Nadere informatie

2 Algemene opbouw van een computersysteem

2 Algemene opbouw van een computersysteem Procescomputer E. Gernaat 1 Microprocessoren algemeen Informatie-verwerking zoals behandeld is momenteel vrijwel geheel overgenomen door microprocessoren. Wanneer we voortborduren op het idee van combinatorische

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

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2)

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2) De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (2) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012

Nadere informatie

ALGORITMIEK: answers exercise class 7

ALGORITMIEK: answers exercise class 7 Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord

Nadere informatie

6.2 VBA Syntax. Inleiding Visual Basic

6.2 VBA Syntax. Inleiding Visual Basic 6.2 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik op Maken Macro s en Code -

Nadere informatie

DE INTERACTIEVE SHELL

DE INTERACTIEVE SHELL Hoofdstuk2 De interactieve shell 6 Hoofdstuk 2 DE INTERACTIEVE SHELL In dit hoofdstuk behandelen we: Integers (gehele getallen) en getallen met drijvende komma Expressies Waarden Operatoren Het evalueren

Nadere informatie

Let op dat de scoping regels gerespecteerd blijven; het volgende voorbeeld mag geen fout melden.

Let op dat de scoping regels gerespecteerd blijven; het volgende voorbeeld mag geen fout melden. Vrije Universiteit Brussel Faculteit Wetenschappen Vakgroep Computerwetenschappen Academiejaar 2009 2010: tweede examenzittijd Interpretatie van Computerprogrammaʼs I schriftelijke test Voorafgaandelijk:

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

Herman Post MSX Computer & Club Magazine nummer 71 - november Scanned, ocr ed and converted to PDF by HansO, 2001

Herman Post MSX Computer & Club Magazine nummer 71 - november Scanned, ocr ed and converted to PDF by HansO, 2001 Pascal uitgediept Compiler aanwijzigingen Herman Post MSX Computer & Club Magazine nummer 71 - november 1994 Scanned, ocr ed and converted to PDF by HansO, 2001 Deze keer gaat de rubriek wel heel erg diep.

Nadere informatie

Hoofdstuk 9. Hashing

Hoofdstuk 9. Hashing Hoofdstuk 9 Hashing Het zoeken in een verzameling van één object is in deze cursus al verschillende malen aan bod gekomen. In hoofdstuk 2 werd uitgelegd hoe men een object kan zoeken in een array die veel

Nadere informatie

Java virtuele machine JVM

Java virtuele machine JVM Implementatie Java Java virtuele machine JVM Java programma vertaald naar byte code instructies Byte code instructies uitgevoerd door JVM JVM is processor architectuur kan in principe in hardware worden

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

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

scc =!F3.!F2 b) CD AB

scc =!F3.!F2 b) CD AB Computerarchitectuur en -organisatie (213030) Dinsdag 21 januari 2040, 13.30 17.00 uur 7 bladzijden met 8 opgaven 4 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam,

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

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica

6,1. Samenvatting door een scholier 1809 woorden 28 oktober keer beoordeeld. Informatica Samenvatting door een scholier 1809 woorden 28 oktober 2005 6,1 16 keer beoordeeld Vak Methode Informatica Turing informatica samenvatting. hst3: algoritme:een beschrijving van stappen die gedaan moeten

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

int main() { int m; m = power(2,3) /* berekent 2^3 en geeft de resultaat naar m terug */ }

int main() { int m; m = power(2,3) /* berekent 2^3 en geeft de resultaat naar m terug */ } 1 Functies ( ) voorbeeld: int power(int base, int n) int i, p; p = 1; for ( i=1, i

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

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

Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers

Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers Week 2 : Hoofdstukken 2 en 6; extra stof: inleiding pointers Hoofdstuk 6: Beslissingen: if-statement en switch-statement. Inleiding: Condities zijn waar (true) of onwaar (false) In C staat het int-getal

Nadere informatie

Small Basic Programmeren Text Console 2

Small Basic Programmeren Text Console 2 Oefening 1: Hoogste getal Je leest een reeks positieve gehele getallen in totdat je het getal 0 (nul) invoert. Daarna stopt de invoer en druk je een regel af met het hoogste getal uit de reeks. Voorbeeld:

Nadere informatie

Module 4 Hoofdstuk 1. Programmeertalen

Module 4 Hoofdstuk 1. Programmeertalen Module 4 Hoofdstuk 1 Programmeertalen Programmeertalen Een programmeertaal is een taal waarin de opdrachten worden geschreven die een computer moet uitvoeren Reeksen van die opdrachten of instructies vormen

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

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur Tentamen 17 augustus 2000 Opgaven - 1 - Computerarchitectuur Tentamen Computerarchitectuur (213005) 17 augustus 2000 2 bladzijden met 5 opgaven 3 antwoordbladen Het raadplegen van boeken, diktaten of aantekeningen

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

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

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

Een gelinkte lijst in C#

Een gelinkte lijst in C# Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk

Nadere informatie

Geheugen onder DOS2 MSX turbor

Geheugen onder DOS2 MSX turbor Geheugen onder DOS2 MSX turbor MSX Computer & Club Magazine nummer 77 - juli / augustus 1995 Alex Wulms Scanned, ocr ed and converted to PDF by HansO, 2001 Deze keer maak ik een uitstapje naar het aansturen

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

Tentamen Computerorganisatie 28 augustus 1998, uur. N.B.: Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 11

Tentamen Computerorganisatie 28 augustus 1998, uur. N.B.: Dit tentamen bestaat uit 30 opgaven Totaal aantal bladzijden: 11 TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Subfaculteit Technische Wiskunde en Informatica Werkeenheid Technische Informatica Tentamen Computerorganisatie 28 augustus 1998,

Nadere informatie

Stacks and queues. Hoofdstuk 6

Stacks and queues. Hoofdstuk 6 Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked

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

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse

Objective-C Basis. 23 april 2005, Eindhoven Patrick Machielse Objective-C Basis 23 april 2005, Eindhoven Patrick Machielse patrick@hieper.nl Algemeen // extensies Objective-C code in bestanden met.m extensie // commentaar moet! /* Alles hiertussen wordt genegeerd

Nadere informatie

4,7. Praktische-opdracht door een scholier 1959 woorden 1 juni keer beoordeeld

4,7. Praktische-opdracht door een scholier 1959 woorden 1 juni keer beoordeeld Praktische-opdracht door een scholier 1959 woorden 1 juni 2001 4,7 331 keer beoordeeld Vak Wiskunde Tientallig stelsel In een tientallig stelsel heb je de getallen 0 t/m 9 tot je beschikking. Zoals je

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

De Arduino-microcontroller in de motorvoertuigentechniek (8)

De Arduino-microcontroller in de motorvoertuigentechniek (8) De Arduino-microcontroller in de motorvoertuigentechniek (8) E. Gernaat (ISBN 978-90-79302-11-6) 1 Assembly (Assembleertaal) 1.1 Inleiding De Arduino kan ook in assembleertaal (assembly) worden geprogrammeerd.

Nadere informatie

Antwoorden zijn afgedrukt!!!!!!!

Antwoorden zijn afgedrukt!!!!!!! Computerorganisatie INF/TEL (233) februari 2, 9. 2.3 uur 8 bladzijden met 9 opgaven 3 bladzijden met documentatie Let op: Vul het tentamenbriefje volledig in (d.w.z. naam, studentnummer, naam vak, vakcode,

Nadere informatie

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. 6.3 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik in het groepsvak Macro op

Nadere informatie

Stapelgeheugen. Processoren 6 maart 2012

Stapelgeheugen. Processoren 6 maart 2012 Stapelgeheugen Processoren 6 maart 2012 Programma van komende week 7 maart 8.45: extra vragenuur over HADES 13 maart 8.45: hoorcollege vervalt, maar werkcolleges vinden plaats. Stapelgeheugen Tanenbaum

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW: 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

Zelftest Programmeren in COBOL - deel I

Zelftest Programmeren in COBOL - deel I Zelftest Programmeren in CBL - deel I Document: n1290test.fm 05/01/2016 ABIS Training & Consulting P.. Box 220 B-3000 Leuven Belgium TRAINING & CNSULTING INLEIDING BIJ DE ZELFTEST PRGRAMMEREN IN CBL -

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

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