Assembly & Embedded Systems

Maat: px
Weergave met pagina beginnen:

Download "Assembly & Embedded Systems"

Transcriptie

1 Assembly & Embedded Systems Hoofdstuk 1 Digitale Techniek Analoog Zonder tussenstappen, continu Digitaal Met tussenstappen, in discrete stappen opgedeeld, niet-continu Binair Een digitaal signaal met slechts twee toestanden, aan/uit Bit Element dat slechts twee toestanden kent, afk. Binary Digit Boolean Kleinste eenheid van gegevens (ofwel een bit) Nibble Groep van 4 bits, 2^4 = 16 toestanden mogelijk Byte Word Groep van 8 bits, 2^8 = 265 toestanden mogelijk SI-prefix Een omschrijving van een eenheid die de veelvoud ervan weergeeft (k, M, G, T), veelvoud van 1000 Binary-prefix 2^10 = > k (ipv 1000) Logische poort AND, OR, XOR, NOT Waarheidstabel Tabel die op basis van de input(s) van een logische poort de output weergeeft Booleaanse algebra Vereenvoudigen van logische schakelingen (zie boek) Wetten van De Morgan Zie boek Combinatorische logica Logische functie waarbij dezelfde combinatie van ingangssignalen altijd hetzelfde uitgangssignaal tot gevolg heef (geen geheugen) Sequentiële logica Logische schakelingen met een geheugen-functie (flip-flop) (zie boek)

2 Transistor Elektronische schakelaar (sinds 1947) begin van IC (Integrated Circuit) tijdperk Microprocessor MPU is in staat om een instructie uit te voeren en bestaat uit signaallijnen die alleen uitgang (adreslijnen) kunnen zijn en signaallijnen die zowel ingang als uitgang (datalijnen) kunnen zijn. Een processor bestaat uit een aantal logische blokken waarbij de verbinding (bedrading) wordt bepaald door de instructie van dat moment. De databus is de enige interface. De functionaliteit is beperkt tot het uitvoeren van instructies en het gebruiken van de databus. Voor alle andere functionaliteit zijn andere IC s aanwezig. Een microprocessor benadert een IC dmv de databus. Het IC heeft een bepaald adresgebied waar de registers van het IC beschikbaar zijn. De microprocessor leest, schrijft van/naar locaties in dit gebied om met het IC te communiceren. Elk IC heeft een ander adresgebied (memorymap, zie HS4). De microprocessor beheert de adreslijnen (busmaster, zie HS4) Central Processing Unit CPU verwerkt opdrachten, is het hart van elk computersysteem en voert programma s uit. Microcontroller MCU is een microprocessor uitgebreid met andere functies (intern geheugen, timers, I/O poorten). De databus is hierbij intern aanwezig en soms ook naar buiten uitgevoerd zodat extra chips op de databus aangesloten kunnen worden. Vaak is er ook RAM/ROM geintegreerd. Arithmethic Logic Unit / Uitvoeringseenheid ALU voert logische en rekenkundige bewerkingen uit en is het belangrijkste onderdeel van een CPU Accumulator (Register AX) Het resultaat van een logische/rekenkundige bewerking wordt vaan in het Universeel (accumulator) register (geheugenelement) weggeschreven. Vlagregister Gegevens over het resultaat van een bewerking worden in het vlagregister gezet (resultaat nul of negatief) Instructiewijzer Na uitvoeren van een instructie wordt de inhoud van het instructiewijzerregister gewijzigd zodat een nieuwe instructie kan worden uitgevoerd (instruction pointer, program counter) Instruction code De bitpatronen die een instructie voorstellen opgebouwd uit de operation code (opcode) en eventueel een parameter Machinetaal = instruction code Instruction set Verzameling instructies die kan verschillen per processorfamily Mnemonic Een korte beschrijving van een instructiecode zodat deze begrijpelijk wordt (ezelsbruggetje)

3 Assembler Vertaalt mnemonics naar instructiecode. Naast bitpatronen kunnen ook getallen gebruikt worden. Geheugenlocaties kunnen aangegeven worden met een naam ipv een nummer Assembleertaal Groep regels met als doel (mbv mnemonics) de instructies van een machine vast te leggen

4 Hoofdstuk 2 Talstelsels Cijfer Teken, bijvoorbeeld 5 Getal Geeft een waarde weer Grondtal (radix) Geeft de hoeveelheid cijfers weer die in een talstelsel zijn gedefinieerd (bijv. 10, 8, 2) Hexadecimaal 16 als grondtal. 0 t/m 9 en A tm F. Een 0x voor het getal of een h achter het getal geeft aan dat het een HEX getal betreft Carry-bit Hoogste (niet passende) bit wordt doorgeefbit genoemd. Is die bit 1 dan heeft er een overflow plaatsgevonden Unsigned overflow Het resultaat is positief en het carry bit valt buiten het register. Wordt aangegeven dmv carry-bit in vlagregister Unsigned underflow Het resultaat is negatief en er is geen borrow-bit beschikbaar. Wordt aangegeven dmv carry-bit in vlagregister Tekengroottenotatie (sign-magnitude) Hierbij geeft het meest linker bit (tekenbit / signbit) het teken aan (positief of negatief) 1,0. Hierbij bestaat een positieve 0 en een negatieve 0 (eencomplementsnotatie) Tweecomplementsnotatie Inverteer de binaire waarde en tel daar 1 bij op. (1x 0) Zie Vossebeld Eencomplementsnotatie Inverteer de binaire waarde (2x 0) Zie Vossebeld MSB Most Significant bit. (bij 0x3A8134E0 is het MSB 0x3A) LSB Least Significant bit (bij 0x3A8134E0 is het MSB 0xE0)

5 Big Endian De MSB wordt naar de eerste geheugenlocatie geschreven en alle volgende bytes worden op eenvolgende geheugenlocaties geplaatst 0x MSB: 0x12 0x00FF 0x0100 0x0101 0x0102 0x0103 0x0104 (Geheugenlocatie) 0x?? 0x12 0x34 0x56 0x78 0x?? (Data) Little Endian De bytes worden in omgekeerde volgorde in het geheugen geplaatst 0x MSB: 0x12 0x00FF 0x0100 0x0101 0x0102 0x0103 0x0104 (Geheugenlocatie) 0x?? 0x78 0x56 0x34 0x12 0x?? (Data) Integer Gehele getallen. Er is geen komma aanwezig Fixed Point-notatie Komma staat op een vaste plaats. Bij bewerkingen op heel grote of kleine getallen schieten integers en de fixedpointnotatie tekort. De getalbreedte is te klein. Floating point Wetenschappelijke notatie met het grondtal 2. Bij berekeningen wordt afgerond Binary Code Decimal Bij een BCD wordt een decimaal getal in 4 bits voorgesteld waarbij de combinaties lopen van 0000b tot en met 1001b. Alle hogere combinaties zijn ongeldig. Er is geen tekenbit aanwezig ASCII Tekenset waarin tekens aan een getal verbonden worden bijv. 97 = a en 98 = b Gray-Code Binaire notatie waarbij bij twee opeenvolgende getallen slechts een bit verandert. (zie boek p2.12)

6 Hoofdstuk 3 Assemblers en compilers Computerprogramma (uitvoerbaar bestand / executable) Een programma beschijft in welke volgorde instructies uitgevoerd moeten worden Programmeertaal Gedefinieerde manier om computers opdrachten te geven Vocabulair Voorgedefinieerde woorden of symbolen Semantiek De betekenis van woorden en symbolen Syntaxis De regels voor structuur (zinsbouw) Low-Level programmeertaal Talen die dicht bij de hardware staan Assembleertaal High-Level programmeertaal Een abstractielaag schermt de eigenschappen van de microprocessor af Vb. C, C#, Java, VB en C++ Entry Point Beginpunt geeft aan waar de functionaliteit begint (afhankelijk van de context) Adres meestal 0x0 Interpreter Een computerprogramme die een regel van een High-Level-programma leest, vertaalt (interpret) en uitvoert (CMD voor DOS en BASH voor Linux) Compiler Vertaalt een high-level programma naar machinetaal en bewaart het resultaat Cross-Compiler Het platform van het te compileren programma heeft een ander doelplatform (processorfamilie) JIT-Compilers Just In Time, Java,.NET, Perl, De broncode wordt vlak voor de uitvoer gecompileerd. Niet regel voor regel (zoals een interpreter) maar in grote blokken. Deze blokken kunnen op schijf bewaard worden en later hergebruikt. Een JIT heeft de flexibiliteit van een interpreter als de snelheid van een compiler Assembler (Assembly Compiler) De vertaler van een assembleertaalprogramma naar machinecode (MASM, NASM, TASM) Disassembler Machinecode wordt omgezet naar een assembleertaalprogramma

7 Compile Time Beslissingen die genomen worden gedurende het compileren. Deze beslissingen zijn terug te vinden in de executable Run Time Als een beslissing tijdens het lopen (runnen) wordt genoemd First Generation programmeertalen Machinecode (enen en nullen) Second Generation (2GL) programmeertalen Mnemonics (bij assembleertaal neemt de assembler de vertaling voor zijn rekening) Third Generation (3GL) programmeertalen Structured Language programmeertalen.blokken met statements (IF, THEN...) BASIC, C, C++, C#, Java, Javascript, Perl 4GL / 5GL De processor wordt niet meer verteld hoe een programma uitgevoerd moet worden maar wat het eindresultaat moet zijn. De compiler vertaalt deze randvoorwaarden naar een set van algoritmen voor de microprocessor. De bouwstenen waarmee geprogrammeerd wordt zijn algoritmen. Vb. SQL en Visual Basic

8 Overzicht algemene instructieset MOV Move, instructie verplaatst gegevens tussen registers en geheugenadressen Om een waarde van een adres in het geheugen naar een ander adres in het geheugen te verplaatsen zijn twee MOV-instructies nodig, van het adres in het geheugen naar het register en van het register naar het adres in het geheugen ADD, SUB, INC, DEC, DIV, MUL (rekenkundige instructies) Add, subtract, increment, decrement, divide, multiply AND, OR, XOR, NOT (Logische instructies) (tweecomplementnegatie-instructie NEG) Standaard logische operatoren JZ, JC (Programmacontrole-instructies) De JZ en JC instructies gebruiken de zero- en carry-flag uit het vlagregister. JAE (Jump Above or Equal) gebruikt de groottenotatie JGE (Jump Greater or Equal) gebruikt de tweecomplementnotatie JMP (Jump) Maakt een onvoorwaardelijke sprong CALL (Call) Maakt een sprong om elders door te gaan het het uitvoeren van instructies Preprocessor en Directives Macro Een programma kan bestaan uit veel instructies. Vaak vervullen een paar instructies een functie die vaak gebruikt wordt. Dit groepje instructies kan in een macro worden opgenomen. Preprocessor Het computerprogramma dat alle macro s verwerkt en het tijdelijke bestand maakt. De meeste assemblers hebben een preprocessor Conditioneel assembleren Een veel toegepaste mogelijkheid van de preprocessor. Als een conditie waar is worden de instructies na de conditie in het tijdelijke bestand geplaatst en door de assembler vertaald. Als de conditie niet waar is worden de instructies vaak als commentaar in het tijdelijke bestand geplaatst. Directives Aanwijzingen die het gedrag van de assembler beinvloeden. Bepalend voor de manier waarop een assembleerprogramma vertaald wordt. Label Symbolische naam dat wijst naar een geheugenadres. Worden gebruikt bij programma-controle instructies Pseudo-instructies Deze instructies hebben hetzelfde formaat als echte instructies. Ze komen niet overeen met een machine-instructie. Er wordt hiervoor dan ook geen code gegenereerd. In plaats van code-generatie reserveert de pseudoinstructie geheugen voor toekenning van gegevens. In een programma kan een label vervolgens naar het betreffende geheugenadres

9 Syntaxis (#2) Een programma bestaat uit regels. Een regel bevat een instructie, een pseudo-instructie, een macro of een directive. Een regel bestaat uit drie elementen: Label: instructie ;commentaar Elk van deze elementen mag weggelaten worden. Het belangrijkste deel is de instructie met de operanden Twee veelgebruikte syntaxissen: Intel-syntax De eerste parameter is het doel en de tweede parameter de bron. De getalbreedte wordt door parameters aangegeven Add eax, 4 Mov al, byte ptr foo AT&T-syntax De eerste parameter is de bron en de tweede parameter het doel. De getalbreedte wordt in de instructie-mnemonic vermeld Addl Movb $4, %eax foo, %al Backus-Naur Form notatie (BNF) De BNF-notatie gebruikt substitutieregels, producties om een taal vast te leggen. Een productie geeft aan waarmee een symbool vervangen mag worden. (boek 3.13) Source file Bronbestand (bij assemblers vaak met extensie.asm). Bevat regels met instructies, pseudoinstructies, directives en macro s Header file Dit bestand definieert de interface en wordt in de kop van een source-file door de preprocessor ingelezen (bestandsextensie.inc / include). Hierin worden veel macro s gedefinieerd. Ook wordt dmv directives aangegeven dat bepaalde functionaliteit extern beschikbaar is Object file De meeste assemblers produceren deze niet uitvoerbare bestanden (machinecode). (coff en elf). De output kan met een HEX editor bekeken worden Linker Een computerprogramma dat ervoor zorgt dat een of enkele objectbestanden samen tot een uitvoerbaar bestand omgevormd worden (.lnk) De programmeur maakt dit bestand aan. Koppelbestand Tool Chain Een verwerkingsproces, keten, om een uitvoerbaar bestand te maken (GCC, IAR, Hi-tech)

10 .lst Lijstbestand waar zowel de programmacode als de hexadecimale weergave van de machinecode te zien is. Linkerkolom machinecode en tweede kolom de instructie. Hulpzaam bij het begrijpen van de werking van de assembler.bin Het eindresultaat is een uitvoerbaar bestand (meestal binair) (Dos/Windows EXE/COM, Unix geen extensie).map Kaartbestand geeft informatie (entry-point, gebruikte objecten) over het uitvoerbaar bestand.

11 Hoofdstuk 4 Architectuur van de 8086-processor Datasheet Document waarin de functionaliteit van de processor beschreven wordt Application Note Document waarin de toepassing van de processor beschreven wordt Errata-sheet Gemaakte fouten worden hierin gecorrigeerd Memory-Map Geeft een overzicht van alle adresgebieden en de functie/chip die bij de adresgebieden in een systeem horen Von-Neumann (geheugenarchitectuur) Instructie- en gegevensgebieden volgen elkaar op. Programma en gegevens kunnen gezamelijk in een geheugengebied voorkomen. De 8086-microprocessor heeft een Von-Neumanngeheugenarchitectuur Harvard (geheugenarchitectuur) Programma en gegevens hebben een gescheiden geheugengebied Busmaster Busmaster (microprocessor) heeft controle over de gegevensbus. Andere chips zijn slaves en gehoorzamen Blokschema CPU Architectuur Het ontwerp of de opbouw van de microprocessor (programmeurmodel) Aansluitschema Een beschrijving van de aansluitingen van een microprocessor Reset-pin (initialiseren) Een speciale pin om het uitvoeren van instructies stop te zetten. Het uitvoeren van instructies start, vanaf het entry-point, als de reset-pin laag is. Gegevensbus / Databus (Zie microprocessor HS1). De 8086-microprocessor beschikt over 20 adreslijnen. De eerste 16 adreslijnen hebben een eigen pin. 2^20 = 1Mbyte Clock De kloksnelheid (wisselend digitaal signaal) bepaald hoe snel de processor taken uitvoert Interrupt Als het signaal op de interrupt-pin verandert wordt het normale programma onderbroken. De microprocessor zal tijdelijk instructies uit een ander programma uitvoeren. Als dit is afgerond wordt de verwerking van het normale programma weer voortgezet

12 Registers Geheugenplaatsen binnen de processor die een bepaalde functie vervullen. De instructies die de microprocessor uitvoert hebben vaak registers als argument Vlagregister Dit register is opgedeeld in bits die elk een functie hebben. De meeste vlaggen geven het resultaat van een instructie weer (statusvlag) Statusvlaggen CF Carry flag (unsigned operatie groter of lager dan nul) PF Parity flag (resultaat heeft een even aantal bits gezet) AF Adjust flag (Carry/borrow in het nibble) ZF Zero flag (resultaat is nul) SF Sign flag (teken van het resultaat) TF Trap flag (uitvoeren van 1 instructie is mogelijk) IF Interrupt flag (interrupts mogelijk) DF Direction flag (string richting) OF Overflow flag (signed operatie te groot of te klein) Segmentregisters Om de beperking van het instructieregister (2^16=64kb, 16-bits breed) op te heffen worden twee registers gebruikt om een adres aan te wijzen. Een register als startpunt en het tweede register als afstand vanaf het startpunt. Hierdoor kan het gehele geheugenbereik van de ^20 (1Mb) aangesproken worden Segment Het adresgebied dat met een vast startpunt en een variabele afstand benaderd kan worden Segment: offset EA = Segment register * 16 + Offset register is de formule die wordt gebruikt voor het berekenen van het effectieve adres (EA) Platte geheugenmodel De segmentregisters hebben allemaal dezelfde waarde waardoor het programma inclusief gegevens maximaal 64kB groot is. Segment geheugenmodel De segmentregisters hebben niet dezelfde waarde. Bestaat uit vier segmentregisters CS-register: Code Segment (werkt samen met het instructiewijzerregister) De microprocessor leest instructies van het adres CS:IP (Instruction Pointer) SS-register: Stack-Segment (werkt samen met de Stack Pointer en de Base Pointer) DS-register: Data-Segment (wordt gebruikt voor gegevens) ES-register: Extra-Segment (wordt gebruikt voor gegevens) Pointer- en indexregisters SI-register: Source-Index (geeft een element in een rij aan, gegevens worden uit deze rij gelezen) DI-register:Destination-Index (geeft een element in een rij aan, gegevens worden naar deze rij geschreven)

13 Stackpointer Wordt gebruikt om tijdelijk gegevens op te slaan. De gegevens worden hierbij gestapeld op basis van LIFO (Last In First Out) push/pop. Er kunnen dus geen elementen omgewisseld worden Reset-vector Geeft een adres aan waar de microprocessor na reset naartoe springt om te beginnen met het uitvoeren van instructies. De microprocessor voert een sprong uit met de reset-vector als parameter naar een reset-bootstrap. De 8086 beschikt niet over een reset-vector! Reset-bootstrap De groep instructies die uitgevoerd worden na reset (en in het algemeen voor de eerste sprong) Gewoonlijk wordt met de eerste instructies de stack opgezet. Gegevens krijgen een vooraf vastgestelde waarde. Eventuele I/O poorten worden ingesteld. BIOS Basic Input Output System Embedded software Ingesloten in een apparaat en niet zomaar te veranderen. Kan normaliter alle functionaliteit van de microprocessor benaderen. GUI Graphical User Interface CLI Command Line Interface

14 Hoofdstuk 5 Assembler voor de 8086-processor NASM Netwide Assembler. Assembler voor de 8086 microprocessor Assembler Directives NASM heeft twee soorten assembler directives (nodig om de assembler meer informatie te verschaffen, zoals het entrypoint) - Gebruikers directives, macro s die NASM omzet naar primitieve directives - Primitieve directives Voorbeelden gebruikers directives - BITS (16 of 32), geeft aan voor welke processormode NASM-codes moet genereren (bijv. Protected mode, virtual 8086 mode) - ORG, alleen van toepassing als NASM pure machinetaal moet genereren (MSDOS.com bestand) Het entry-point van een.com bestand ligt op 0x0100. Met de ORG-directive kan dit entrypoint opgegeven worden..start: Dit is een label en geen directive. OMF-linkers (Microsoft OMF Object file) gebruiken dit label om verschillende objectbestanden tot een uitvoerbaar bestand te genereren. Per uitvoerbaar bestand is 1..start: label toegestaan. SECTION (SEGMENT) De geheugengebieden die door de linker gereserveerd worden t.b.v. de verzamelde machineinstructies uit alle objectbestanden, de gegevens die bij het opstarten een startwaarde moeten krijgen en gegevens die niet geïnitialiseerd hoeven worden. SECTION.code Text/code, data, bss en stack. Sectienamen met een speciale betekenis. Een segment van het type text bevat binaire code. SECTION directive Verandert de sectie waarin de volgende instructies worden geplaatst.de eerste parameter geeft de sectienaam aan, de tweede parameter evt de sectietypenaam EXTERN directive Geeft aan dat een label in een andere module gedefinieerd is en dat het label in het huidige.asm bestand gebruikt mag worden GLOBAL directive (globale variabele) Geeft aan dat een label door een andere module gebruikt mag worden EXTERN_teller GLOBAL_teller De _ geeft aan dat het label ook buiten het.asm bestand bekend is Operand (parameter) Bestaat uit een register, constante of een locatie in het geheugen.

15 Effectief geheugenadres (offset) Een geheugenadres bestaat uit een segment waarde en een offset waarde. Deze offset wordt het effectief geheugenadres genoemd. Dit geheugenadres bevat niet de inhoud van dit adres! Gegevens tussen twee effectieve geheugenadressen kunnen niet direct verplaatst worden. Het effectief geheugenadres kan een expressie bevatten mov al, [teller +1]. De assembler rekent het effectieve geheugenadres compile-time uit! Indien in de expressie bepaalde registernamen voorkomen (baseregisters, indexregisters) rekent de assembler het effectieve geheugenadres run-time uit! [en] De inhoud van een effectief geheugenadres wordt weergegeven met behulp van blokhaakjes. Als de blokhaakjes ontbreken wordt het geheugenadres zelf aangeduid en niet de inhoud van het geheugenadres Instructievoorbeelden: De instructie mov ax, foo kopieert de inhoud van foo naar ax. Foo is hierbij een constante De instructie mov ax, *foo+ kopieert de inhoud van het geheugenadres dat aangegeven wordt door foo naar ax De instructie inc [teller] is geen geldige NASM instructie. De getalbreedte is onbekend De instructie inc word [teller] is wel een geldige NASM instructie. De getalbreedte is bekend MOV Move, verplaatsen. Na het uitvoeren van de MOV-instructie zijn bron en doel gelijk (copy) De instructie mov ds, cs is ongeldig (segmentregisters kunnen niet direct gekopieerd worden) en moet vervangen worden door mov ax, cs en mov ds, ax Immediate Heeft betrekking op de manier waarop de microprocessor de operand leest. De constante is onderdeel van de machinecode en is in het codesegment opgeslagen. Bij het lezen van de machinecode leest de microprocessor direct de constante Displacement Verplaatsing, meestal een label, kan ook een getal zijn (positief, nu of negatief). Wordt door de assembler uitgerekend BP-register en BX-register Deze base-registers kunnen in de berekening van het effectieve geheugenadres opgenomen worden. Kunnen niet gelijktijdig gebruikt worden. De microprocessor telt de inhoud van het register op bij de displacement en leest/schrijft de inhoud van het effectief geheugenadres mov, ax, [bp + datablok] SI-register en DI-register Deze index-registers worden veel gebruikt om door lijsten heen te lopen en daar bewerkingen op uit te voeren. Kunnen niet gelijktijdig gebruikt worden Segment override prefix (segment overschrijving voorvoegsel) De code waarbij het standaardsegment per instructie verandert door voor de machinecode een speciale machinecode te plaatsen

16 Gegevensverplaatsingsinstructies PUSH, POP: Push en pop stack, manipuleert de stack (PUSH ax of POP ax) XCHG: Exchange data, verwisselt twee operands (XCHG al, ah) IN en OUT: Input en output data, leest/schrijft gegevens, via de gegevensbus van/naar peripheral ic (IN al, 0x10) XLAT: Translate data, leest een waarde in een array (XLAT) LEA: Load effective address, berekent de offset (LEA ax, [klaar + SI]) LDS en LES: Load DS of ES, leest een pointer (LDS ax, [cs:tabel]) LODSx, STOSx en MOVSx: Load, store en move string, manipuleert strings (LODSB). Deze instructies worden vaak samen met REP (repeat) gebruikt Rekenkundige bewerkingen ADD (Addition), Optellen, de eerste en tweede operand worden bijelkaar opgeteld. Het resultaat bevindt zich in de eerste operand ADC (Add with carry), De functie is doel = doel + bron + carry. Deze functie wordt gebruikt om grotere getallen bij elkaar op te tellen. Als het resultaat niet in een 16-bits register past wordt de overflow meegenomen naar de ADC CMP, gelijk aan SUB-instructie echter wordt bij de CMP-instructie de eerste operand (doel) gewijzigd. INC en DEC: Increment, Decrement SUB en SBB: Subtract MUL en DIV: Multiply en Divide AAA, DAA, AAS, DAS, AAM en AAD: Adjust, conversie van BCD naar Hex en vv Getalbreedte Voor het optellen of aftrekken moeten de getalbreedtes van de registers gelijk zijn. add [label], De instructie ADD [label], 0x01 is geen geldige NASM instructie. De getalbreedte is onbekend

17 Hoofdstuk 6 Simulatie van de 8086-processor Simulator Instructies worden door de simulator geïnterpreteerd en het resultaat wordt ook door de simulator berekend. De gesimuleerde processor hoeft niet fysiek aanwezig te zijn. SimpSim Simple Simulator, Eenvoudige machinetaalsimulator. Bevat een editor, assembler en een simulator SimpSim Mnemonics Komt grotendeels overeen met de NASM De STORE instructie wijkt af. Hier is de tweede operand het doel en de eerste operand de bron NASM gebruikt voor alle verplaatsingen de MOV-mnemonic. Simpsim heeft hiervoor de LOAD, MOVE en STORE mnemonics. Simpsim kent geen PUSH en POP instructies Brookshear-microprocessor Fictieve processor die door SimpSim gebruikt wordt. Bevat 16 algemene registers. Bevat geen vlagregister Bevat twee systeemregisters: PC-register, programcounter, geeft het adres van de volgende instructie aan IR-register, instructieregister, geeft de machinecode van de laatst uitgevoerde instructie aan Instructieset bestaat uit 16 instructies: 6 instructies voor gegevensverplaatsing 6 instructies voor rekenkundige bewerkingen 4 instructies om de programmacontrole te beïnvloeden Geen instructies voor stack-manipulatie en call-instructies aanwezig Machinecode bestaat uit 2 bytes, 4 nibbles. Het eerste nibble geeft de opcode aan. De andere nibbles zijn operands Step De step-knop voert een regel instructie uit Run De run-knop voert alle instructies achter elkaar uit MS DOS Debug 8086-microprocessor debugger met een CLI (Command Line Interface) Onvoorwaardelijke JUMP-instructie (Branch-instructie) JMP, voert een onvoorwaardelijke sprong uit. Een parameter geeft het doel aan

18 Voorwaardelijke JUMP-instructie(Branch-instructie) JmpEQ, Jump Equal, Vergelijkt twee aangegeven registers en springt naar het label als de inhoud van deze twee registers aan elkaar gelijk zijn JmpLE, Jump Less Equal, springt als de eerste operand kleiner of gelijk is aan de tweede operand JZ, Jump Zero, springt als de zero-vlag gezet is JB, groottenotatie, unsigned JL, tweecomplementnotatie, signed Signed Signed jump-instructies gebruiken tweecomplementnotatie Unsigned Unsigned jmp-instructies gebruiken groottenotatie SAL-instructie Shift Arimethic Left, schuif rekenkundig links, binaire schuifoperatie (delen) Wordt gebruikt ipv SHLinstructie waarbij tekenbit niet behouden wordt. Een SAL-instructie heeft wel hetzelfde resultaat als een SHL-instructie Een SAR-instructie heeft niet hetzelfde resultaat als een SHR-instructie, de functies verschillen

19 Hoofdstuk 7 Functies PUSH-instructie Plaatst een element op de stack POP-instructie (PULL) Haalt een element van de stack De instructieset is uitgebreid met PUSHF en POPF voor statusvlaggen Stack-overflow Bij teveel PUSH-instructies kan de stack pointer buiten de stack gaan wijzen, er ontstaat een stackoverflow Simpsim (Push Pop alternatief) Simpsim kent geen PUSH en POP instructies. De STORE en ADDI instructie vormen samen de PUSH instructie. Omdat de stack pointer naar de eerste vrije plaats wijst, kan de STORE instructie de gegevens direct op de stack plaatsen. Voor een POP instructie moet eerst de ADDI instructie uitgevoerd worden. De stack wijst immers naar een vrije plaats. Het eerste geldige gegeven bevindt zich een element terug. De LOAD instructie kopieert het element van de stack naar een register. De stack zelf kan mbv de directive ORG en de pseudo-instructie DB worden gedefinieerd Variabele Een gegevensopslagplaats, vaak met een symbolische naam, waar gegevens van gelezen en naar geschreven kunnen worden (geheugenadres, element op de stack of een register) Constante In deze context een variabele die alleen leesbaar is Twee belangrijke eigenschappen van een variabele: levensduur en bereikbaarheid Levensduur De levensduur van variabelen verschilt. Een teller voor een lus is alleen tijdens het uitvoeren van die lus belangrijk, terwijl computerprogramma-argumenten meestal gedurende het hele programma belangrijk zijn. Bereikbaarheid De GLOBAL-directive stelt een variabele beschikbaar voor andere modules, terwijl andere variabelen alleen binnen een module beschikbaar zijn (LOCAL) Functie (subprogramma, subroutine, procedure) Een groep instructies die samen een subprogramma vormen.vaak voert een functie 1 bepaalde taak uit. Een functie kan meermalen aangeroepen worden. Met functies wordt voorkomen dat grote groepen instructies dubbel in een programma aanwezig zijn. De naam van een functie, mits juist gekozen, is voldoende om het doel van de functie te begrijpen

20 CALL-instructie Verandert de programmacontrole en is te vergelijken met de JMP-instructie. De CALL-instructie voert een extra taak uit. Voor de wijziging van het instructiewijzer-register wordt het intructiewijzerregister op de stack gezet RET-instructie Verandert de programmacontrole. Het instructiewijzer-register wordt gewijzigd. De nieuwe waarde van het instructiewijzer-register is niet als parameter bij de instructie aanwezig. De nieuwe waarde is aanwezig op de stack. De RET-instructie haalt een waarde van de stack en kopieert deze waarde in het instructiewijzer-register: POP. De volgende instructie die de microprocessor uitvoert bevindt zich op dat geheugenadres Calling Convention Specificeert de methode waarop gegevens uitgewisseld worden tussen hoofdprogramma en subprogramma Stack Frame Groep van elementen die ten behoeve van een functie op de stack staan Prologue functie Groep instructies aan het begin van een functie die de stack en registers gereed maken voor gebruik in de functie Epilogue functie Groep instructies aan het einde van een functie die registers en de stack weer herstellen Re-Entrant functie Een functie die correct blijft werken als de functie wordt aangeroepen terwijl de functie al actief is Recursief functie Een functie die zichzelf, evt via een andere functie, aanroept. Moet daarom re-entrant zijn Side-Effect functie De functie geeft naast de return-functie ook nog op een andere manier een resultaat terug. Een nadeel is dat een programma lastiger te begrijpen is

21 Hoofdstuk 8 Interrupts Poll-Interface methode De microprocessor kan de gegevens uit het dataregister continu lezen. De microprocessor neemt het initiatief om een leesactie uit te voeren en om een nieuwe waarde te vragen. Er zit altijd enige tijd tussen twee leesacties. Hierdoor bestaat de kans dat de microprocessor een gegeven mist. Dit is een nadeel. Een voordeel is dat het relatief eenvoudig te implementeren is Interrupt-Interface methode De controller kan met een delta-pulsgenerator uitgebreid worden. Er wordt een pulssignaal op een output-pin gegenereert als het dataregister verandert. De microprocessor bezit een pin waar dit signaal op aangesloten wordt, de interrupt pin. Het signaal op deze pin verandert het programmaverloop (event-driven) Interrupt-Service Routine (ISR) De functie die bij een interrupt aangeroepen wordt. Deze routine voert de nodige instructies uit en geeft de controle terug aan het hoofdprogramma. Een ISR wordt door een IRET-instructie (Interrupt Return) afgesloten. Een ISR wisselt informatie uit met het hoofdprogramma dmv globale data, bijvoorbeel variabelen of geheugen in controllers Interrupt Request (IRQ) Het verzoek tot het uitvoeren van een interrupt functie. Hardware Interrupt is asynchroon, een software interrupt is synchroon Asynchroon signaal Een signaal dat op elk moment van status kan veranderen en geen relatie heeft met een referentiesignaal (meestal een klokpuls) Vectortabel Een lijst met adressen van functie entry points. Een adres van een entry-point wordt een vector genoemd want het wijst naar de afhandelingsroutine INT-instructie Voor het uitvoeren van de INT-instructie bewaart de microprocessor de status van het hoofdprogramma (program counter en het vlagregister). Deze worden op de stack opgeslagen IRET-instructie De functie van een IRET-instructie is gelijk aan die van een RET-instructie. De uitvoering is uitgebreider. De IRET-instructie haalt het vlagregister van de stack Concurrent Taken die gelijktijdig actief zijn (multitasking) Atomaire actie Een actie is atomair als de actie niet gesplitst of onderbroken kan worden. Een rad-modify-writeinstructie modificeert een gegeven atomair (AND-status, masker, INC-teller) Mutex Als het hoofdprogramma gegevens benadert mag een andere taak de gegevens niet benaderen en andersom. Dit heet mutual exclusion, mutex

22 Kritische sectie Een deel van een programma, een groep instructies, die niet onderbroken kan worden door een bepaalde andere taak. De interrupts worden tijdelijk gemaskeerd Interrupt latency De tijd tussen het genereren van de interrupt door een controller en het uitvoeren van de taak die bij de interrupt hoort Second Level De bijbehorende taak in het hoofdprogramma heet de second level interrupt handlers, tweede niveau Toepassing Interrupts Communicatiepoorten (USB, Ethernet), opslagmediums (Harddisks). Ook timer-, teller- en spanningsverliesindicatie-ics hebben vaak een interrupt lijn. In Windows zijn interrupts voor de gebruiker afgeschermd

23 Hoofdstuk 9 Libraries Library Een verzameling van meestal gerelateerde subprogramma s die hergebruikt kunnen worden. De libraries helpen de programmeur om eenvoudig een betrouwbaar programma te schijven. Het aanroepen van bestaande subprogramma s is eenvoudiger dan het implementeren van nieuwe subprogramma s Include-bestand De interface van de library. Beschrijft welke functionaliteit (wat) de bibliotheek beschikbaar stelt Object-bestand In het objectbestand van een library is bepaald hoe de functionaliteit door de library wordt uitgevoerd. De interface schermt deze informatie af voor de gebruiker Een linker verzamelt alle objectfiles en voegt deze samen toe een uitvoerbaar bestand. Een blibiotheek maakt twee bestanden beschikbaar: de objectcode en de include file. De objectcode ontstaat door het assembleren van een programma. Een extra map (LIB) verzamelt objectcodein een bestand waarin de subprogramma s terug te vinden zijn. Bibliotheken zijn vaak grote bestanden met een andere bestandsextensie dan.obj. Deze extensie is afhankelijk van de fabrikant van de linker. Bibliotheken (libraries) worden ingedeeld aan de hand van het moment van linken met het programma: compile-time en run-time Static-Link-Library Gedurende compile-time voegt de linker het programma en de library samen tot een uitvoerbaar bestand. Elk uitvoerbaar bestand dat subprogramma s van de library gebruikt bezit een kopie van de library. Een linker linked alleen de subprogramma s die door het programma gebruikt worden. Het programma en de library zijn statisch met elkaar verbonden. De extensie is vaak.lib, library, of.a, archive. Microcontrollers in embedded systems gebruiken meestal static-link libraries Dynamic-Link-Library Het OS maakt alleen voor de actieve taken een kopie van de variabelen in de library. De code wordt voor alle actieve taken in 1 keer in het geheugen geladen en gemeenschappelijk door de taken gebruikt. Het programma en de bibliotheek zijn dynamisch met elkaar verbonden. De extensie is vaak.dll, dynamic-link library, of.so shared object Standaardbibliotheken zijn niet zonder meer uitwisselbaar De Interface van een library is strikt en mag niet veranderen Calling Conventions Beschrijft hoe een functie argumenten wegschrijft op een geheugenlocatie (bijv. In stack of in register,afhankelijk van de betreffende conventie) en welke waarden daarbij ontvangen worden. Een assembly programmeur kan gebruik maken van niet-assembly-bibliotheken als de header file en calling convention van de gewenste library bekend zijn

24 C-Standard Calling Convention Cdecl Calling Convention de argumenten van een functie worden door het hoofdprogramma op de stack gezet in volgorde van rechts naar links. De return-waarde staat in het EAX-register Function Prolog De actie binnen een functie waarbij de inhoud van de registers (ESI, EDI, EBX, en EBP) op de stack wordt opgeslagen. (gegenereerd door compiler) De progloog maakt EBP klaar voor gebruik als basis-pointer binnen de stack waar de functieargumenten en lokale variabelen staan (stack frame) en maakt plaats voor lokale variabelen door de stack pointer voldoende op te schuiven Function Epilog De actie binnen een functie waarbij de inhoud van de registers (ESI, EDI, EBX, en EBP) van de stack weer wordt teruggeplaatst naar de betreffende registers. (gegenereerd door compiler) Stack Cleanup (Balanceren) Argumenten die het hoofdprogramma voor de functieaanroep op de stack zet, haalt het hoofdprogramma er na functieaanroep ook weer af. Het aantal parameters/argumenten van een functie kan variëren doordat de aanroeper de stack balanceert en doordat het meest linkse argument als laatste argument op de stack wordt gezet en dus het dichtst bij de EBP staat Stdcall Calling Convention De conventie stdcall wordt gebruikt door MS Windows WIN32 API en wordt ook wel WINAPI genoemd De stdcall en cdecl conventies zijn aan elkaar gelijk met één uitzondering: bij de stdcall ruimt de functie de parameters op en bij cdecl het hoofdprogramma (caller) Pascal Calling Convention Argumenten worden van links naar rechts op de stack gezet. De functie maakt de stack schoon Register of Fastcall Calling Convention Hier worden de eerste 2 of 3 functieargumenten in registers bewaard (bijv. ECX en EDX). Eventuele volgende argumenten worden van rechts naar links op de stack gezet. De return waarde staat weer in het EAX-register. Deze methode kan per fabrikant verschillen

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Studentnummer:... Opleiding:...

Studentnummer:... Opleiding:... 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

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

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

Antwoorden vragen en opgaven Basismodule

Antwoorden vragen en opgaven Basismodule Antwoorden vragen en opgaven Basismodule Antwoorden van vragen en opgaven van hoofdstuk 1 1. Is elke combinatorische schakeling een digitale schakeling? Zo nee, waarom niet? Antwoord: Elke combinatorische

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

Een.NET-besturingssysteemtoolkit. Discovering Cosmos. Sijmen J. Mulder

Een.NET-besturingssysteemtoolkit. Discovering Cosmos. Sijmen J. Mulder Een.NET-besturingssysteemtoolkit Discovering Cosmos Sijmen J. Mulder Agenda Boek 1 Cosmos: a very short introduction Boek 2 Modern Operating Systems Pauze Boek 3 The Design and Implementation of the Cosmos

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

assembleertaal F. Vonk versie

assembleertaal F. Vonk versie 2017 assembleertaal F. Vonk versie 1 8-8-2017 inhoudsopgave 1. inleiding... - 3-2. Zeer Eenvoudige Processor v2 (ZEP2)... - 4-3. de code, simulator en geheugen... - 6-4. optellen... - 11-5. vermenigvuldigen...

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

Oefeningen Interpretatie I Reeks 6 : Registermachines

Oefeningen Interpretatie I Reeks 6 : Registermachines Oefeningen Interpretatie I Reeks 6 : Registermachines Deze oefeningenreeks behandelt het beschrijven van computationele processen aan de hand van registermachineprogrammaʼs. Registermachines manipuleren

Nadere informatie

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo) informatica hardware overzicht moederbord CPU RAM GPU architectuur (vwo) 1 moederbord basis van de computer componenten & aansluitingen chipset Northbridge (snel) Southbridge ("traag") bussen FSB/HTB moederbord

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

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

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

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

2 Elementaire bewerkingen

2 Elementaire bewerkingen Hoofdstuk 2 Elementaire bewerkingen 17 2 Elementaire bewerkingen In dit hoofdstuk leer je hoe werken met binaire getallen en hexadecimale getallen omgezet wordt naar een decimaal getal en omgekeerd. Vervolgens

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

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

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

THEORIE TALSTELSELS. 1 x 10 0 = 1 (een getal tot de macht 0 = 1) 8 x 10 1 = 80 2 x 10 2 = x 10 3 = Opgeteld: 9281d(ecimaal)

THEORIE TALSTELSELS. 1 x 10 0 = 1 (een getal tot de macht 0 = 1) 8 x 10 1 = 80 2 x 10 2 = x 10 3 = Opgeteld: 9281d(ecimaal) THEORIE TALSTELSELS De binaire code Het geheugenelement van de computer kan slechts twee verschillende waarden bevatten. De schakelingen uit de computer werken daarom met een tweetallig ofwel binair stelsel.

Nadere informatie

Inleiding microcontrollers. Week 2 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/

Inleiding microcontrollers. Week 2 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/ Inleiding microcontrollers Week 2 Introductie microcontroller Jesse op den Brouw (met dank aan Ben Kuiper) INLMIC/2018-2019 Week 2 Datapad AVR-CPU Registers ALU Programmageheugen Fetch-decode-execute Instructies

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

Rekenen met computergetallen

Rekenen met computergetallen Rekenen met computergetallen Getallenstelsel en notaties Getallen in computers zijn opgebouwd met het kleinste element dat een computer kent: een bit. Een bit kan twee logische waardes bevatten, een nul

Nadere informatie

Examen computerarchitectuur

Examen computerarchitectuur Examen computerarchitectuur Vrijdag 8 juni 2007, 14u00 Prof. Koen De Bosschere Naam, Voornaam: Richting: Belangrijk 1. Vergeet niet uw naam en voornaam te vermelden. 2. Schrijf de antwoorden in de daarvoor

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

Praktisch bestaan er enkele eenvoudige methoden om een decimaal getal om te zetten naar een binair getal. We bespreken hier de twee technieken.

Praktisch bestaan er enkele eenvoudige methoden om een decimaal getal om te zetten naar een binair getal. We bespreken hier de twee technieken. Talstelsels 1 Algemeenheden Digitale systemen werken met nullen en enen omdat dit elektronisch gemakkelijke te verwezenlijken is. De transistor kent enkel twee toestanden (geleiden of sperren) Hierdoor

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

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

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

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

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

slides2.pdf April 12,

slides2.pdf April 12, Werking van CPU CSN CS2 CPU, I/O en Memory management Piet van Oostrum 12 april 2002 De ALU kan alleen eenvoudige operaties uitvoeren (bijv. twee getallen optellen, vermenigvuldigen of testen of iets >

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

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

Binair Binair = tweewaardig Beperkt aantal mogelijke waarden (discreet aantal in amplitude) Wij zijn gewoon aan decimaal (tiendelig)

Binair Binair = tweewaardig Beperkt aantal mogelijke waarden (discreet aantal in amplitude) Wij zijn gewoon aan decimaal (tiendelig) Binair Binair = tweewaardig Beperkt aantal mogelijke waarden (discreet aantal in amplitude) Wij zijn gewoon aan decimaal (tiendelig) In elektronische realisatie zijn 10 verschillende toestanden moeilijk

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

Programmeren: Visual Basic

Programmeren: Visual Basic PETERSTUYVESANT COLLEGE INFORMATICA 2009-2010 Programmeren: Visual Basic Algemene Kennis: 01. Programmeren Programmeren is het schrijven van een computerprogramma, een concrete verzameling instructies

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

IN1805 I Operating System Concepten

IN1805 I Operating System Concepten IN1805 I Operating System Concepten Hoofdstuk 12: Mass-storage structure 9-1 Secondary storage (1) voornamelijk disks kleinst leesbare eenheid: sector plaats van een sector volledig bepaald door: drive

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

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

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

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015

Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015 Microcontrollers Week 1 Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015 Computersysteem Een systeem dat rekenkundige operaties, data manipulaties en beslissingen kan uitvoeren, aan de hand

Nadere informatie

COMPUTERVAARDIGHEDEN EN PROGRAMMEREN

COMPUTERVAARDIGHEDEN EN PROGRAMMEREN COMPUTERVAARDIGHEDEN EN PROGRAMMEREN 3 e les Prof. Dr. Frank De Proft 12 oktober 2004 Tweede les : Inleiding Computerwetenschappen vs. computervaardigheden - Algoritmen 1 Derde les : Enkele basisbegrippen»

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

Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal.

Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal. Programmeertalen Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal. Taal // machine De geschiedenis van de programmeertalen loopt parallel met de geschiedenis

Nadere informatie

Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal.

Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal. Programmeertalen Algoritme noteren? Algoritmen voor de computer worden vastgelegd met behulp van een programmeertaal. Taal // machine De geschiedenis van de programmeertalen loopt parallel met de geschiedenis

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

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

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

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

Processoren. Marc Seutter & David N. Jansen 10 November 2014

Processoren. Marc Seutter & David N. Jansen 10 November 2014 Processoren Marc Seutter & David N. Jansen 10 November 2014 Leerdoelen Inzicht krijgen in de opbouw van de hardware van een computer en de instructies van een processor. je construeert een (eenvoudige)

Nadere informatie

Hoofdstuk 6: Digitale signalen

Hoofdstuk 6: Digitale signalen Hoofdstuk 6: Digitale signalen 6. Algemeenheden Het decimale talstelsel is het meest gebruikte talstelsel om getallen voor te stellen. Hierin worden symbolen gebruikt ( t.e.m. 9 ) die ondubbelzinning de

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

De Arduino-microcontroller in de motorvoertuigentechniek (6)

De Arduino-microcontroller in de motorvoertuigentechniek (6) De Arduino-microcontroller in de motorvoertuigentechniek (6) E. Gernaat (ISBN 978-90-79302-11-6) 1 De Arduino Programmeeromgeving (IDE) 1.1 Inleiding Als we naar de Arduino site gaan kunnen we daar de

Nadere informatie

Project Digitale Systemen

Project Digitale Systemen Project Digitale Systemen Case Study The Double Dabble algorithme Jesse op den Brouw PRODIG/2014-2015 Introductie Double Dabble In de digitale techniek wordt veel met decimale getallen gewerkt, simpelweg

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

Bij dit hoofdstukken horen geen opgaven.

Bij dit hoofdstukken horen geen opgaven. 6. Programmeertalen Een computer begrijpt eigenlijk alleen maar binaire code (bestaande uit 1 en 0). Om hem/haar makkelijk opdrachten te geven zijn programmeertalen ontwikkeld. Deze moeten een goed gedefinieerde

Nadere informatie

Sequentiële Logica. Processoren 24 november 2014

Sequentiële Logica. Processoren 24 november 2014 Sequentiële Logica Processoren 24 november 2014 Inhoud Eindige automaten Schakelingen met geheugen Realisatie van eindige automaten Registers, schuifregisters, tellers, etc. Geheugen Herinnering van week

Nadere informatie

Inleiding Digitale Techniek

Inleiding Digitale Techniek Inleiding Digitale Techniek Week 5 2 s complement representatie, BCD-optellen Jesse op den Brouw INLDIG/2015-2016 Introductie negatieve getallen Tot nu toe zijn alleen positieve getallen (en nul) behandeld.

Nadere informatie

Labo digitale technieken

Labo digitale technieken .. Het gebied "elektronica" is reeds geruime tijd onderverdeeld in twee specialiteiten, namelijk de analoge en de digitale technieken. Binnen analoge schakelingen gebeurt de signaalverwerking met lineaire

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (4)

De Arduino-microcontroller in de motorvoertuigentechniek (4) De Arduino-microcontroller in de motorvoertuigentechniek () E. Gernaat (ISBN 978-90-7930--6) De Atmel ATmega38/P microcontroller. Uitvoering De ATmega38 is een microprocessor van de Amerikaanse firma ATMEL

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

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

Handleiding ISaGRAF. Wil men het programma bewaren, dan is het verstandig een back-up te maken: C9 Back-up / Restore

Handleiding ISaGRAF. Wil men het programma bewaren, dan is het verstandig een back-up te maken: C9 Back-up / Restore Handleiding ISaGRAF C Handleiding ISaGRAF Deze handleiding beoogt een korte samenvatting te geven van handelingen die verricht moeten worden om met behulp van ISaGRAF een PLC-programma te schrijven en

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

Les B-03 Technologie: de werking van de processor

Les B-03 Technologie: de werking van de processor Les B-03 Technologie: de werking van de processor 2008, David Lans 3.0. Doel De gebruiker van een computer voert begrijpelijke informatie in (opdrachten, procedures, programma s, gegevens, bestanden) en

Nadere informatie

2 Elementaire bewerkingen

2 Elementaire bewerkingen Hoofdstuk 2 Elementaire bewerkingen 19 2 Elementaire bewerkingen 1 BINAIRE GETALLEN In het vorige hoofdstuk heb je gezien dat rijen bits worden gebruikt om lettertekens, getallen, kleuren, geluid en video

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

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

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

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

Informatica 2. Met uitwerkingen n.a.v. document van Elvire Theelen in Luc bijgewerkt door Peter van Diepen

Informatica 2. Met uitwerkingen n.a.v. document van Elvire Theelen in Luc bijgewerkt door Peter van Diepen Informatica 2 Met uitwerkingen n.a.v. document van Elvire Theelen in Luc bijgewerkt door Peter van Diepen 1 Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2014 Remie Woudt remie.woudt@gmail.com

Nadere informatie

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 10e hoorcollege

EE1410: Digitale Systemen BSc. EE, 1e jaar, , 10e hoorcollege EE1410: Digitale Systemen BSc. EE, 1e jaar, 2012-2013, 10e hoorcollege Arjan van Genderen, Stephan Wong, Computer Engineering 13-5-2013 Delft University of Technology Challenge the future Hoorcollege 10

Nadere informatie

Examen computerarchitectuur

Examen computerarchitectuur Examen computerarchitectuur Vrijdag 6 juni 2008, 14:00 Prof. Koen De Bosschere Naam, Voornaam: Richting: Belangrijk 1. Vergeet niet uw naam en voornaam te vermelden. 2. Schrijf de antwoorden in de daarvoor

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

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

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

Logische Schakelingen

Logische Schakelingen Logische Schakelingen Reader Elektro 2.2 Erik Dahmen Techniek en Gebouwde Omgeving Logische Schakelingen Inhoudsopgave: Definitie Logische Schakelingen EN / NEN functie OF / NOF functie NIET-functie De

Nadere informatie